/// <inheritdoc /> /// <summary> /// Creates new instance of Effect 1 Patch /// </summary> public Patch() { var thruEffectParameters = new ThruEffectParameters(); FlangerParameters = new FlangerParameters(); PhaserParameters = new PhaserParameters(); RingModulationParameters = new RingModulationParameters(); SlicerParameters = new SlicerParameters(); Basic = new BasicData(); Parameters = new ThruEffectParameters(); Basic.PropertyChanged += (sender, args) => { if (args.PropertyName == nameof(BasicData.Type)) { switch (((BasicData)Basic).Type) { case Effect2Type.Thru: Parameters = thruEffectParameters; break; case Effect2Type.Flanger: Parameters = FlangerParameters; break; case Effect2Type.Phaser: Parameters = PhaserParameters; break; case Effect2Type.RingMod: Parameters = RingModulationParameters; break; case Effect2Type.Slicer: Parameters = SlicerParameters; break; default: Parameters = new ThruEffectParameters(); break; } Parameters.PropertyChanged += (paramSender, paramArgs) => NotifyOfPropertyChange(nameof(Parameters)); } NotifyOfPropertyChange(nameof(Basic)); }; }
/// <inheritdoc /> /// <summary> /// Creates new instance of Effect 1 Patch /// </summary> public Patch() { ThruEffectParameters = new ThruEffectParameters(); DistortionParameters = new DistortionParameters(); FuzzParameters = new FuzzParameters(); CompressorParameters = new CompressorParameters(); BitCrusherParameters = new BitCrusherParameters(); Basic = new BasicData(); Parameters = ThruEffectParameters; Basic.PropertyChanged += (sender, args) => { if (args.PropertyName == nameof(BasicData.Type)) { switch (((BasicData)Basic).Type) { case Effect1Type.Thru: Parameters = ThruEffectParameters; break; case Effect1Type.Distortion: Parameters = DistortionParameters; break; case Effect1Type.Fuzz: Parameters = FuzzParameters; break; case Effect1Type.Compressor: Parameters = CompressorParameters; break; case Effect1Type.BitCrusher: Parameters = BitCrusherParameters; break; default: Parameters = ThruEffectParameters; break; } Parameters.PropertyChanged += (paramSender, paramArgs) => NotifyOfPropertyChange(nameof(Parameters)); } NotifyOfPropertyChange(nameof(Basic)); }; }