Author: duncan
Date: Mon Nov  5 01:37:20 2007
New Revision: 10074

Log:
Merged changes from rel-1-7


Modified:
   branches/rel-1/freevo/freevo_config.py
   branches/rel-1/freevo/src/audio/__init__.py
   branches/rel-1/freevo/src/audio/plugins/detach.py
   branches/rel-1/freevo/src/audio/plugins/detachbar.py
   branches/rel-1/freevo/src/commdetectcore.py
   branches/rel-1/freevo/src/encodingcore.py
   branches/rel-1/freevo/src/games/__init__.py
   branches/rel-1/freevo/src/helpers/commdetectserver.py
   branches/rel-1/freevo/src/helpers/encodingserver.py
   branches/rel-1/freevo/src/helpers/recordserver.py
   branches/rel-1/freevo/src/image/imageitem.py
   branches/rel-1/freevo/src/plugins/cd_burn.py
   branches/rel-1/freevo/src/plugins/idlebar/encoding.py
   branches/rel-1/freevo/src/plugins/idlebar/transcode.py
   branches/rel-1/freevo/src/tv/plugins/manual_record.py
   branches/rel-1/freevo/src/tv/plugins/upsoon.py
   branches/rel-1/freevo/src/video/__init__.py
   branches/rel-1/freevo/src/video/plugins/bilingual.py
   branches/rel-1/freevo/src/video/plugins/reencode-old.py
   branches/rel-1/freevo/src/video/plugins/reencode.py
   branches/rel-1/freevo/src/video/videoitem.py

Modified: branches/rel-1/freevo/freevo_config.py
==============================================================================
--- branches/rel-1/freevo/freevo_config.py      (original)
+++ branches/rel-1/freevo/freevo_config.py      Mon Nov  5 01:37:20 2007
@@ -423,6 +423,29 @@
 
 
 # ======================================================================
+# Main menu items
+# ======================================================================
+plugin.activate('tv', level=10)
+plugin.activate('video', level=20)
+plugin.activate('audio', level=30)
+plugin.activate('image', level=40)
+
+if CONF.xmame or CONF.snes:
+    plugin.activate('games', level=50)
+
+# Headlines
+plugin.activate('headlines', level=60)
+HEADLINES_LOCATIONS = [
+    ('Freevo news releases', 
'http://sourceforge.net/export/rss2_projnews.php?group_id=46652'),
+   #('Freevo news releases (full)', 
'http://sourceforge.net/export/rss2_projnews.php?group_id=46652&rss_fulltext=1'),
+    ('Freevo file releases', 
'http://sourceforge.net/export/rss2_projfiles.php?group_id=46652'),
+    ('Freevo summary+stats', 
'http://sourceforge.net/export/rss2_projsummary.php?group_id=46652'),
+    ('Freevo donors', 
'http://sourceforge.net/export/rss2_projdonors.php?group_id=46652'),
+]
+plugin.activate('shutdown', level=90)
+
+
+# ======================================================================
 # AUTOSHUTDOWN CONFIGURATION
 # ======================================================================
 
@@ -721,17 +744,6 @@
 #   menus
 
 
-# Items in the main menu.
-plugin.activate('tv', level=10)
-plugin.activate('video', level=20)
-plugin.activate('audio', level=30)
-plugin.activate('image', level=40)
-plugin.activate('shutdown', level=50)
-
-if CONF.xmame or CONF.snes:
-    plugin.activate('games', level=45)
-
-
 # ROM drive support
 
 # autostarter when inserting roms while Freevo is in the MAIN MENU
@@ -848,18 +860,6 @@
 plugin.activate('idlebar.clock', level=50)
 CLOCK_FORMAT = '%a %d %H:%M'
 
-# ======================================================================
-# Headlines
-# ======================================================================
-plugin.activate('headlines', level=45)
-HEADLINES_LOCATIONS = [
-    ('Freevo news releases', 
'http://sourceforge.net/export/rss2_projnews.php?group_id=46652'),
-   #('Freevo news releases (full)', 
'http://sourceforge.net/export/rss2_projnews.php?group_id=46652&rss_fulltext=1'),
-    ('Freevo file releases', 
'http://sourceforge.net/export/rss2_projfiles.php?group_id=46652'),
-    ('Freevo summary+stats', 
'http://sourceforge.net/export/rss2_projsummary.php?group_id=46652'),
-    ('Freevo donors', 
'http://sourceforge.net/export/rss2_projdonors.php?group_id=46652'),
-]
-
 # ----------------------------------------------------------------------
 # CD Ripping
 # ----------------------------------------------------------------------

Modified: branches/rel-1/freevo/src/audio/__init__.py
==============================================================================
--- branches/rel-1/freevo/src/audio/__init__.py (original)
+++ branches/rel-1/freevo/src/audio/__init__.py Mon Nov  5 01:37:20 2007
@@ -53,6 +53,7 @@
     """
 
     def __init__(self):
+        _debug_('audio.PluginInterface.__init__()')
         plugin.MimetypePlugin.__init__(self)
         self.display_type = [ 'audio' ]
 

Modified: branches/rel-1/freevo/src/audio/plugins/detach.py
==============================================================================
--- branches/rel-1/freevo/src/audio/plugins/detach.py   (original)
+++ branches/rel-1/freevo/src/audio/plugins/detach.py   Mon Nov  5 01:37:20 2007
@@ -43,7 +43,7 @@
     """
 
     def __init__(self):
-        _debug_('__init__(self)', 2)
+        _debug_('detach.PluginInterface.__init__(self)', 2)
         plugin.MainMenuPlugin.__init__(self)
         config.EVENTS['audio'][config.DETACH_KEY] = Event(FUNCTION_CALL, 
arg=self.detach)
         self.show_item = menu.MenuItem(_('Show player'), action=self.show)

Modified: branches/rel-1/freevo/src/audio/plugins/detachbar.py
==============================================================================
--- branches/rel-1/freevo/src/audio/plugins/detachbar.py        (original)
+++ branches/rel-1/freevo/src/audio/plugins/detachbar.py        Mon Nov  5 
01:37:20 2007
@@ -58,7 +58,7 @@
 
     def __init__(self):
         """initialise the DaemonPlugin interface"""
-        _debug_('__init__(self)', 2)
+        _debug_('detachbar.PluginInterface.__init__(self)', 2)
         plugin.DaemonPlugin.__init__(self)
         self.plugin_name = 'audio.detachbar'
         self.update_registered = False

Modified: branches/rel-1/freevo/src/commdetectcore.py
==============================================================================
--- branches/rel-1/freevo/src/commdetectcore.py (original)
+++ branches/rel-1/freevo/src/commdetectcore.py Mon Nov  5 01:37:20 2007
@@ -38,7 +38,7 @@
 
     def __init__(self, source, idnr):
         """Initialize class instance"""
-        _debug_('__init__(self, %s)' % (source))
+        _debug_('commdetectcore.CommDetectJob.__init__(%s)' % (source))
         self.source = source
         self.name = source
         self.idnr = idnr

Modified: branches/rel-1/freevo/src/encodingcore.py
==============================================================================
--- branches/rel-1/freevo/src/encodingcore.py   (original)
+++ branches/rel-1/freevo/src/encodingcore.py   Mon Nov  5 01:37:20 2007
@@ -102,7 +102,8 @@
 
     def __init__(self, source, output, friendlyname, idnr, chapter=None):
         """Initialize class instance"""
-        _debug_('__init__(self, %s, %s, %s, %s, %s)' % (source, output, 
friendlyname, idnr, chapter), 2)
+        _debug_('encodingcore.EncodingJob.__init__(%s, %s, %s, %s, %s)' % \
+            (source, output, friendlyname, idnr, chapter), 2)
         #currently only MEncoder can be used, but who knows what will happen 
in the future :)
         self._generateCL = self._GenerateCLMencoder
 

Modified: branches/rel-1/freevo/src/games/__init__.py
==============================================================================
--- branches/rel-1/freevo/src/games/__init__.py (original)
+++ branches/rel-1/freevo/src/games/__init__.py Mon Nov  5 01:37:20 2007
@@ -51,7 +51,7 @@
     """
 
     def __init__(self):
-        _debug_('PluginInterface.__init__()', 2)
+        _debug_('games.PluginInterface.__init__()', 2)
         plugin.MimetypePlugin.__init__(self)
         self.display_type = [ 'games' ]
 

Modified: branches/rel-1/freevo/src/helpers/commdetectserver.py
==============================================================================
--- branches/rel-1/freevo/src/helpers/commdetectserver.py       (original)
+++ branches/rel-1/freevo/src/helpers/commdetectserver.py       Mon Nov  5 
01:37:20 2007
@@ -43,8 +43,7 @@
     except Exception, e:
         print e
 
-from twisted.web import xmlrpc, server, sux
-from twisted.internet import reactor
+from twisted.web import xmlrpc, server
 from util.marmalade import jellyToXML, unjellyFromXML
 import time, random, sys, os
 import logging
@@ -60,7 +59,16 @@
 unjam = unjellyFromXML
 
 class CommDetectServer(xmlrpc.XMLRPC):
-    def __init__(self, debug=False):
+    """ Commercial detect server class """
+
+    def __init__(self, debug=False, allowNone=False):
+        """ Initialise the Commercial Detection Server class """
+        _debug_('CommDetectServer.__init__(debug=%r, allowNone=%r)' % (debug, 
allowNone), 1)
+        try:
+            xmlrpc.XMLRPC.__init__(self, allowNone)
+        except TypeError:
+            xmlrpc.XMLRPC.__init__(self)
+        self.debug = debug
         self.jobs = {}
         self.queue = CommDetectQueue()
         _debug_("CommDetectServer started...", DINFO)
@@ -100,19 +108,21 @@
         return (True, jam(jlist))
 
 def main():
+    from twisted.internet import reactor
     global DEBUG
     if not (os.path.exists(tmppath) and os.path.isdir(tmppath)):
         os.mkdir(tmppath)
     os.chdir(tmppath)
-    app = Application("CommDetectServer")
+
+    debug = False
     if len(sys.argv) >= 2 and sys.argv[1] == "debug":
-        es = CommDetectServer(True)
+        debug = True
         import commdetectcore
-        commdetectcore.DEBUG=True
-    else:
-        es = CommDetectServer()
+        commdetectcore.DEBUG=debug
+
     _debug_('DEBUG=%s' % DEBUG, DINFO)
-    reactor.listenTCP(config.COMMDETECTSERVER_PORT, server.Site(es))
+    cds = CommDetectServer(debug=debug, allowNone=True)
+    reactor.listenTCP(config.COMMDETECTSERVER_PORT, server.Site(cds))
     reactor.run()
 
 if __name__ == '__main__':

Modified: branches/rel-1/freevo/src/helpers/encodingserver.py
==============================================================================
--- branches/rel-1/freevo/src/helpers/encodingserver.py (original)
+++ branches/rel-1/freevo/src/helpers/encodingserver.py Mon Nov  5 01:37:20 2007
@@ -69,23 +69,34 @@
 
 class EncodingServer(xmlrpc.XMLRPC):
 
-    def __init__(self, debug=False):
+    def __init__(self, debug=False, allowNone=False):
+        """ Initialise the EncodingServer class """
+        _debug_('EncodingServer.__init__(debug=%r, allowNone=%r)' % (debug, 
allowNone), 1)
+        try:
+            xmlrpc.XMLRPC.__init__(self, allowNone)
+        except TypeError:
+            xmlrpc.XMLRPC.__init__(self)
+        self.debug = debug
         self.jobs = {}
         self.queue = EncodingQueue()
         _debug_("EncodingServer started...", DINFO)
 
     def xmlrpc_echotest(self, blah):
-        _debug_("xmlrpc_echotest(self, blah)", 3)
+        """ Using Twisted check the connection """
+        _debug_('xmlrpc_echotest(blah=%r)' % (blah), 1)
         return (True, 'EncodingServer::echotest: %s' % blah)
 
     def xmlrpc_initEncodeJob(self, source, output, friendlyname="", 
chapter=None):
-        _debug_("xmlrpc_initEncodeJob(self, %s, %s, %s, %s)" % (source, 
output, friendlyname, chapter), 3)
+        """ Using Twisted initialise an encoding job """
+        _debug_('xmlrpc_initEncodeJob(source=%r, output=%r, friendlyname=%r, 
chapter=%r)' % \
+            (source, output, friendlyname, chapter), 1)
         #safety checks
         if not (source or output):
             return (False, 'EncodingServer::initEncodeJob:  no source or 
output given')
-        #generate a "random" idnr based on the time
-        #in p2.3 , int() can return long int's, wich is fine, except it makes 
XMLRPC fail somwhere along the way
-        # so we devide or random number by 100 :)
+
+        # generate a "random" idnr based on the time in p2.3, int() can return 
long
+        # int's, which is fine, except it makes XMLRPC fail somwhere along the 
way so we
+        # devide or random number by 100 :)
         idnr = int((time.time() / random.random()) / 100)
         _debug_("idnr=%s" % (idnr), 2)
         self.jobs[idnr] = EncodingJob(source, output, friendlyname, idnr, 
chapter)
@@ -94,16 +105,18 @@
         while not self.jobs[idnr].finishedanalyze:
             time.sleep(0.1)
 
-        _debug_("Initialized job %s (idnr : %s)" % (friendlyname,idnr), DINFO)
+        _debug_("Initialized job %s (idnr : %s)" % (friendlyname, idnr), DINFO)
 
         return (True, idnr)
 
     def xmlrpc_getContainerCAP(self, idnr):
-        _debug_("xmlrpc_getContainerCAP(self, idnr)", 3)
+        """ Using Twisted get the container capabilities """
+        _debug_('xmlrpc_getContainerCAP(idnr=%r)' % (idnr), 1)
         return (True, jam(self.jobs[idnr].getContainerList()))
 
     def xmlrpc_setContainer(self, idnr, container):
-        _debug_("xmlrpc_setContainer(self, idnr, container)", 3)
+        """ Using Twisted set the container """
+        _debug_('xmlrpc_setContainer(idnr=%r, container=%r)' % (idnr, 
container), 1)
         status = self.jobs[idnr].setContainer(container)
 
         if not status:
@@ -112,12 +125,14 @@
             return (False, "EncodingServer::setContainer: %s" % status)
 
     def xmlrpc_getVideoCodecCAP(self, idnr):
-        _debug_("xmlrpc_getVideoCodecCAP(self, idnr)", 3)
+        """ Using Twisted get the video capabilities """
+        _debug_('xmlrpc_getVideoCodecCAP(idnr=%r)' % (idnr), 1)
         return (True, jam(self.jobs[idnr].getVideoCodecList()))
 
     def xmlrpc_setVideoCodec(self, idnr, vcodec, tgtsize, multipass=False, 
vbitrate=0):
-        _debug_("xmlrpc_setVideoCodec(self, %s, %s, %s, %s %s)" % \
-            (idnr, vcodec, tgtsize, multipass, vbitrate), 3)
+        """ Using Twisted set the video codec """
+        _debug_('xmlrpc_setVideoCodec(idnr=%r, vcodec=%r, tgtsize=%r, 
multipass=%r, vbitrate==%r)' % \
+            (idnr, vcodec, tgtsize, multipass, vbitrate), 1)
         #safety checks
         if not (vcodec or (tgtsize and vbitrate)):
             return (False, 'EncodingServer::setVideoCodec:  no codec or target 
size given')
@@ -130,11 +145,13 @@
             return (False, "EncodingServer::setVideoCodec: %s" % status)
 
     def xmlrpc_getAudioCodecCAP(self, idnr):
-        _debug_("xmlrpc_getAudioCodecCAP(self, idnr)", 3)
+        """ Using Twisted get the audio capabilities """
+        _debug_('xmlrpc_getAudioCodecCAP(idnr=%r)' % (idnr), 1)
         return (True, jam(self.jobs[idnr].getAudioCodecList()))
 
     def xmlrpc_setAudioCodec(self, idnr, acodec, abrate):
-        _debug_("xmlrpc_setAudioCodec(self, idnr, acodec, abrate)", 3)
+        """ Using Twisted set the audio codec """
+        _debug_('xmlrpc_setAudioCodec(idnr=%r, acodec=%r, abrate=%r)' % (idnr, 
acodec, abrate), 1)
         #safety checks
         if not (acodec or abrate):
             return (False, 'EncodingServer::setAudioCodec:  no codec or 
bitrate given')
@@ -147,12 +164,14 @@
             return (False, "EncodingServer::setAudioCodec: %s" % status)
 
     def xmlrpc_getVideoFiltersCAP(self, idnr):
-        _debug_("xmlrpc_getVideoFiltersCAP(self, idnr)", 3)
+        """ Using Twisted get the video filter capabilities """
+        _debug_('xmlrpc_getVideoFiltersCAP(idnr=%r)' % (idnr), 1)
         return (True, jam(self.jobs[idnr].getVideoFiltersList()))
 
 
     def xmlrpc_setVideoFilters(self, idnr, filters):
-        _debug_("xmlrpc_setVideoFilters(self, idnr, filters)", 3)
+        """ Using Twisted set the video filter list """
+        _debug_('xmlrpc_setVideoFilters(idnr, filters)', 1)
         #safety checks
         if not filters:
             return (False, 'EncodingServer::setAudioCodec:  no codec or 
bitrate given')
@@ -165,7 +184,8 @@
             return (False, "EncodingServer::setVideoFilters: %s" % status)
 
     def xmlrpc_queueIt(self, idnr, now=False):
-        _debug_("xmlrpc_queueIt(self, idnr, now=False)", 3)
+        """ Using Twisted queue a job to run """
+        _debug_('xmlrpc_queueIt(idnr=%r, now=%r)' % (idnr, now), 1)
         self.queue.addEncodingJob(self.jobs[idnr])
         del self.jobs[idnr]
         _debug_("Added job %s to the queue" % idnr, DINFO)
@@ -174,35 +194,40 @@
         return (True, "EncodingServer::queueIt: OK")
 
     def xmlrpc_getProgress(self):
-        _debug_("xmlrpc_getProgress(self)", 3)
+        """ Using Twisted get the progress status of the current job """
+        _debug_('xmlrpc_getProgress()', 1)
         prog = self.queue.getProgress()
         if type(prog) is str:
             return (False, "EncodingServer::getProgress: %s" % prog)
         return (True, jam(prog))
 
     def xmlrpc_startQueue(self):
-        _debug_("xmlrpc_startQueue(self)", 3)
+        """ Using Twisted start the job queue """
+        _debug_('xmlrpc_startQueue()', 1)
         self.queue.startQueue()
         return (True, "EncodingServer::startqueue: OK")
 
     def xmlrpc_listJobs(self):
-        _debug_("xmlrpc_listJobs(self)", 3)
+        """ List the current jobs """
+        _debug_('xmlrpc_listJobs()', 1)
         jlist = self.queue.listJobs()
         return (True, jam(jlist))
 
 
 def main():
+    """ The main entry point for the server """
+    _debug_('main()', 1)
     global DEBUG
     tmppath = tempfile.mkdtemp(prefix = 'encodeserver')
     os.chdir(tmppath)
 
+    debug = False
     if len(sys.argv) >= 2 and sys.argv[1] == "debug":
-        es = EncodingServer(True)
+        debug = True
         import encodingcore
-        encodingcore.DEBUG=True
-    else:
-        es = EncodingServer()
+        encodingcore.DEBUG = debug
     _debug_('main: DEBUG=%s' % DEBUG, DINFO)
+    es = EncodingServer(debug=debug, allowNone=True)
     reactor.listenTCP(config.ENCODINGSERVER_PORT, server.Site(es))
     reactor.run()
 

Modified: branches/rel-1/freevo/src/helpers/recordserver.py
==============================================================================
--- branches/rel-1/freevo/src/helpers/recordserver.py   (original)
+++ branches/rel-1/freevo/src/helpers/recordserver.py   Mon Nov  5 01:37:20 2007
@@ -120,7 +120,15 @@
 
 class RecordServer(xmlrpc.XMLRPC):
 
-    def __init__(self):
+    def __init__(self, debug=False, allowNone=False):
+        """ Initialise the Record Server class """
+        _debug_('RecordServer.__init__(debug=%r, allowNone=%r)' % (debug, 
allowNone), 1)
+        # Twisted have changed the interface to xmlrpc.XMLRPC.__init__() in 
2.5.0
+        try:
+            xmlrpc.XMLRPC.__init__(self, allowNone)
+        except TypeError:
+            xmlrpc.XMLRPC.__init__(self)
+        self.debug = debug
         self.lock = threading.Lock()
         self.fc = FreevoChannels()
         # XXX: In the future we should have one lock per VideoGroup.
@@ -1706,7 +1714,7 @@
     secret = config.RECORDSERVER_SECRET
     _debug_('socket=%r, secret=%r' % (socket, secret))
 
-    rs = RecordServer()
+    rs = RecordServer(allowNone=True)
 
     rpc = kaa.rpc.Server(socket, secret)
     rpc.connect(rs)

Modified: branches/rel-1/freevo/src/image/imageitem.py
==============================================================================
--- branches/rel-1/freevo/src/image/imageitem.py        (original)
+++ branches/rel-1/freevo/src/image/imageitem.py        Mon Nov  5 01:37:20 2007
@@ -46,7 +46,7 @@
         """
         Default constructor for an image item
         """
-        #_debug_("__init__(self, url, parent, name=%s, duration=%s)" % (name, 
duration), 2)
+        #_debug_("imageitem.ImageItem.__init__(url, parent, name=%s, 
duration=%s)" % (name, duration), 2)
         self.type = 'image'
         self.autovars = [ ( 'rotation', 0 ) ]
         Item.__init__(self, parent)

Modified: branches/rel-1/freevo/src/plugins/cd_burn.py
==============================================================================
--- branches/rel-1/freevo/src/plugins/cd_burn.py        (original)
+++ branches/rel-1/freevo/src/plugins/cd_burn.py        Mon Nov  5 01:37:20 2007
@@ -110,7 +110,7 @@
 
 class Logger:
     def __init__(self):
-        _debug_('__init__(self)')
+        _debug_('cd_burn.Logger.__init__()')
         self.filename = '%s/%s-%s.log' % (config.FREEVO_LOGDIR, 
'burn_cd-helpers', os.getuid())
         self.file     = file(self.filename,"a")
 
@@ -121,7 +121,7 @@
 
 class BurnCDItem:
     def 
__init__(self,item,filename=None,plugin=None,menu=None,burn_mode="data_cd"):
-        
_debug_('__init__(self,item,filename=None,plugin=None,menu=None,burn_mode="data_cd")')
+        
_debug_('cd_burn.BurnCDItem.__init__(item,filename=None,plugin=None,menu=None,burn_mode="data_cd")')
         self.item          = item
         self.menuw         = menu
         self.plugin        = plugin
@@ -348,7 +348,7 @@
 #
 class main_burn_thread(threading.Thread):
     def __init__(self, token=None):
-        _debug_('__init__(self, token=None)')
+        _debug_('cd_burn.main_burn_thread.__init__(token=%r)' % (token))
         threading.Thread.__init__(self)
         self.token  = token
         self.childs = []
@@ -693,7 +693,7 @@
     """
 
     def __init__(self):
-        _debug_('__init__(self)')
+        _debug_('cd_burn.PluginInterface.__init__()')
         plugin.ItemPlugin.__init__(self)
         self.device = ''
         self.item   = None

Modified: branches/rel-1/freevo/src/plugins/idlebar/encoding.py
==============================================================================
--- branches/rel-1/freevo/src/plugins/idlebar/encoding.py       (original)
+++ branches/rel-1/freevo/src/plugins/idlebar/encoding.py       Mon Nov  5 
01:37:20 2007
@@ -58,7 +58,7 @@
     """
 
     def __init__(self):
-        _debug_('__init__(self)', 2)
+        _debug_('encoding.PluginInterface.__init__(self)', 2)
         plugin.DaemonPlugin.__init__(self)
         #IdleBarPlugin.__init__(self)
         self.poll_interval = 82 # 82*1/120th seconds (~1sec)

Modified: branches/rel-1/freevo/src/plugins/idlebar/transcode.py
==============================================================================
--- branches/rel-1/freevo/src/plugins/idlebar/transcode.py      (original)
+++ branches/rel-1/freevo/src/plugins/idlebar/transcode.py      Mon Nov  5 
01:37:20 2007
@@ -42,8 +42,8 @@
 
 
 def returnFromJelly(status, response):
-    '''Un-serialize EncodingServer responses'''
-    _debug_('returnFromJelly(status, response)', 2)
+    """Un-serialize EncodingServer responses"""
+    _debug_('returnFromJelly(status, response)', 1)
     if status:
         return (status, unjellyFromXML(response))
     else:
@@ -59,7 +59,8 @@
     """
 
     def __init__(self):
-        _debug_('__init__(self)', 2)
+        """ Initialise the transcode idlebar plug-in """
+        _debug_('transcode.PluginInterface.__init__()', 1)
         IdleBarPlugin.__init__(self)
         self.plugin_name = 'idlebar.transcode'
 
@@ -86,15 +87,13 @@
         self.leftclamp_x = 0
         self.rightclamp_x = 0
 
-
         self.poll_interval = 82 # 82*1/120th seconds (~1sec)
         self.draw_interval = self.poll_interval
         self.last_interval = self.poll_interval
         self.lastdraw  = 0
         self.lastpoll  = 0
         self.drawtime  = 0
-        server_string  = 'http://%s:%s/' % \
-                        (config.ENCODINGSERVER_IP, config.ENCODINGSERVER_PORT)
+        server_string  = 'http://%s:%s/' % (config.ENCODINGSERVER_IP, 
config.ENCODINGSERVER_PORT)
         self.server    = xmlrpclib.Server(server_string, allow_none=1)
 
         self.skin      = skin.get_singleton()
@@ -108,15 +107,20 @@
         self.font      = self.skin.get_font('small0')
         if self.font == skin.get_font('default'):
             self.font = skin.get_font('info value')
+        _debug_('transcode.PluginInterface.__init__() done.')
 
 
     def config(self):
-        return [ ('ENCODING_IDLEBAR', True, 'Show on the idlebar, otherwise on 
the main screen'), ]
+        _debug_('config()', 1)
+        return [
+            ('ENCODINGSERVER_IP', 'localhost', 'The host name or IP address of 
the encoding server'),
+            ('ENCODINGSERVER_PORT', 6666, 'The port of the encoding server'),
+        ]
 
 
     def getprogress(self):
-        _debug_('getprogress(self)', 2)
-        '''Get the progress & pass information of the job currently encoding.
+        """
+        Get the progress & pass information of the job currently encoding.
 
         This call returns False if no job is currently encoding (fx the queue 
is not active).
         When the queue is active, this call returns a tuple of 4 values:
@@ -132,7 +136,8 @@
         perc is the percentage completed of the current pass
         timerem is the estimated time remaining of the current pass, formatted 
as a
             human-readable string.
-        '''
+        """
+        _debug_('getprogress()', 1)
 
         try:
             (status, response) = self.server.getProgress()
@@ -143,27 +148,32 @@
 
 
     def listjobs(self):
-        _debug_('listjobs(self)', 2)
-        '''Get a list with all jobs in the encoding queue and their current 
state
+        """
+        Get a list with all jobs in the encoding queue and their current state
 
-        Returns a list of tuples containing all the current queued jobs. When 
the queue is
-        empty, an empty list is returned.
-        Each job in the list is a tuple containing 3 values (idnr, 
friendlyname, status)
-        These values have the same meaning as the corresponding values 
returned by the
-        getProgress call'''
+        Returns a list of tuples containing all the current queued jobs. When 
the queue
+        is empty, an empty list is returned.  Each job in the list is a tuple
+        containing 3 values (idnr, friendlyname, status) These values have the 
same
+        meaning as the corresponding values returned by the getProgress call
+        """
+        _debug_('listjobs() server=%r' % self.server, 1)
+        result = (FALSE, [])
 
         try:
             (status, response) = self.server.listJobs()
         except:
             return (False, 'EncodingClient: connection error')
-
-        return returnFromJelly(status, response)
+        result = returnFromJelly(status, response)
+        _debug_('listjobs() result=%r' % (result, ), 1)
+        return result
 
 
     def getimage(self, image, osd, cache=False):
-        '''load the image from the cache when available otherwise load the 
image
-        and save in the cache'''
-        _debug_('getimage(image=%r, osd=%r, cache=%s)' % (image, osd, cache), 
2)
+        """
+        Load the image from the cache when available otherwise load the image 
and save
+        in the cache.
+        """
+        _debug_('getimage(image=%r, osd=%r, cache=%s)' % (image, osd, cache), 
1)
         if image.find(config.ICON_DIR) == 0 and 
image.find(osd.settings.icon_dir) == -1:
             new_image = os.path.join(osd.settings.icon_dir, 
image[len(config.ICON_DIR)+1:])
             if os.path.isfile(new_image):
@@ -177,9 +187,8 @@
 
 
     def set_sprite(self):
-        _debug_('set_sprite(self)', 2)
-        '''set the sprite image name and the drawing interval
-        '''
+        """ set the sprite image name and the drawing interval """
+        _debug_('set_sprite()', 1)
         (status, jobs) = self.listjobs()
         if not status:
             self.sprite = self.notrunning
@@ -239,12 +248,12 @@
 
 
     def calculatesizes(self, osd, font):
-        '''size calcs is not necessery on every pass
+        """size calcs is not necessery on every pass
         There are some shortcuts here, the left and right clamps are the same 
with
         all sprites are the same size and the background
         return true when the progress has changed, false otherwise
-        '''
-        _debug_('calculatesizes(self, osd, font)', 2)
+        """
+        _debug_('calculatesizes(osd, font)', 1)
         if self.progress_x == None:
             background = self.getimage(self.background, osd)
             rightclamp = self.getimage(self.rightclamp, osd, True)
@@ -271,12 +280,11 @@
 
 
     def draw(self, (type, object), x, osd):
-        '''Build the image by blitting sub images on the background and draw 
the background
-        '''
+        """ Build the image by blitting sub images on the background and draw 
the background """
         _debug_('draw((type=%r, object=), x=%r, osd=)' % (type, x), 3)
         now = time.time()
         duration = now - self.drawtime
-        _debug_("draw=%.2f, interval=%s, state=%s" % (duration, 
self.draw_interval, self.state), 2)
+        _debug_("draw=%.2f, interval=%s, state=%s" % (duration, 
self.draw_interval, self.state), 1)
         self.drawtime = now
         self.lastdraw = now
 
@@ -305,12 +313,12 @@
 
 
     def poll(self):
-        '''poll function'''
+        """poll function"""
         now = time.time()
         pollduration = now - self.lastpoll
         drawduration = now - self.lastdraw
         self.lastpoll = now
-        _debug_("poll(self): poll=%.2f, draw=%.2f, interval=%s, state=%s" % \
+        _debug_("poll(): poll=%.2f, draw=%.2f, interval=%s, state=%s" % \
             (pollduration, drawduration, self.draw_interval, self.state), 2)
         if drawduration >= self.draw_interval / 100:
             if skin.active():
@@ -325,6 +333,6 @@
 
 
     def update(self):
-        _debug_('update(self)', 2)
+        _debug_('update()', 1)
         bar = plugin.getbyname('idlebar')
         if bar: bar.poll()

Modified: branches/rel-1/freevo/src/tv/plugins/manual_record.py
==============================================================================
--- branches/rel-1/freevo/src/tv/plugins/manual_record.py       (original)
+++ branches/rel-1/freevo/src/tv/plugins/manual_record.py       Mon Nov  5 
01:37:20 2007
@@ -56,7 +56,7 @@
 
 class ManualRecordItem(Item):
     def __init__(self, parent):
-        _debug_('__init__(self, parent)', 2)
+        _debug_('manual_record.ManualRecordItem.__init__(parent)', 2)
         Item.__init__(self, parent, skin_type='video')
 
         self.name = _("Manual Record")
@@ -392,7 +392,7 @@
     """
 
     def __init__(self):
-        _debug_('__init__(self)', 2)
+        _debug_('manual_record.PluginInterface.__init__()', 2)
         plugin.MainMenuPlugin.__init__(self)
 
     def items(self, parent):

Modified: branches/rel-1/freevo/src/tv/plugins/upsoon.py
==============================================================================
--- branches/rel-1/freevo/src/tv/plugins/upsoon.py      (original)
+++ branches/rel-1/freevo/src/tv/plugins/upsoon.py      Mon Nov  5 01:37:20 2007
@@ -72,13 +72,15 @@
         """
         init the upsoon plugin
         """
-        _debug_('PluginInterface.__init__()', 1)
-        plugin.DaemonPlugin.__init__(self)
+        _debug_('upsoon.PluginInterface.__init__()', 1)
+        plugin.DaemonPlugin.__init__(self, hasgui=True)
         plugin.register(self, 'upsoon')
+        self.hasgui = hasgui
         self.lock = thread.allocate_lock()
         self.timer = Timer(self.timer_handler).start(15)
         self.event = EventHandler(self.event_handler)
-        self.event.register(('VIDEO_START', 'VIDEO_END'))
+        #self.event.register(('VIDEO_START', 'VIDEO_END'))
+        self.event.register()
 
         self.recordclient = RecordClient()
 
@@ -222,7 +224,8 @@
         if (event.name == 'VIDEO_END'):
             if self.stopped:
                 # upsoon stopped the tv, now display a msgbox
-                AlertBox(text=_('%s stopped, a recording is about to start!') 
% self.stopped, height=200).show()
+                if self.hasgui:
+                    AlertBox(text=_('%s stopped, a recording is about to 
start!') % self.stopped, height=200).show()
                 self.stopped = None
         return 0
 
@@ -233,33 +236,35 @@
     function = None
     if len(sys.argv) > 1:
         function = sys.argv[1].lower()
-        rc = RecordClient()
+        server = RecordClient()
 
-    if function == "run":
+    if function == 'run':
+        #import rc as rctrl
+        #rc = rctrl.get_singleton(False)
         pi = PluginInterface()
         kaa.main()
 
-    elif function == "findnextprogram":
+    elif function == 'findnextprogram':
         def handler(result):
             print 'findnextprogram=%r' % (result)
             print result.__dict__
             raise SystemExit
-        rc.findNextProgram(handler)
+        server.findNextProgram(handler)
         kaa.main()
 
-    elif function == "isplayerrunning":
+    elif function == 'isplayerrunning':
         def handler(result):
             print 'isplayerrunning=%r' % (result)
             raise SystemExit
-        rc.isPlayerRunning(handler)
+        server.isPlayerRunning(handler)
         kaa.main()
 
     else:
         fc = FreevoChannels()
         vg=fc.getVideoGroup('K10', False)
-        print "vg=%s" % vg
-        print "dir(%s)" % dir(vg)
+        print 'vg=%s' % vg
+        print 'dir(%s)' % dir(vg)
         for it in dir(vg):
-            print "   %s:%s" % (it, eval('vg.'+it))
+            print '   %s:%s' % (it, eval('vg.'+it))
         vdev=vg.vdev
-        print "vdev=%s" % vdev
+        print 'vdev=%s' % vdev

Modified: branches/rel-1/freevo/src/video/__init__.py
==============================================================================
--- branches/rel-1/freevo/src/video/__init__.py (original)
+++ branches/rel-1/freevo/src/video/__init__.py Mon Nov  5 01:37:20 2007
@@ -241,8 +241,7 @@
             if info.type != 'video':
                 continue
             k = vfs.splitext(vfs.basename(info.files.fxd_file))[0]
-            tv_show_information[k] = (info.image, info.info, 
info.mplayer_options,
-                                       info.skin_fxd)
+            tv_show_information[k] = (info.image, info.info, 
info.mplayer_options, info.skin_fxd)
             if hasattr(info, '__fxd_rom_info__'):
                 for fo in info.__fxd_files_options__:
                     discset_information[fo['file-id']] = fo['mplayer-options']

Modified: branches/rel-1/freevo/src/video/plugins/bilingual.py
==============================================================================
--- branches/rel-1/freevo/src/video/plugins/bilingual.py        (original)
+++ branches/rel-1/freevo/src/video/plugins/bilingual.py        Mon Nov  5 
01:37:20 2007
@@ -48,7 +48,7 @@
     """
 
     def __init__(self):
-        _debug_('__init__(self)', 2)
+        _debug_('bilingual.PluginInterface.__init__(self)', 2)
         plugin.ItemPlugin.__init__(self)
         self.item = None
 

Modified: branches/rel-1/freevo/src/video/plugins/reencode-old.py
==============================================================================
--- branches/rel-1/freevo/src/video/plugins/reencode-old.py     (original)
+++ branches/rel-1/freevo/src/video/plugins/reencode-old.py     Mon Nov  5 
01:37:20 2007
@@ -50,7 +50,7 @@
     """
 
     def __init__(self):
-        _debug_('__init__(self)')
+        _debug_('reencode-old.PluginInterface.__init__(self)')
         plugin.ItemPlugin.__init__(self)
 
 

Modified: branches/rel-1/freevo/src/video/plugins/reencode.py
==============================================================================
--- branches/rel-1/freevo/src/video/plugins/reencode.py (original)
+++ branches/rel-1/freevo/src/video/plugins/reencode.py Mon Nov  5 01:37:20 2007
@@ -51,7 +51,7 @@
     """
 
     def __init__(self):
-        _debug_('__init__(self)')
+        _debug_('reencode.PluginInterface.__init__(self)')
         plugin.ItemPlugin.__init__(self)
         self.title = ''
         self.source = ''

Modified: branches/rel-1/freevo/src/video/videoitem.py
==============================================================================
--- branches/rel-1/freevo/src/video/videoitem.py        (original)
+++ branches/rel-1/freevo/src/video/videoitem.py        Mon Nov  5 01:37:20 2007
@@ -54,24 +54,9 @@
 
     def __init__(self, url, parent, info=None, parse=True):
         self.autovars = []
-
         Item.__init__(self, parent)
-
         self.type = 'video'
-        self.set_url(url, info=parse)
-
-        if info:
-            self.info.set_variables(info)
-
-        video_deinterlace = config.VIDEO_DEINTERLACE != None and 
config.VIDEO_DEINTERLACE or False
-        self['deinterlace'] = video_deinterlace
-
-        video_use_xvmc = config.VIDEO_USE_XVMC != None and 
config.VIDEO_USE_XVMC or False
-        self['xvmc'] = video_use_xvmc
-
-        video_field_dominance = config.VIDEO_FIELD_DOMINANCE != None and 
config.VIDEO_FIELD_DOMINANCE or False
-        self['field-dominance'] = video_field_dominance
-
+        
         self.variants          = []         # if this item has variants
         self.subitems          = []         # more than one file/track to play
         self.current_subitem   = None
@@ -94,18 +79,22 @@
         self.player        = None
         self.player_rating = 0
 
-        for p in plugin.getbyname(plugin.VIDEO_PLAYER, True):
-            rating = p.rate(self) * 10
-            if config.VIDEO_PREFERED_PLAYER == p.name:
-                rating += 1
-            if hasattr(self, 'force_player') and p.name == self.force_player:
-                rating += 100
-            self.possible_player.append((rating, p))
-        self.possible_player.sort(lambda l, o: -cmp(l[0], o[0]))
-        if len(self.possible_player) > 0:
-            self.player_rating, self.player = self.possible_player[0]
+        # set the url (this influences the list of possible players!)
+        self.set_url(url, info=parse)
+        if info:
+            self.info.set_variables(info)
+        
+      
+        # deinterlacing and related things
+        video_deinterlace = config.VIDEO_DEINTERLACE != None and 
config.VIDEO_DEINTERLACE or False
+        self['deinterlace'] = video_deinterlace
 
+        video_use_xvmc = config.VIDEO_USE_XVMC != None and 
config.VIDEO_USE_XVMC or False
+        self['xvmc'] = video_use_xvmc
 
+        video_field_dominance = config.VIDEO_FIELD_DOMINANCE != None and 
config.VIDEO_FIELD_DOMINANCE or False
+        self['field-dominance'] = video_field_dominance
+        
         # find image for tv show and build new title
         if config.VIDEO_SHOW_REGEXP_MATCH(self.name) and not self.network_play 
and \
                config.VIDEO_SHOW_DATA_DIR:
@@ -169,7 +158,7 @@
         """
         Sets a new url to the item. Always use this function and not set 'url'
         directly because this functions also changes other attributes, like
-        filename, mode and network_play
+        filename, mode, network_play and the list of possible players
         """
         Item.set_url(self, url, info)
         if url.startswith('dvd://') or url.startswith('vcd://'):
@@ -201,6 +190,20 @@
                 self.image = image
                 self.files.image = image
 
+        # do the player rating based on the new url
+        self.possible_player = []
+        for p in plugin.getbyname(plugin.VIDEO_PLAYER, True):
+            rating = p.rate(self) * 10
+            if config.VIDEO_PREFERED_PLAYER == p.name:
+                rating += 1
+            if hasattr(self, 'force_player') and p.name == self.force_player:
+                rating += 100
+            self.possible_player.append((rating, p))
+        self.possible_player.sort(lambda l, o: -cmp(l[0], o[0]))
+        if len(self.possible_player) > 0:
+            self.player_rating, self.player = self.possible_player[0]
+        
+
 
     def id(self):
         """
@@ -297,11 +300,9 @@
         """
         return a list of possible actions on this item.
         """
-
-
         if not self.possible_player:
             return []
-
+       
         if self.url.startswith('dvd://') and self.url[-1] == '/':
             if self.player_rating >= 20:
                 items = [ (self.play, _('Play DVD')),
@@ -319,9 +320,9 @@
                           (self.play, _('Play default track')) ]
         else:
             items = [ (self.play, _('Play')) ]
-            items.append((self.show_details, _('Full description')))
-            if len(self.possible_player) > 1:
-                items.append((self.play_alternate, _('Play with alternate 
player')))
+        items.append((self.show_details, _('Full description')))
+        if len(self.possible_player) > 1:
+            items.append((self.play_alternate, _('Play with alternate 
player')))
 
         if self.network_play:
             items.append((self.play_max_cache, _('Play with maximum cache')))
@@ -375,6 +376,7 @@
         """
         self.play(menuw=menuw, arg='-cache 65536')
 
+    
     def play_alternate(self, arg=None, menuw=None):
         """
         play and use maximum cache with mplayer
@@ -439,30 +441,19 @@
 
     def play(self, arg=None, menuw=None, alternateplayer=False):
         """
-        execute commands if defined
-        """
-        if config.VIDEO_PRE_PLAY:
-            os.system(config.VIDEO_PRE_PLAY)
-        """
         play the item.
         """
         if not self.possible_player:
-            for p in plugin.getbyname(plugin.VIDEO_PLAYER, True):
-                rating = p.rate(self) * 10
-                if config.VIDEO_PREFERED_PLAYER == p.name:
-                    rating += 1
-                if hasattr(self, 'force_player') and p.name == 
self.force_player:
-                    rating += 100
-                self.possible_player.append((rating, p))
-
-            self.possible_player.sort(lambda l, o: -cmp(l[0], o[0]))
-
+            return
+       
+        # execute commands if defined
+        if config.VIDEO_PRE_PLAY:
+            os.system(config.VIDEO_PRE_PLAY)
+        
+        # FIXME: There could be more than two players available
         if alternateplayer:
             self.possible_player.reverse()
 
-        if not self.possible_player:
-            return
-
         self.player_rating, self.player = self.possible_player[0]
         if self.parent:
             self.parent.current_item = self
@@ -638,9 +629,9 @@
             i.name            = Unicode(_('Play Title %d') % (titlenum+1))
             items.append(i)
 
+        
         moviemenu = menu.Menu(self.name, items, umount_all = 1, 
fxd_file=self.skin_fxd)
         moviemenu.item_types = 'video'
-        moviemenu.is_submenu = True
         self.menuw.pushmenu(moviemenu)
 
 

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to