/// <inheritdoc /> /// <summary> /// Create new instance of CommonAndVocalFxTabViewModel /// </summary> public CommonAndVocalFxTabViewModel(IEventAggregator eventAggregator, IDialogCoordinator dialogCoordinator) : base(eventAggregator, dialogCoordinator, new ProgramCommonAndVocalEffectsManager()) { DisplayName = "Program Common & VocalFX"; InitLogger(typeof(CommonAndVocalFxTabViewModel)); Patch = new CommonAndVocalEffectPatch(); Patch.Common.PropertyChanged += (sender, args) => { if (AutoSync && SelectedOutputDeviceId != -1) { var manager = (IProgramCommonAndVocalEffectsManager)PatchManager; if (args.PropertyName == nameof(Patch.Common.AutoNote)) { manager.SetAutoNote(Patch.Common.AutoNote, SelectedOutputDeviceId); Logger.AutoSync($"Common.{args.PropertyName} changed"); } else { manager.DumpCommon(Patch.Common, SelectedOutputDeviceId); Logger.AutoSync($"Common.{args.PropertyName} changed - dumping common"); } } }; Patch.VocalEffect.PropertyChanged += (sender, args) => { if (AutoSync && SelectedOutputDeviceId != -1) { var manager = (IProgramCommonAndVocalEffectsManager)PatchManager; manager.DumpVocalEffects(Patch.VocalEffect, SelectedOutputDeviceId); Logger.AutoSync($"VocalEffect.{args.PropertyName} changed"); } }; PatchManager.DataDumpReceived += (sender, args) => { if (args is CommonAndVocalFxDumpReceivedEventArgs eventArgs) { AutoSync = false; Patch.CopyFrom(eventArgs.Patch); Logger.DataDump("Received data dump"); AutoSync = true; } }; PatchManager.OperationTimedOut += (sender, args) => { Logger.Error("Device is not responding"); ShowErrorMessage("Device is not responding, try again in a moment"); }; }
public CommonAndVocalFxDumpReceivedEventArgs(CommonAndVocalEffectPatch patch) { Patch = patch; }