Exemplo n.º 1
0
        public override void InitPlugin(TabPage pluginScreenSpace, Label pluginStatusText)
        {
            _settingsLoaded    = false;
            ParentTabPage      = pluginScreenSpace;
            StatusLabel        = pluginStatusText;
            ParentTabPage.Text = "Fox TTS";

            try
            {
                Controller = new MainController();
                Settings   = new SettingsHolder();

                Settings.AttachToAct(this);

                SettingsTab = new FoxTTSTabControl();
                SettingsTab.AttachToAct(this);

                PreProcessor.AttachToAct(this);
                UpdateChecker.AttachToAct(this);
                SoundPlayer.AttachToAct(this);
                TtsInjector.AttachToAct(this);

                Controller.TTSEngineChanged += ControllerOnTtsEngineChanged;

                Settings.PostAttachToAct(this);
                SettingsTab.PostAttachToAct(this);
                PreProcessor.PostAttachToAct(this);
                UpdateChecker.PostAttachToAct(this);
                SoundPlayer.PostAttachToAct(this);
                TtsInjector.PostAttachToAct(this);

                Settings.Load();
                _settingsLoaded = true;

                DoLocalization();

                Settings.NotifySettingsLoaded();

                TtsInjector.StartWorkingThread(this);

                StatusLabel.Text = "Init Success. >w<";
            }
            catch (SettingsNotLoadException ex)
            {
                StatusLabel.Text = "Init Failed: " + ex;
            }
            catch (Exception ex)
            {
                StatusLabel.Text = "Init Failed: " + ex;
                if (_settingsLoaded)
                {
                    MessageBox.Show($"Init failed!\nCaused by:\n{ex}");
                }
                else
                {
                    MessageBox.Show($"Init failed before settings are loaded. Settings won't be saved until next successfully initialization to prevent settings lost!\nCaused by:\n{ex}");
                }
            }
        }