From: Ed Page Date: Wed, 16 Mar 2011 03:22:46 +0000 (-0500) Subject: How have I let this be broken on Maemo 4.1? X-Git-Url: http://vcs.maemo.org/git/?p=watersofshiloah;a=commitdiff_plain;h=f89be72d26aa04722be4532dfd32fee7e0b9babb How have I let this be broken on Maemo 4.1? --- diff --git a/src/player.py b/src/player.py index 561b5c7..2326a63 100644 --- a/src/player.py +++ b/src/player.py @@ -4,10 +4,15 @@ import gobject import util.misc as misc_utils try: - import stream as _stream - stream = _stream # Silence PyFlakes + import stream_gst + stream = stream_gst except ImportError: - import stream_gst as stream + try: + import stream_osso + stream = stream_osso + except ImportError: + import stream_null + stream = stream_null import stream_index import call_monitor diff --git a/src/stream_gst.py b/src/stream_gst.py index df37a63..ce97fb6 100644 --- a/src/stream_gst.py +++ b/src/stream_gst.py @@ -35,7 +35,6 @@ class Stream(gobject.GObject): ), } - def __init__(self): gobject.GObject.__init__(self) #Fields diff --git a/src/stream_null.py b/src/stream_null.py new file mode 100644 index 0000000..07f54ac --- /dev/null +++ b/src/stream_null.py @@ -0,0 +1,78 @@ +#!/usr/bin/env python + +from __future__ import with_statement +from __future__ import division + +import gobject +import logging + + +_moduleLogger = logging.getLogger(__name__) + + +class Stream(gobject.GObject): + + STATE_PLAY = "play" + STATE_PAUSE = "pause" + STATE_STOP = "stop" + + __gsignals__ = { + 'state-change' : ( + gobject.SIGNAL_RUN_LAST, + gobject.TYPE_NONE, + (gobject.TYPE_STRING, ), + ), + 'eof' : ( + gobject.SIGNAL_RUN_LAST, + gobject.TYPE_NONE, + (gobject.TYPE_STRING, ), + ), + 'error' : ( + gobject.SIGNAL_RUN_LAST, + gobject.TYPE_NONE, + (gobject.TYPE_PYOBJECT, gobject.TYPE_PYOBJECT), + ), + } + + def __init__(self): + gobject.GObject.__init__(self) + + @property + def playing(self): + return False + + @property + def has_file(self): + return False + + @property + def state(self): + return self.STATE_STOP + + def set_file(self, uri): + self.emit("error", "Audio not supported on this platform", "") + + def play(self): + self.emit("error", "Audio not supported on this platform", "") + + def pause(self): + self.emit("error", "Audio not supported on this platform", "") + + def stop(self): + self.emit("error", "Audio not supported on this platform", "") + + @property + def elapsed(self): + return 0 + + @property + def duration(self): + return 0 + + def seek_time(self, ns): + self.emit("error", "Audio not supported on this platform", "") + + +if __name__ == "__main__": + pass + diff --git a/src/windows/_base.py b/src/windows/_base.py index c38165a..9c28eda 100644 --- a/src/windows/_base.py +++ b/src/windows/_base.py @@ -550,6 +550,7 @@ class PresenterWindow(BasicWindow): def _on_player_error(self, player, err, debug): assert not self._isDestroyed _moduleLogger.error("%r - %r" % (err, debug)) + self._errorBanner.push_message(err) @misc_utils.log_exception(_moduleLogger) def _on_navigating(self, widget, navState): diff --git a/src/windows/radio.py b/src/windows/radio.py index 5d5793a..0aea0d7 100644 --- a/src/windows/radio.py +++ b/src/windows/radio.py @@ -69,6 +69,7 @@ class RadioWindow(windows._base.BasicWindow): self._presenterNavigation.toplevel.add(self._presenter.toplevel) self.connect_auto(self._presenterNavigation, "action", self._on_nav_action) self.connect_auto(self._presenterNavigation, "navigating", self._on_navigating) + self.connect_auto(self._player, "error", self._on_player_error) self._radioLayout = gtk.VBox(False) self._radioLayout.pack_start(self._treeScroller, True, True) @@ -155,6 +156,12 @@ class RadioWindow(windows._base.BasicWindow): return i @misc_utils.log_exception(_moduleLogger) + def _on_player_error(self, player, err, debug): + assert not self._isDestroyed + _moduleLogger.error("%r - %r" % (err, debug)) + self._errorBanner.push_message(err) + + @misc_utils.log_exception(_moduleLogger) def _on_continual_update(self, *args): if self._isDestroyed: return False