RemainingToText.py: more flexible use
authorghost <andreas.monzner@multimedia-labs.de>
Tue, 9 Dec 2008 22:23:40 +0000 (23:23 +0100)
committerghost <andreas.monzner@multimedia-labs.de>
Tue, 9 Dec 2008 22:23:40 +0000 (23:23 +0100)
lib/python/Components/Converter/RemainingToText.py

index adefe9c..4249e30 100644 (file)
@@ -2,19 +2,43 @@ from Components.Converter.Converter import Converter
 from Components.Element import cached
 
 class RemainingToText(Converter, object):
+       DEFAULT = 0
+       WITH_SECONDS = 1
+       NO_SECONDS = 2
+
        def __init__(self, type):
                Converter.__init__(self, type)
+               if type == "WithSeconds":
+                       self.type = self.WITH_SECONDS
+               elif type == "NoSeconds":
+                       self.type = self.NO_SECONDS
+               else:
+                       self.type = self.DEFAULT
 
        @cached
        def getText(self):
-               r = self.source.time
-               if r is None:
+               time = self.source.time
+               if time is None:
                        return ""
 
                (duration, remaining) = self.source.time
-               if remaining is not None:
-                       return "+%d min" % (remaining / 60)
+
+               if self.type == self.WITH_SECONDS:
+                       if remaining is not None:
+                               return "%d:%02d:%02d" % (remaining / 3600, (remaining / 60) - ((remaining / 3600) * 60), remaining % 60)
+                       else:
+                               return "%02d:%02d:%02d" % (duration / 3600, (duration / 60) - ((duration / 3600) * 60), duration % 60)
+               elif self.type == self.NO_SECONDS:
+                       if remaining is not None:
+                               return "+%d:%02d" % (remaining / 3600, (remaining / 60) - ((remaining / 3600) * 60))
+                       else:
+                               return "%02d:%02d" % (duration / 3600, (duration / 60) - ((duration / 3600) * 60))
+               elif self.type == self.DEFAULT:
+                       if remaining is not None:
+                               return "+%d min" % (remaining / 60)
+                       else:
+                               return "%d min" % (duration / 60)
                else:
-                       return "%d min" % (duration / 60)
+                       return "???"
 
        text = property(getText)