GStreamerProcess: Add initial core_queue message processing
This commit is contained in:
parent
1bc62c5046
commit
5dfc41e3eb
@ -6,7 +6,7 @@ pygst.require('0.10')
|
|||||||
import gst
|
import gst
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from mopidy.process import BaseProcess
|
from mopidy.process import BaseProcess, unpickle_connection
|
||||||
|
|
||||||
logger = logging.getLogger('mopidy.outputs.gstreamer')
|
logger = logging.getLogger('mopidy.outputs.gstreamer')
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ class GStreamerProcess(BaseProcess):
|
|||||||
"""
|
"""
|
||||||
A process for all work related to GStreamer.
|
A process for all work related to GStreamer.
|
||||||
|
|
||||||
The main loop polls for events from both Mopidy and GStreamer.
|
The main loop processes events from both Mopidy and GStreamer.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, core_queue):
|
def __init__(self, core_queue):
|
||||||
@ -86,11 +86,24 @@ class GStreamerProcess(BaseProcess):
|
|||||||
self.gst_sink)
|
self.gst_sink)
|
||||||
|
|
||||||
def process_core_message(self, message):
|
def process_core_message(self, message):
|
||||||
"""Processes messages from the rest of Mopidy."""
|
"""Process messages from the rest of Mopidy."""
|
||||||
pass # TODO
|
assert message['to'] == 'gstreamer', 'Message must be addressed to us'
|
||||||
|
if message['command'] == 'play_uri':
|
||||||
|
response = self.play_uri(message['uri'])
|
||||||
|
connection = unpickle_connection(message['reply_to'])
|
||||||
|
connection.send(response)
|
||||||
|
elif message['command'] == 'deliver_data':
|
||||||
|
# TODO Do we care about sending responses for every data delivery?
|
||||||
|
self.deliver_data(message['caps'], message['data'])
|
||||||
|
elif message['command'] == 'set_state':
|
||||||
|
response = self.set_state(message['state'])
|
||||||
|
connection = unpickle_connection(message['reply_to'])
|
||||||
|
connection.send(response)
|
||||||
|
else:
|
||||||
|
logger.warning(u'Cannot handle message: %s', message)
|
||||||
|
|
||||||
def process_gst_message(self, bus, message):
|
def process_gst_message(self, bus, message):
|
||||||
"""Processes message from GStreamer."""
|
"""Process messages from GStreamer."""
|
||||||
if message.type == gst.MESSAGE_EOS:
|
if message.type == gst.MESSAGE_EOS:
|
||||||
pass # TODO Handle end of track/stream
|
pass # TODO Handle end of track/stream
|
||||||
elif message.type == gst.MESSAGE_ERROR:
|
elif message.type == gst.MESSAGE_ERROR:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user