Exemple #1
0
        /// <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");
            };
        }
Exemple #2
0
 public CommonAndVocalFxDumpReceivedEventArgs(CommonAndVocalEffectPatch patch)
 {
     Patch = patch;
 }