[Sugar-devel] [PATCH sugar] Port the gstreamer code to pygi

Daniel Narvaez dwnarvaez at gmail.com
Sat Aug 18 06:06:30 EDT 2012


Feel free to ignore this, I pushed it on the manuqs-erikos-shell-port
branch. I think the idea everything will be posted for review here as
soon as the port is in good shape.

On 18 August 2012 11:38, Daniel Narvaez <dwnarvaez at gmail.com> wrote:
> From: Daniel Narvaez <dwnarvaez at gmail.com>
>
> ---
>  bin/sugar-session          |    4 ++++
>  src/jarabe/model/speech.py |   20 ++++++++++----------
>  2 files changed, 14 insertions(+), 10 deletions(-)
>
> diff --git a/bin/sugar-session b/bin/sugar-session
> index 0acbc0b..ec8250d 100755
> --- a/bin/sugar-session
> +++ b/bin/sugar-session
> @@ -28,11 +28,13 @@ if os.environ.get('SUGAR_LOGGER_LEVEL', '') == 'debug':
>
>  import gettext
>  import logging
> +import sys
>
>  from gi.repository import GConf
>  from gi.repository import Gtk
>  from gi.repository import Gdk
>  from gi.repository import GObject
> +from gi.repository import Gst
>  import dbus.glib
>  from gi.repository import Wnck
>
> @@ -48,6 +50,8 @@ except ImportError:
>  Gdk.threads_init()
>  dbus.glib.threads_init()
>
> +Gst.init(sys.argv)
> +
>  def cleanup_logs(logs_dir):
>      """Clean up the log directory, moving old logs into a numbered backup
>      directory.  We only keep `_MAX_BACKUP_DIRS` of these backup directories
> diff --git a/src/jarabe/model/speech.py b/src/jarabe/model/speech.py
> index 86a30d9..864f639 100644
> --- a/src/jarabe/model/speech.py
> +++ b/src/jarabe/model/speech.py
> @@ -18,7 +18,7 @@ import os
>  import logging
>
>  from gi.repository import GConf
> -import gst
> +from gi.repository import Gst
>  from gi.repository import Gtk
>  from gi.repository import GObject
>
> @@ -143,21 +143,21 @@ class _GstSpeechPlayer(GObject.GObject):
>              logging.debug('Trying to restart not initialized sound device')
>              return
>
> -        self._pipeline.set_state(gst.STATE_PLAYING)
> +        self._pipeline.set_state(Gst.State.PLAYING)
>          self.emit('play')
>
>      def pause_sound_device(self):
>          if self._pipeline is None:
>              return
>
> -        self._pipeline.set_state(gst.STATE_PAUSED)
> +        self._pipeline.set_state(Gst.State.PAUSED)
>          self.emit('pause')
>
>      def stop_sound_device(self):
>          if self._pipeline is None:
>              return
>
> -        self._pipeline.set_state(gst.STATE_NULL)
> +        self._pipeline.set_state(Gst.State.NULL)
>          self.emit('stop')
>
>      def make_pipeline(self, command):
> @@ -165,18 +165,18 @@ class _GstSpeechPlayer(GObject.GObject):
>              self.stop_sound_device()
>              del self._pipeline
>
> -        self._pipeline = gst.parse_launch(command)
> +        self._pipeline = Gst.parse_launch(command)
>
>          bus = self._pipeline.get_bus()
>          bus.add_signal_watch()
>          bus.connect('message', self.__pipe_message_cb)
>
>      def __pipe_message_cb(self, bus, message):
> -        if message.type == gst.MESSAGE_EOS:
> -            self._pipeline.set_state(gst.STATE_NULL)
> +        if message.type == Gst.MessageType.EOS:
> +            self._pipeline.set_state(Gst.State.NULL)
>              self.emit('stop')
> -        elif message.type == gst.MESSAGE_ERROR:
> -            self._pipeline.set_state(gst.STATE_NULL)
> +        elif message.type == Gst.MessageType.ERROR:
> +            self._pipeline.set_state(Gst.State.NULL)
>              self.emit('stop')
>
>      def speak(self, pitch, rate, voice_name, text):
> @@ -197,7 +197,7 @@ class _GstSpeechPlayer(GObject.GObject):
>
>      def get_all_voices(self):
>          all_voices = {}
> -        for voice in gst.element_factory_make('espeak').props.voices:
> +        for voice in Gst.ElementFactory.make('espeak', None).props.voices:
>              name, language, dialect = voice
>              if dialect != 'none':
>                  all_voices[language + '_' + dialect] = name
> --
> 1.7.10.4
>



-- 
Daniel Narvaez


More information about the Sugar-devel mailing list