How have I let this be broken on Maemo 4.1?
authorEd Page <eopage@byu.net>
Wed, 16 Mar 2011 03:22:46 +0000 (22:22 -0500)
committerEd Page <eopage@byu.net>
Wed, 16 Mar 2011 03:22:46 +0000 (22:22 -0500)
src/player.py
src/stream_gst.py
src/stream_null.py [new file with mode: 0644]
src/windows/_base.py
src/windows/radio.py

index 561b5c7..2326a63 100644 (file)
@@ -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
 
index df37a63..ce97fb6 100644 (file)
@@ -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 (file)
index 0000000..07f54ac
--- /dev/null
@@ -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
+
index c38165a..9c28eda 100644 (file)
@@ -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):
index 5d5793a..0aea0d7 100644 (file)
@@ -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