Example #1
0
        /// <summary>
        /// 주어진 VST 플러그인의 편집기 창을 닫습니다.
        /// 해당하는 창이 열려있지 않은 경우 아무런 동작도 수행하지 않습니다.
        /// </summary>
        /// <param name="plugin">VST 플러그인</param>
        public void CloseEditor(Vst.PluginBase plugin)
        {
            _table.TryGetValue(plugin, out PluginEditorWindow window);
            window?.Close();

            plugin.Disposed -= OnPluginDisposed;
        }
Example #2
0
        public PluginEditorWindow(Vst.PluginBase plugin)
        {
            Plugin = plugin ?? throw new ArgumentNullException(nameof(plugin));

            ResizeMode = ResizeMode.NoResize;
            SizeToContent = SizeToContent.WidthAndHeight;
            Content = _host = new PluginEditorHost(plugin);
            Title = $"플러그인 편집기: {plugin.Name}";
        }
Example #3
0
        /// <summary>
        /// 주어진 VST 플러그인의 편집기 창을 엽니다.
        /// 창이 열려있지 않은 경우에는 새로운 창 인스턴스가 생성되고,
        /// 이미 열려있는 경우에는 기존의 창을 활성화합니다.
        /// </summary>
        /// <param name="plugin">VST 플러그인</param>
        public void OpenEditor(Vst.PluginBase plugin)
        {
            if (_table.TryGetValue(plugin, out PluginEditorWindow window))
            {
                // 이미 열려있는 창을 활성화
                window.Activate();
            }
            else
            {
                // 새로운 창 인스턴스 생성 후 열기
                PluginEditorWindow newWindow = new PluginEditorWindow(plugin);
                newWindow.Closed += PluginWindow_Closed;
                plugin.Disposed  += OnPluginDisposed;

                if (_table.Count == 0)
                {
                    System.Diagnostics.Debug.WriteLine("PluginEditorManager::OpenEditor Starting the timer.");
                    _timer.Start();
                }

                _table.Add(plugin, newWindow);
                newWindow.Show();
            }
        }
Example #4
0
 /// <summary>
 /// 새로운 PluginEditorHost 인스턴스를 생성합니다.
 /// </summary>
 /// <param name="plugin">편집기를 열 VST 플러그인</param>
 public PluginEditorHost(Vst.PluginBase plugin)
 {
     _plugin        = plugin ?? throw new ArgumentNullException(nameof(plugin));
     _pluginCmdStub = plugin.PluginCommandStub;
 }