public void InitPlugin( IActPluginV1 plugin, TabPage pluginScreenSpace, Label pluginStatusText) { // タイトルをセットする pluginScreenSpace.Text = "YUKKURI"; EnvironmentMigrater.Migrate(); MasterFilePublisher.Publish(); WPFHelper.Start(); WPFHelper.BeginInvoke(async() => { AppLog.LoadConfiguration(AppLog.HojoringConfig); this.Logger?.Trace(Assembly.GetExecutingAssembly().GetName().ToString() + " start."); try { EnvironmentHelper.GarbageLogs(); EnvironmentHelper.StartActivator(() => { ConfigBaseView.Instance.SetActivationStatus(false); this.DeInitPlugin(); }); this.Logger.Trace("[YUKKURI] Start InitPlugin"); this.PluginStatusLabel = pluginStatusText; var pluginInfo = ActGlobals.oFormActMain.PluginGetSelfData(plugin); if (pluginInfo != null) { this.PluginDirectory = pluginInfo.pluginFile.DirectoryName; } // .NET FrameworkとOSのバージョンを確認する if (!UpdateChecker.IsAvailableDotNet() || !UpdateChecker.IsAvailableWindows()) { NotSupportedView.AddAndShow(pluginScreenSpace); return; } // 設定ファイルを読み込む // TP廃止につき無効化する Settings.Default.Load(); Settings.Default.StatusAlertSettings.EnabledTPAlert = false; // 漢字変換を初期化する KanjiTranslator.Default.Initialize(); // TTSキャッシュの移行とGarbageを行う await Task.Run(() => { this.MigrateTTSCache(); this.GarbageTTSCache(); }); // HojoringのSplashを表示する WPFHelper.Start(); UpdateChecker.ShowSplash(); await Task.Run(() => { // TTSサーバを開始する TTSServerController.Start(); // TTSを初期化する SpeechController.Default.Initialize(); // FF14監視スレッドを初期化する FFXIVWatcher.Initialize(); }); // 設定Panelを追加する pluginScreenSpace.Controls.Add(new ElementHost() { Child = new ConfigBaseView(), Dock = DockStyle.Fill, }); // TTSメソッドを置き換える this.StartReplaceTTSMethodTimer(); await Task.Run(() => { // DISCORD BOT クライアントを初期化する DiscordClientModel.Model.Initialize(); // AutoJoinがONならば接続する if (Settings.Default.DiscordSettings.AutoJoin) { DiscordClientModel.Model.Connect(true); } }); await Task.Run(() => { // VOICEROIDを起動する if (SpeechController.Default is VoiceroidSpeechController ctrl) { ctrl.Start(); } }); // Bridgeにメソッドを登録する PlayBridge.Instance.SetBothDelegate((message, isSync, volume) => this.Speak(message, PlayDevices.Both, isSync, volume)); PlayBridge.Instance.SetMainDeviceDelegate((message, isSync, volume) => this.Speak(message, PlayDevices.Main, isSync, volume)); PlayBridge.Instance.SetSubDeviceDelegate((message, isSync, volume) => this.Speak(message, PlayDevices.Sub, isSync, volume)); PlayBridge.Instance.SetSyncStatusDelegate(() => Settings.Default.Player == WavePlayerTypes.WASAPIBuffered); // テキストコマンドの購読を登録する this.SubscribeTextCommands(); // サウンドデバイスを初期化する SoundPlayerWrapper.Init(); SoundPlayerWrapper.LoadTTSCache(); PluginStatusLabel.Text = "Plugin Started"; this.Logger.Trace("[YUKKURI] End InitPlugin"); // 共通ビューを追加する CommonViewHelper.Instance.AddCommonView( pluginScreenSpace.Parent as TabControl); // アップデートを確認する await Task.Run(() => this.Update()); } catch (Exception ex) { this.Logger.Error(ex, "InitPlugin error."); ModernMessageBox.ShowDialog( "Plugin init error !", "ACT.TTSYukkuri", System.Windows.MessageBoxButton.OK, ex); // TTSをゆっくりに戻す Settings.Default.TTS = TTSType.Yukkuri; Settings.Default.Save(); } }); }
public void InitPlugin( IActPluginV1 plugin, TabPage pluginScreenSpace, Label pluginStatusText) { // タイトルをセットする pluginScreenSpace.Text = "YUKKURI"; WPFHelper.Start(); WPFHelper.BeginInvoke(async() => { // FFXIV_MemoryReaderを先にロードさせる await FFXIVReader.Instance.WaitForReaderToStartedAsync(); AppLog.LoadConfiguration(AppLog.HojoringConfig); this.Logger.Trace(Assembly.GetExecutingAssembly().GetName().ToString() + " start."); try { this.Logger.Trace("[YUKKURI] Start InitPlugin"); this.PluginStatusLabel = pluginStatusText; var pluginInfo = ActGlobals.oFormActMain.PluginGetSelfData(plugin); if (pluginInfo != null) { this.PluginDirectory = pluginInfo.pluginFile.DirectoryName; } // .NET FrameworkとOSのバージョンを確認する if (!UpdateChecker.IsAvailableDotNet() || !UpdateChecker.IsAvailableWindows()) { NotSupportedView.AddAndShow(pluginScreenSpace); return; } // 設定ファイルを読み込む Settings.Default.Load(); // 漢字変換を初期化する KanjiTranslator.Default.Initialize(); // TTSのキャッシュを移行する await Task.Run(() => this.MigrateTTSCache()); // HojoringのSplashを表示する WPFHelper.Start(); UpdateChecker.ShowSplash(); await Task.Run(() => { // TTSサーバを開始する TTSServerController.Start(); // TTSを初期化する SpeechController.Default.Initialize(); // FF14監視スレッドを初期化する FFXIVWatcher.Initialize(); }); // 設定Panelを追加する pluginScreenSpace.Controls.Add(new ElementHost() { Child = new ConfigBaseView(), Dock = DockStyle.Fill, }); // TTSメソッドを置き換える this.StartReplaceTTSMethodTimer(); await Task.Run(() => { // Discordに接続する DiscordClientModel.Model.Initialize(); DiscordClientModel.Model.Connect(true); }); await Task.Run(() => { // VOICEROIDを起動する if (SpeechController.Default is VoiceroidSpeechController ctrl) { ctrl.Start(); } }); // Bridgeにメソッドを登録する PlayBridge.Instance.SetBothDelegate((message, isSync) => this.Speak(message, PlayDevices.Both, isSync)); PlayBridge.Instance.SetMainDeviceDelegate((message, isSync) => this.Speak(message, PlayDevices.Main, isSync)); PlayBridge.Instance.SetSubDeviceDelegate((message, isSync) => this.Speak(message, PlayDevices.Sub, isSync)); PlayBridge.Instance.SetSyncStatusDelegate(() => Settings.Default.Player == WavePlayerTypes.WASAPIBuffered); // サウンドデバイスを初期化する SoundPlayerWrapper.Init(); PluginStatusLabel.Text = "Plugin Started"; this.Logger.Trace("[YUKKURI] End InitPlugin"); // アップデートを確認する await Task.Run(() => this.Update()); } catch (Exception ex) { this.Logger.Error(ex, "InitPlugin error."); ModernMessageBox.ShowDialog( "Plugin init error !", "ACT.TTSYukkuri", System.Windows.MessageBoxButton.OK, ex); // TTSをゆっくりに戻す Settings.Default.TTS = TTSType.Yukkuri; Settings.Default.Save(); } }); }