Пример #1
0
        /// <inheritdoc />
        /// <summary>
        ///     Create new instance of Effect 1 View Model
        /// </summary>
        public Effect1ViewModel(Patch patch)
        {
            Patch = patch;

            ThruViewModel       = new ThruViewModel();
            DistortionViewModel = new DistortionViewModel(patch.DistortionParameters);
            FuzzViewModel       = new FuzzViewModel(patch.FuzzParameters);
            CompressorViewModel = new CompressorViewModel(patch.CompressorParameters);
            BitCrusherViewModel = new BitCrusherViewModel(patch.BitCrusherParameters);

            Patch.Basic.PropertyChanged += (sender, args) =>
            {
                if (args.PropertyName == nameof(BasicData.Type))
                {
                    switch (((BasicData)Patch.Basic).Type)
                    {
                    case Effect1Type.Thru:
                        ActivateItemAsync(ThruViewModel, default);
                        break;

                    case Effect1Type.Distortion:
                        ActivateItemAsync(DistortionViewModel, default);
                        break;

                    case Effect1Type.Fuzz:
                        ActivateItemAsync(FuzzViewModel, default);
                        break;

                    case Effect1Type.Compressor:
                        ActivateItemAsync(CompressorViewModel, default);
                        break;

                    case Effect1Type.BitCrusher:
                        ActivateItemAsync(BitCrusherViewModel, default);
                        break;

                    default:
                        ActivateItemAsync(ThruViewModel, default);
                        break;
                    }
                }
            };
        }
Пример #2
0
        /// <inheritdoc />
        /// <summary>
        ///     Create new instance of Effect 2 View Model
        /// </summary>
        public Effect2ViewModel(Patch patch)
        {
            Patch = patch;

            ThruViewModel           = new ThruViewModel();
            FlangerViewModel        = new FlangerViewModel(patch.FlangerParameters);
            PhaserViewModel         = new PhaserViewModel(patch.PhaserParameters);
            RingModulationViewModel = new RingModulationViewModel(patch.RingModulationParameters);
            SlicerViewModel         = new SlicerViewModel(patch.SlicerParameters);

            Patch.Basic.PropertyChanged += (sender, args) =>
            {
                if (args.PropertyName == nameof(BasicData.Type))
                {
                    switch (((BasicData)Patch.Basic).Type)
                    {
                    case Effect2Type.Thru:
                        ActivateItemAsync(ThruViewModel, default);
                        break;

                    case Effect2Type.Flanger:
                        ActivateItemAsync(FlangerViewModel, default);
                        break;

                    case Effect2Type.Phaser:
                        ActivateItemAsync(PhaserViewModel, default);
                        break;

                    case Effect2Type.RingMod:
                        ActivateItemAsync(RingModulationViewModel, default);
                        break;

                    case Effect2Type.Slicer:
                        ActivateItemAsync(SlicerViewModel, default);
                        break;

                    default:
                        ActivateItemAsync(ThruViewModel, default);
                        break;
                    }
                }
            };
        }