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