Author: dmeyer
Date: Fri Mar 23 10:21:52 2007
New Revision: 9374

Modified:
   trunk/core/src/ipc/tvserver.py
   trunk/ui/src/tv/program.py

Log:
Use yield_execution when waiting for tvserver return


Modified: trunk/core/src/ipc/tvserver.py
==============================================================================
--- trunk/core/src/ipc/tvserver.py      (original)
+++ trunk/core/src/ipc/tvserver.py      Fri Mar 23 10:21:52 2007
@@ -115,6 +115,9 @@
     Handling of recordings from the recordserver. The object will auto sync
     with the recordserver to keep the list up to date.
     """
+
+    SUCCESS = 'SUCCESS'
+    
     def __init__(self, instance):
         self.last_update = time.time()
         self._recordings = {}
@@ -249,29 +252,35 @@
         return self._recordings.values()
 
 
+    @kaa.notifier.yield_execution()
     def schedule(self, prog):
         if not self.server:
-            return False, 'Recordserver unavailable'
+            yield _('tvserver unavailable')
         info = {}
         if prog.description:
             info['description'] = prog.description
         if prog.subtitle:
             info['subtitle'] = prog.subtitle
 
-        self.rpc('home-theatre.recording.add', prog.title, prog.channel.id,
-                 1000, prog.start, prog.stop, info)
-
-        # FIXME: make it possible to return a failure
-        return True, 'Scheduled'
+        result = self.rpc('home-theatre.recording.add', prog.title,
+                          prog.channel.id, 1000, prog.start, prog.stop, info)
+        yield result
+        if not result():
+            # FIXME: get real error message from tvserver
+            yield 'failed'
+        yield self.SUCCESS
 
 
+    @kaa.notifier.yield_execution()
     def remove(self, id):
         if not self.server:
-            return False, 'Recordserver unavailable'
-        self.rpc('home-theatre.recording.remove', id)
-
-        # FIXME: make it possible to return a failure
-        return True, 'Removed'
+            yield _('tvserver unavailable')
+        result = self.rpc('home-theatre.recording.remove', id)
+        yield result
+        if not result():
+            # FIXME: get real error message from tvserver
+            yield 'failed'
+        yield self.SUCCESS
 
 
 

Modified: trunk/ui/src/tv/program.py
==============================================================================
--- trunk/ui/src/tv/program.py  (original)
+++ trunk/ui/src/tv/program.py  Fri Mar 23 10:21:52 2007
@@ -36,6 +36,7 @@
 
 # kaa imports
 import kaa.epg
+import kaa.notifier
 from kaa.strutils import unicode_to_str
 
 # freevo core imports
@@ -178,23 +179,31 @@
         self.pushmenu(s)
 
 
+    @kaa.notifier.yield_execution()
     def schedule(self):
-        (result, msg) = tvserver.recordings.schedule(self)
-        if result:
-            MessageWindow(_('"%s" has been scheduled for recording') % \
-                       self.title).show()
+        result = tvserver.recordings.schedule(self)
+        if isinstance(result, kaa.notifier.InProgress):
+            yield result
+            result = result()
+        if result == tvserver.recordings.SUCCESS:
+            msg = _('"%s" has been scheduled for recording') % self.title
         else:
-            MessageWindow(_('Scheduling Failed')+(': %s' % msg)).show()
+            msg = _('Scheduling failed: %s') % result
+        MessageWindow(msg).show()
         self.get_menustack().delete_submenu()
 
 
+    @kaa.notifier.yield_execution()
     def remove(self):
-        (result, msg) = tvserver.recordings.remove(self.scheduled.id)
-        if result:
-            MessageWindow(_('"%s" has been removed as recording') % \
-                       self.title).show()
+        result = tvserver.recordings.remove(self.scheduled.id)
+        if isinstance(result, kaa.notifier.InProgress):
+            yield result
+            result = result()
+        if result == tvserver.recordings.SUCCESS:
+            msg = _('"%s" has been removed') % self.title
         else:
-            MessageWindow(_('Scheduling Failed')+(': %s' % msg)).show()
+            msg = _('Removing failed: %s') % result
+        MessageWindow(msg).show()
         self.get_menustack().delete_submenu()
 
 

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to