sugar3.speech - expose mark messages
Mark messages can be used for text highlight. Signed-off-by: James Cameron <quozl@laptop.org>
This commit is contained in:
		
							parent
							
								
									5043d53e7b
								
							
						
					
					
						commit
						9a6c9ce69c
					
				| @ -193,7 +193,8 @@ class SpeechManager(GObject.GObject): | ||||
|     __gsignals__ = { | ||||
|         'play': (GObject.SignalFlags.RUN_FIRST, None, []), | ||||
|         'pause': (GObject.SignalFlags.RUN_FIRST, None, []), | ||||
|         'stop': (GObject.SignalFlags.RUN_FIRST, None, []) | ||||
|         'stop': (GObject.SignalFlags.RUN_FIRST, None, []), | ||||
|         'mark': (GObject.SignalFlags.RUN_FIRST, None, [str]) | ||||
|     } | ||||
| 
 | ||||
|     MIN_PITCH = -100 | ||||
| @ -212,6 +213,7 @@ class SpeechManager(GObject.GObject): | ||||
|         self._player.connect('play', self._update_state, 'play') | ||||
|         self._player.connect('stop', self._update_state, 'stop') | ||||
|         self._player.connect('pause', self._update_state, 'pause') | ||||
|         self._player.connect('mark', self._mark_cb) | ||||
|         self._default_voice_name = self._player.get_default_voice() | ||||
|         self._pitch = DEFAULT_PITCH | ||||
|         self._rate = DEFAULT_RATE | ||||
| @ -228,6 +230,9 @@ class SpeechManager(GObject.GObject): | ||||
|         self._is_paused = (signal == 'pause') | ||||
|         self.emit(signal) | ||||
| 
 | ||||
|     def _mark_cb(self, player, value): | ||||
|         self.emit('mark', value) | ||||
| 
 | ||||
|     def get_is_playing(self): | ||||
|         return self._is_playing | ||||
| 
 | ||||
| @ -331,7 +336,8 @@ class _GstSpeechPlayer(GObject.GObject): | ||||
|     __gsignals__ = { | ||||
|         'play': (GObject.SignalFlags.RUN_FIRST, None, []), | ||||
|         'pause': (GObject.SignalFlags.RUN_FIRST, None, []), | ||||
|         'stop': (GObject.SignalFlags.RUN_FIRST, None, []) | ||||
|         'stop': (GObject.SignalFlags.RUN_FIRST, None, []), | ||||
|         'mark': (GObject.SignalFlags.RUN_FIRST, None, [str]) | ||||
|     } | ||||
| 
 | ||||
|     def __init__(self): | ||||
| @ -382,6 +388,10 @@ class _GstSpeechPlayer(GObject.GObject): | ||||
|             self._pipeline = None | ||||
|             power.get_power_manager().restore_suspend() | ||||
|             self.emit('stop') | ||||
|         elif message.type is Gst.MessageType.ELEMENT and \ | ||||
|                 message.get_structure().get_name() == 'espeak-mark': | ||||
|             mark_value = message.get_structure().get_value('mark') | ||||
|             self.emit('mark', mark_value) | ||||
| 
 | ||||
|     def speak(self, pitch, rate, voice_name, text): | ||||
|         # TODO workaround for http://bugs.sugarlabs.org/ticket/1801 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Ibiam Chihurumnaya
						Ibiam Chihurumnaya