@@ -21,17 +21,17 @@ def _(x): return x
2121
2222
2323# Define conspec here too. Looks like it fails to access some values when UML is not set as speech synthesizer.
24- confspec = {
25- "primaryLanguage" : "string(default=ja)" ,
26- "strategy" : "string(default=sentence)" ,
27- "japanese" : "string(default=_)" ,
28- "fallback" : "string(default=_)" ,
29- "checkForUpdatesOnStartup" : "boolean(default=True)" ,
30- "volumeOffset_ja" : "integer(default=0, min=-100, max=100)" ,
31- "volumeOffset_en" : "integer(default=0, min=-100, max=100)" ,
32- "rateOffset_ja" : "integer(default=0, min=-100, max=100)" ,
33- "rateOffset_en" : "integer(default=0, min=-100, max=100)" ,
34- }
24+ confspec = {
25+ "primaryLanguage" : "string(default=ja)" ,
26+ "strategy" : "string(default=sentence)" ,
27+ "japanese" : "string(default=_)" ,
28+ "fallback" : "string(default=_)" ,
29+ "checkForUpdatesOnStartup" : "boolean(default=True)" ,
30+ "volumeOffset_ja" : "integer(default=0, min=-100, max=100)" ,
31+ "volumeOffset_en" : "integer(default=0, min=-100, max=100)" ,
32+ "rateOffset_ja" : "integer(default=0, min=-100, max=100)" ,
33+ "rateOffset_en" : "integer(default=0, min=-100, max=100)" ,
34+ }
3535config .conf .spec ["UML_global" ] = confspec
3636
3737class GlobalPlugin (globalPluginHandler .GlobalPlugin ):
@@ -87,15 +87,15 @@ def settings(self, evt):
8787 "ja" : config .conf ["UML_global" ]["japanese" ],
8888 "en" : config .conf ["UML_global" ]["fallback" ],
8989 }
90- opts = {
91- "primary_language" : config .conf ["UML_global" ]["primaryLanguage" ],
92- "strategy" : config .conf ["UML_global" ]["strategy" ],
93- "engineMap" : engineMap ,
94- "volumeOffset_ja" : config .conf ["UML_global" ]["volumeOffset_ja" ],
95- "volumeOffset_en" : config .conf ["UML_global" ]["volumeOffset_en" ],
96- "rateOffset_ja" : config .conf ["UML_global" ]["rateOffset_ja" ],
97- "rateOffset_en" : config .conf ["UML_global" ]["rateOffset_en" ],
98- }
90+ opts = {
91+ "primary_language" : config .conf ["UML_global" ]["primaryLanguage" ],
92+ "strategy" : config .conf ["UML_global" ]["strategy" ],
93+ "engineMap" : engineMap ,
94+ "volumeOffset_ja" : config .conf ["UML_global" ]["volumeOffset_ja" ],
95+ "volumeOffset_en" : config .conf ["UML_global" ]["volumeOffset_en" ],
96+ "rateOffset_ja" : config .conf ["UML_global" ]["rateOffset_ja" ],
97+ "rateOffset_en" : config .conf ["UML_global" ]["rateOffset_en" ],
98+ }
9999 dlg = SettingsDialog (opts )
100100 ret = dlg .ShowModal ()
101101 if ret == wx .ID_OK :
@@ -105,19 +105,25 @@ def settings(self, evt):
105105 def _saveSettings (self , data ):
106106 # If the new settings fail, revert to the previous one.
107107 backup = list (config .conf ["UML_global" ].items ())
108+ old_japanese = config .conf ["UML_global" ]["japanese" ]
109+ old_fallback = config .conf ["UML_global" ]["fallback" ]
108110 config .conf ["UML_global" ]["primaryLanguage" ] = data ["primary_language" ]
109- config .conf ["UML_global" ]["strategy" ] = data ["strategy" ]
110- config .conf ["UML_global" ]["japanese" ] = data ["engineMap" ]["ja" ]
111- config .conf ["UML_global" ]["fallback" ] = data ["engineMap" ]["en" ]
112- config .conf ["UML_global" ]["volumeOffset_ja" ] = data ["volumeOffset_ja" ]
113- config .conf ["UML_global" ]["volumeOffset_en" ] = data ["volumeOffset_en" ]
114- config .conf ["UML_global" ]["rateOffset_ja" ] = data ["rateOffset_ja" ]
115- config .conf ["UML_global" ]["rateOffset_en" ] = data ["rateOffset_en" ]
116- synth = synthDriverHandler .getSynth ()
117- if synth and synth .name == "UML" :
118- synth ._applySettings ()
119- if synthDriverHandler .getSynth ().name == "UML" :
120- self ._askHotReload (backup )
111+ config .conf ["UML_global" ]["strategy" ] = data ["strategy" ]
112+ config .conf ["UML_global" ]["japanese" ] = data ["engineMap" ]["ja" ]
113+ config .conf ["UML_global" ]["fallback" ] = data ["engineMap" ]["en" ]
114+ config .conf ["UML_global" ]["volumeOffset_ja" ] = data ["volumeOffset_ja" ]
115+ config .conf ["UML_global" ]["volumeOffset_en" ] = data ["volumeOffset_en" ]
116+ config .conf ["UML_global" ]["rateOffset_ja" ] = data ["rateOffset_ja" ]
117+ config .conf ["UML_global" ]["rateOffset_en" ] = data ["rateOffset_en" ]
118+ synth = synthDriverHandler .getSynth ()
119+ if synth and synth .name == "UML" :
120+ synth ._applySettings ()
121+ engine_changed = (
122+ data ["engineMap" ]["ja" ] != old_japanese
123+ or data ["engineMap" ]["en" ] != old_fallback
124+ )
125+ if engine_changed and synthDriverHandler .getSynth ().name == "UML" :
126+ self ._askHotReload (backup )
121127
122128 def _askHotReload (self , backup ):
123129 ret = yesno (_ ("You are currently using Universal Multilingual.\n Do you want to reload Universal Multilingual and apply the new settings now?" ), _ ("Confirmation" ))
0 commit comments