/// <summary> /// 주어진 VST 플러그인의 편집기 창을 엽니다. /// 창이 열려있지 않은 경우에는 새로운 창 인스턴스가 생성되고, /// 이미 열려있는 경우에는 기존의 창을 활성화합니다. /// </summary> /// <param name="plugin">VST 플러그인</param> public void OpenEditor(Vst.Plugin plugin) { if (_table.TryGetValue(plugin, out PluginEditorWindow window)) { // 이미 열려있는 창을 활성화 window.Activate(); } else { // 새로운 창 인스턴스 생성 후 열기 PluginEditorWindow newWindow = new PluginEditorWindow(plugin); newWindow.Closed += PluginWindow_Closed; _table.Add(plugin, newWindow); newWindow.Show(); } }
/// <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(); } }