public void DeInitPlugin() { try { // TTSアクションを元に戻す this.StopReplaceTTSMethodTimer(); this.RestoreTTSMethod(); // TTSコントローラを開放する SpeechController.Default.Free(); // Bridgeにメソッドを解除する PlayBridge.Instance.PlayMainDeviceDelegate = null; PlayBridge.Instance.PlaySubDeviceDelegate = null; // Discordを終了する DiscordClientModel.Instance.Dispose(); // TTSサーバを終了する TTSServerController.End(); // FF14監視スレッドを開放する FFXIVWatcher.Deinitialize(); // 漢字変換オブジェクトを開放する KanjiTranslator.Default.Dispose(); // TTS用waveファイルを削除する? if (Settings.Default.WaveCacheClearEnable) { var appdir = Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), @"anoyetta\ACT\tts cache"); if (Directory.Exists(appdir)) { foreach (var file in Directory.GetFiles(appdir, "*.wav")) { try { File.Delete(file); } catch { } } } } // 設定を保存する Settings.Default.Save(); this.PluginStatusLabel.Text = "Plugin Exited"; } catch (Exception ex) { this.Logger.Error(ex, "DeInitPlugin error."); } }
public void DeInitPlugin() { try { // 置き換えたTTSメソッドを元に戻す if (this.originalTTSDelegate != null) { ActGlobals.oFormActMain.PlayTtsMethod = this.originalTTSDelegate; } // FF14監視スレッドを開放する FF14Watcher.Deinitialize(); // 漢字変換オブジェクトを開放する KanjiTranslator.Default.Dispose(); // 設定を保存する TTSYukkuriConfig.Default.Save(); // TTSサーバを終了する TTSServerController.End(); // プレイヤを開放する NAudioPlayer.DisposePlayers(); // TTS用waveファイルを削除する? if (TTSYukkuriConfig.Default.WaveCacheClearEnable) { var appdir = Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), @"anoyetta\ACT"); if (Directory.Exists(appdir)) { foreach (var file in Directory.GetFiles(appdir, "*.wav")) { try { File.Delete(file); } catch { } } } } lblStatus.Text = "Plugin Exited"; } catch (Exception ex) { ActGlobals.oFormActMain.WriteExceptionLog( ex, "TTSゆっくりプラグインの終了時に例外が発生しました。"); } }
public void InitPlugin( TabPage pluginScreenSpace, Label pluginStatusText) { try { pluginScreenSpace.Text = "TTSゆっくり"; var plugin = ActGlobals.oFormActMain.PluginGetSelfData(this); if (plugin != null) { TTSYukkuriPlugin.PluginDirectory = plugin.pluginFile.DirectoryName; } // 漢字変換を初期化する KanjiTranslator.Default.Initialize(); // TTSサーバを開始する TTSServerController.Start(); Application.ApplicationExit += (s, e) => { TTSServerController.End(); }; // TTSを初期化する TTSYukkuriConfig.Default.Load(); SpeechController.Default.Initialize(); // FF14監視スレッドを初期化する FF14Watcher.Initialize(); // 設定Panelを追加する ConfigPanel = new TTSYukkuriConfigPanel(); ConfigPanel.Dock = DockStyle.Fill; pluginScreenSpace.Controls.Add(ConfigPanel); // Hand the status label's reference to our local var lblStatus = pluginStatusText; // TTSメソッドを置き換える this.originalTTSDelegate = (FormActMain.PlayTtsDelegate)ActGlobals.oFormActMain.PlayTtsMethod.Clone(); ActGlobals.oFormActMain.PlayTtsMethod = new FormActMain.PlayTtsDelegate(this.Speak); // アップデートを確認する this.Update(); lblStatus.Text = "Plugin Started"; } catch (Exception ex) { MessageBox.Show( ActGlobals.oFormActMain, "プラグインの初期化中に例外が発生しました。環境を確認してACTを再起動して下さい" + Environment.NewLine + Environment.NewLine + ex.ToString(), "TTSゆっくりプラグイン", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); // TTSをゆっくりに戻す TTSYukkuriConfig.Default.TTS = TTSType.Yukkuri; TTSYukkuriConfig.Default.Save(); } }