GStreamerProcess: One method is better than three

This commit is contained in:
Stein Magnus Jodal 2010-08-11 19:44:13 +02:00
parent 5f16538f7e
commit 1bc62c5046

View File

@ -107,49 +107,25 @@ class GStreamerProcess(BaseProcess):
def play_uri(self, uri): def play_uri(self, uri):
"""Play audio at URI""" """Play audio at URI"""
self.state_ready() self.set_state('READY')
self.gst_uri_src.set_property('uri', uri) self.gst_uri_src.set_property('uri', uri)
self.state_playing() self.set_state('PLAYING')
# TODO Return status # TODO Return status
def state_playing(self): def set_state(self, state_name):
""" """
Set the state to PLAYING. Set the GStreamer state. Returns :class:`True` if successful.
Previous state should be READY or PAUSED. :param state_name: READY, PLAYING, or PAUSED
:type state_name: string
:rtype: :class:`True` or :class:`False`
""" """
result = self.gst_uri_src.set_state(gst.STATE_PLAYING) result = self.gst_uri_src.set_state(getattr(gst, 'STATE_' + state_name)
if result == gst.STATE_CHANGE_SUCCESS: if result == gst.STATE_CHANGE_SUCCESS:
logger.debug('Setting GStreamer state to PLAYING: OK') logger.debug('Setting GStreamer state to %s: OK', state_name)
return True return True
else: else:
logger.warning('Setting GStreamer state to PLAYING: failed') logger.warning('Setting GStreamer state to %s: failed', state_name)
return False
def state_paused(self):
"""
Set the state to PAUSED.
Previous state should be PLAYING.
"""
result = self.gst_uri_src.set_state(gst.STATE_PAUSED)
if result == gst.STATE_CHANGE_SUCCESS:
logger.debug('Setting GStreamer state to PAUSED: OK')
return True
else:
logger.warning('Setting GStreamer state to PAUSED: failed')
return False
def state_ready(self):
"""
Set the state to READY.
"""
result = self.gst_uri_src.set_state(gst.STATE_READY)
if result == gst.STATE_CHANGE_SUCCESS:
logger.debug('Setting GStreamer state to READY: OK')
return True
else:
logger.warning('Setting GStreamer state to READY: failed')
return False return False
def get_volume(self): def get_volume(self):