Example #1
0
        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()
        {
            if (!this.isLoaded)
            {
                return;
            }

            try
            {
                // 設定を保存する
                Settings.Default.Save();
                FFXIV.Framework.Config.Save();
                FFXIV.Framework.Config.Free();

                // TTSアクションを元に戻す
                this.StopReplaceTTSMethodTimer();
                this.RestoreTTSMethod();

                // TTSコントローラを開放する
                SpeechController.Default.Free();

                // Bridgeにメソッドを解除する
                PlayBridge.Instance.SetBothDelegate(null);
                PlayBridge.Instance.SetMainDeviceDelegate(null);
                PlayBridge.Instance.SetSubDeviceDelegate(null);

                // Discordを終了する
                DiscordClientModel.Model.Dispose();

                // 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))
                    {
                        var files = new List <string>();
                        files.AddRange(Directory.GetFiles(appdir, "*.wav"));
                        files.AddRange(Directory.GetFiles(appdir, "*.mp3"));
                        foreach (var file in files)
                        {
                            try
                            {
                                File.Delete(file);
                            }
                            catch
                            {
                            }
                        }
                    }
                }

                this.PluginStatusLabel.Text = "Plugin Exited";
            }
            catch (Exception ex)
            {
                this.Logger.Error(ex, "DeInitPlugin error.");
            }
        }