Save/load tts pitch/rate params from gconf
Signed-off-by: Gonzalo Odiard <gonzalo@laptop.org>
Gonzalo Odiard
12 years ago
18 | 18 | from gettext import gettext as _ |
19 | 19 | |
20 | 20 | from gi.repository import Gtk |
21 | from gi.repository import GConf | |
21 | 22 | |
22 | 23 | from sugar3.graphics.toggletoolbutton import ToggleToolButton |
23 | 24 | from sugar3.graphics.combobox import ComboBox |
34 | 35 | if not speech.supported: |
35 | 36 | return |
36 | 37 | |
38 | self._cnf_client = GConf.Client.get_default() | |
37 | 39 | self.load_speech_parameters() |
38 | 40 | |
39 | 41 | self.sorted_voices = [i for i in speech.voices()] |
83 | 85 | try: |
84 | 86 | speech_parameters = simplejson.load(f) |
85 | 87 | speech.voice = speech_parameters['voice'] |
86 | ||
87 | # load from gconf | |
88 | #speech.pitch = speech_parameters['pitch'] | |
89 | #speech.rate = speech_parameters['rate'] | |
90 | 88 | finally: |
91 | 89 | f.close() |
90 | ||
91 | self._cnf_client.add_dir('/desktop/sugar/speech', | |
92 | GConf.ClientPreloadType.PRELOAD_NONE) | |
93 | speech.pitch = self._cnf_client.get_int('/desktop/sugar/speech/pitch') | |
94 | speech.rate = self._cnf_client.get_int('/desktop/sugar/speech/rate') | |
95 | self._cnf_client.notify_add('/desktop/sugar/speech/pitch', \ | |
96 | self.__conf_changed_cb, None) | |
97 | self._cnf_client.notify_add('/desktop/sugar/speech/rate', \ | |
98 | self.__conf_changed_cb, None) | |
99 | ||
100 | def __conf_changed_cb(self, client, connection_id, entry, args): | |
101 | key = entry.get_key() | |
102 | value = client.get_int(key) | |
103 | if key == '/desktop/sugar/speech/pitch': | |
104 | speech.pitch = value | |
105 | if key == '/desktop/sugar/speech/rate': | |
106 | speech.rate = value | |
92 | 107 | |
93 | 108 | def save_speech_parameters(self): |
94 | 109 | speech_parameters = {} |