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