Add error handling code for shoutcast errors

This commit is contained in:
Thomas Adamcik 2011-05-16 22:01:30 +02:00
parent a4b03aa292
commit 2ef550eb7b

View File

@ -1,6 +1,10 @@
import logging
from mopidy import settings
from mopidy.outputs import BaseOutput
logger = logging.getLogger('mopidy.outputs.shoutcast')
class ShoutcastOutput(BaseOutput):
"""
Shoutcast streaming output.
@ -16,11 +20,26 @@ class ShoutcastOutput(BaseOutput):
% settings.SHOUTCAST_OUTPUT_ENCODER
def modify_bin(self):
shoutcast = self.bin.get_by_name('shoutcast')
self.set_properties(shoutcast, {
self.set_properties(self.bin.get_by_name('shoutcast'), {
u'ip': settings.SHOUTCAST_OUTPUT_SERVER,
u'mount': settings.SHOUTCAST_OUTPUT_MOUNT,
u'port': settings.SHOUTCAST_OUTPUT_PORT,
u'username': settings.SHOUTCAST_OUTPUT_USERNAME,
u'password': settings.SHOUTCAST_OUTPUT_PASSWORD,
})
def on_connect(self):
self.gstreamer.connect_message_handler(
self.bin.get_by_name('shoutcast'), self.message_handler)
def on_remove(self):
self.gstreamer.remove_message_handler(
self.bin.get_by_name('shoutcast'))
def message_handler(self, message):
if message.type != self.MESSAGE_ERROR:
return False
error, debug = message.parse_error()
logger.warning('%s (%s)', error, debug)
self.remove()
return True