Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/readtoolbar.py
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@member.fsf.org>2009-03-08 23:19:34 (GMT)
committer Aleksey Lim <alsroot@member.fsf.org>2009-03-08 23:19:34 (GMT)
commit18296c8d83f9ae63c7aaf0128f091da896c1e2f7 (patch)
tree190cae329c8cfed35fe51af4fd13409132ce0812 /readtoolbar.py
parent9d1e3592b54fec7e06dd9ffd18c3cd5cb7f334b1 (diff)
Isolate speech-dispatcher code
Diffstat (limited to 'readtoolbar.py')
-rw-r--r--readtoolbar.py48
1 files changed, 10 insertions, 38 deletions
diff --git a/readtoolbar.py b/readtoolbar.py
index 51f2af9..c0237ea 100644
--- a/readtoolbar.py
+++ b/readtoolbar.py
@@ -32,9 +32,6 @@ from sugar.graphics.toggletoolbutton import ToggleToolButton
import speech
-if speech.supported:
- import speechd
-
class ReadToolbar(gtk.Toolbar):
__gtype_name__ = 'ReadToolbar'
@@ -242,17 +239,7 @@ class SpeechToolbar(gtk.Toolbar):
gtk.Toolbar.__init__(self)
voicebar = gtk.Toolbar()
self.activity = None
- voices = []
-
- try:
- client = speechd.SSIPClient('readetextstest')
- voices = client.list_synthesis_voices()
- client.close()
- except:
- print 'speech dispatcher not started'
- self.sorted_voices = []
- for voice in voices:
- self.sorted_voices.append(voice)
+ self.sorted_voices = speech.voice()
self.sorted_voices.sort(self.compare_voices)
default = 0
for voice in self.sorted_voices:
@@ -324,42 +311,27 @@ class SpeechToolbar(gtk.Toolbar):
def voice_changed_cb(self, combo):
self.selected_voice = combo.props.value
if self.activity != None:
- self.say(self.selected_voice[0])
+ speech.say(self.selected_voice[0])
def pitch_adjusted_cb(self, get, data=None):
- self.say(_("pitch adjusted"))
+ speech.say(_("pitch adjusted"))
def rate_adjusted_cb(self, get, data=None):
- self.say(_("rate adjusted"))
+ speech.say(_("rate adjusted"))
def set_activity(self, activity):
self.activity = activity
- def say(self, words):
- try:
- client = speechd.SSIPClient('readetextstest')
- client.set_rate(int(self.rateadj.value))
- client.set_pitch(int(self.pitchadj.value))
- client.set_language(self.selected_voice[1])
- client.speak(words)
- client.close()
- except:
- print 'speech dispatcher not running'
-
def _play_cb(self, widget, images):
widget.set_icon_widget(images[int(widget.get_active())])
if widget.get_active():
if speech.done:
- self.et = speech.EspeakThread(self._stop_cb)
- words_on_page = self.activity.add_word_marks()
- self.et.set_words_on_page(words_on_page)
- self.et.set_activity(self.activity)
- self.et.set_speech_options(self.selected_voice,
- int(self.pitchadj.value), int(self.rateadj.value))
- self.et.start()
+ speech.highlight_cb = activity.highlight_next_word
+ speech.reset_cb = activity.reset_play_button
+ speech.voice = self.selected_voice
+ speech.pitch = self.pitchadj.value
+ speech.rate = self.rateadj.value
+ speech.play()
else:
speech.done = True
-
- def _stop_cb(self):
- self.play_btn.set_active(False)