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

Reply via email to