/// <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; } } }; }
/// <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; } } }; }