Update of /cvsroot/freevo/freevo/src/record
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29342
Modified Files:
client.py
Log Message:
add functions to handle record.list.update
Index: client.py
===================================================================
RCS file: /cvsroot/freevo/freevo/src/record/client.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** client.py 19 Dec 2004 18:40:53 -0000 1.2
--- client.py 20 Dec 2004 21:25:18 -0000 1.3
***************
*** 43,47 ****
class Recording:
! def __init__(self, id, channel, priority, start, stop, status):
self.id = id
self.channel = channel
--- 43,51 ----
class Recording:
! def __init__(self, *args):
! self.update(*args)
!
!
! def update(self, id, channel, priority, start, stop, status):
self.id = id
self.channel = channel
***************
*** 51,56 ****
self.status = status
self.description = {}
!
!
class Recordings:
def __init__(self):
--- 55,59 ----
self.status = status
self.description = {}
!
class Recordings:
def __init__(self):
***************
*** 59,63 ****
self.server = None
mcomm.register_entity_notification(self.__entity_update)
!
def __entity_update(self, entity):
--- 62,67 ----
self.server = None
mcomm.register_entity_notification(self.__entity_update)
! mcomm.register_event('record.list.update', self.__list_update)
!
def __entity_update(self, entity):
***************
*** 67,71 ****
return
! if entity.present and
entity.matches(mcomm.get_address('recordserver')):
log.info('recordserver found')
self.server = entity
--- 71,76 ----
return
! if entity.present and \
! entity.matches(mcomm.get_address('recordserver')):
log.info('recordserver found')
self.server = entity
***************
*** 89,95 ****
self.__recordings['%s-%s-%s' % (l[1], l[3], l[4])] = Recording(*l)
log.info('got recording list')
! self.__update_description()
def __describe_callback(self, result):
try:
--- 94,114 ----
self.__recordings['%s-%s-%s' % (l[1], l[3], l[4])] = Recording(*l)
log.info('got recording list')
! self.__request_description()
+ def __list_update(self, result):
+ log.info('got recording list update')
+ for l in result.payload[0].args:
+ key = '%s-%s-%s' % (l[1], l[3], l[4])
+ if key in self.__recordings:
+ log.debug('update: %s: %s', l[0], l[5])
+ self.__recordings[key].update(*l)
+ else:
+ log.debug('new: %s', l[0])
+ self.__recordings[key] = Recording(*l)
+ self.__request_description()
+ return True
+
+
def __describe_callback(self, result):
try:
***************
*** 105,119 ****
description['start_padding'] = rec[7]
description['stop_padding'] = rec[8]
! self.__recordings['%s-%s-%s' % (rec[2], rec[4], rec[5])].description
= description
! self.__update_description()
! def __update_description(self):
if not self.server:
return
for key in self.__recordings:
if not self.__recordings[key].description:
self.server.recording_describe(self.__recordings[key].id,
!
callback=self.__describe_callback)
return
log.info('got all recording descriptions')
--- 124,140 ----
description['start_padding'] = rec[7]
description['stop_padding'] = rec[8]
! key = '%s-%s-%s' % (rec[2], rec[4], rec[5])
! self.__recordings[key].description = description
! self.__request_description()
! def __request_description(self):
if not self.server:
return
for key in self.__recordings:
if not self.__recordings[key].description:
+ cb = self.__describe_callback
self.server.recording_describe(self.__recordings[key].id,
! callback=cb)
return
log.info('got all recording descriptions')
***************
*** 188,192 ****
return
! if entity.present and
entity.matches(mcomm.get_address('recordserver')):
self.server = entity
self.server.favorite_list(callback=self.__list_callback)
--- 209,214 ----
return
! if entity.present and \
! entity.matches(mcomm.get_address('recordserver')):
self.server = entity
self.server.favorite_list(callback=self.__list_callback)
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog