Author: dmeyer
Date: Sun Apr 15 09:34:35 2007
New Revision: 9454
Modified:
trunk/ui/src/audio/audioitem.py
trunk/ui/src/audio/player.py
trunk/ui/src/menu/mediaitem.py
trunk/ui/src/video/player.py
trunk/ui/src/video/videoitem.py
Log:
remove more duplicate or unneeded code
Modified: trunk/ui/src/audio/audioitem.py
==============================================================================
--- trunk/ui/src/audio/audioitem.py (original)
+++ trunk/ui/src/audio/audioitem.py Sun Apr 15 09:34:35 2007
@@ -54,17 +54,11 @@
"""
This is the common class to get information about audiofiles.
"""
+ type = 'audio'
+
def __init__(self, url, parent):
- MediaItem.__init__(self, parent, type='audio')
+ MediaItem.__init__(self, parent)
self.set_url(url)
- self.start = 0
- self.elapsed = 0
- self.remain = 0
- self.pause = 0
- try:
- self.length = int(self.info['length'])
- except:
- self.length = 0
def sort(self, mode='name'):
@@ -91,24 +85,6 @@
self.network_play = False
- def __getitem__(self, key):
- """
- return the specific attribute as string or an empty string
- """
- if key == 'length':
- if self.length:
- # maybe the length was wrong
- if self.length < self.elapsed:
- self.length = self.elapsed
- return '%d:%02d' % (int(self.length / 60), \
- int(self.length % 60))
-
- if key == 'elapsed':
- return '%d:%02d' % (int(self.elapsed / 60), int(self.elapsed % 60))
-
- return MediaItem.__getitem__(self, key)
-
-
def actions(self):
"""
return a list of possible actions on this item
Modified: trunk/ui/src/audio/player.py
==============================================================================
--- trunk/ui/src/audio/player.py (original)
+++ trunk/ui/src/audio/player.py Sun Apr 15 09:34:35 2007
@@ -98,11 +98,6 @@
if self.playlist:
self.playlist.select(self.item)
- # Calculate some new values
- self.item.remain = 0
- if self.item.length:
- self.item.remain = self.item.length - self.item.elapsed
-
# Set the current item to the gui engine
self.engine.set_item(self.item)
self.status = STATUS_RUNNING
@@ -144,9 +139,6 @@
Callback for elapsed time changes.
"""
self.item.elapsed = round(self.player.get_position())
- self.item.remain = 0
- if self.item.length:
- self.item.remain = self.item.length - self.item.elapsed
self.engine.update()
Modified: trunk/ui/src/menu/mediaitem.py
==============================================================================
--- trunk/ui/src/menu/mediaitem.py (original)
+++ trunk/ui/src/menu/mediaitem.py Sun Apr 15 09:34:35 2007
@@ -61,7 +61,8 @@
self.url = 'null://'
self.filename = None
self.fxdinfo = {}
-
+ self.elapsed = 0
+
def set_url(self, url):
"""
@@ -116,61 +117,49 @@
self.name = str_to_unicode(self.url)
+ def format_time(self, time, hours=False):
+ """
+ Format time string
+ """
+ if int(time / 3600) or hours:
+ return '%d:%02d:%02d' % ( time / 3600, (time % 3600) / 60, time %
60)
+ return '%02d:%02d' % (time / 60, time % 60)
+
+
def __getitem__(self, attr):
"""
return the specific attribute
"""
if attr == 'length':
try:
- length = int(self.info.get('length'))
+ return self.format_time(self.info.get('length'))
except ValueError:
- return self.info.get('length')
- except:
- try:
- length = int(self.length)
- except:
- return ''
- if length == 0:
return ''
- if length / 3600:
- return '%d:%02d:%02d' % ( length / 3600, (length % 3600) / 60,
- length % 60)
- else:
- return '%d:%02d' % (length / 60, length % 60)
-
if attr == 'length:min':
try:
- length = int(self.info.get('length'))
+ return '%d min' % (int(self.info.get('length')) / 60)
except ValueError:
- return self.info.get('length')
- except:
- try:
- length = int(self.length)
- except:
- return ''
- if length == 0:
return ''
- return '%d min' % (length / 60)
+ if attr == 'elapsed':
+ # FIXME: handle elapsed > length
+ return self.format_time(self.elapsed)
if attr == 'elapsed:percent':
if not hasattr(self, 'elapsed'):
return 0
-
try:
length = int(self.info.get('length'))
except ValueError:
- try:
- length = int(self.length)
- except:
- return 0
+ return 0
if not length:
return 0
- return 100 * self.elapsed / length
-
+ return min(100 * self.elapsed / length, 100)
if attr in self.fxdinfo:
+ # FIXME: remove this variable and try to make it work using tmp
+ # variables in beacon (see video/fxdhandler.py)
return self.fxdinfo.get(attr)
return Item.__getitem__(self, attr)
Modified: trunk/ui/src/video/player.py
==============================================================================
--- trunk/ui/src/video/player.py (original)
+++ trunk/ui/src/video/player.py Sun Apr 15 09:34:35 2007
@@ -150,6 +150,9 @@
self.set_eventmap('dvd')
else:
self.set_eventmap('video')
+ # FIXME: if item does not start at position 0 the start time
+ # must be taken into consideration for elapsed. This happens for
+ # TS files from DVB sources.
self.item.elapsed = round(self.player.get_position())
Modified: trunk/ui/src/video/videoitem.py
==============================================================================
--- trunk/ui/src/video/videoitem.py (original)
+++ trunk/ui/src/video/videoitem.py Sun Apr 15 09:34:35 2007
@@ -66,15 +66,16 @@
VIDEO_SHOW_REGEXP_SPLIT = re.compile("[\.\- ]*" + regexp + "[\.\- ]*").split
class VideoItem(MediaItem):
+ type = 'video'
+
def __init__(self, url, parent):
- MediaItem.__init__(self, parent, type='video')
+ MediaItem.__init__(self, parent)
self.subtitle_file = {} # text subtitles
self.audio_file = {} # audio dubbing
self.selected_subtitle = None
self.selected_audio = None
- self.elapsed = 0
# set url and parse the name
self.set_url(url)
@@ -171,18 +172,6 @@
aspect = str(self.info['aspect'])
return aspect[:aspect.find(' ')].replace('/', ':')
- if key == 'elapsed':
- elapsed = self.elapsed
- if self.info['start']:
- # FIXME: overflow
- elapsed = elapsed - self.info['start']
- if elapsed / 3600:
- return '%d:%02d:%02d' % ( elapsed / 3600,
- (elapsed % 3600) / 60,
- elapsed % 60)
- else:
- return '%d:%02d' % (int(elapsed / 60), int(elapsed % 60))
-
return MediaItem.__getitem__(self, key)
@@ -235,6 +224,7 @@
Play the item.
"""
# call the player to play the item
+ self.elapsed = 0
videoplayer.play(self, **kwargs)
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog