aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Components/Converter
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2006-06-15 17:34:06 +0000
committerFelix Domke <tmbinc@elitedvb.net>2006-06-15 17:34:06 +0000
commit2e874fa14264bf37f17ae9b9375e26059e7f35ec (patch)
treeceb5244659b57714fb4609914f3146630f045c4a /lib/python/Components/Converter
parente131b75fd194db84a37f2395b5ab88093e09192f (diff)
downloadenigma2-2e874fa14264bf37f17ae9b9375e26059e7f35ec.tar.gz
enigma2-2e874fa14264bf37f17ae9b9375e26059e7f35ec.zip
add new skin stuff
Diffstat (limited to 'lib/python/Components/Converter')
-rw-r--r--lib/python/Components/Converter/ClockToText.py39
-rw-r--r--lib/python/Components/Converter/Converter.py18
-rw-r--r--lib/python/Components/Converter/EventName.py29
-rw-r--r--lib/python/Components/Converter/EventTime.py72
-rw-r--r--lib/python/Components/Converter/Makefile.am5
-rw-r--r--lib/python/Components/Converter/Poll.py22
-rw-r--r--lib/python/Components/Converter/RemainingToText.py19
-rw-r--r--lib/python/Components/Converter/StaticText.py7
-rw-r--r--lib/python/Components/Converter/__init__.py0
9 files changed, 211 insertions, 0 deletions
diff --git a/lib/python/Components/Converter/ClockToText.py b/lib/python/Components/Converter/ClockToText.py
new file mode 100644
index 00000000..085ebc1a
--- /dev/null
+++ b/lib/python/Components/Converter/ClockToText.py
@@ -0,0 +1,39 @@
+from Components.Converter.Converter import Converter
+from time import localtime
+
+class ClockToText(Converter, object):
+ DEFAULT = 0
+ WITH_SECONDS = 1
+ IN_MINUTES = 2
+
+ # add: date, date as string, weekday, ...
+ # (whatever you need!)
+
+ def __init__(self, type, *args, **kwargs):
+ Converter.__init__(self)
+ if type == "WithSeconds":
+ self.type = self.WITH_SECONDS
+ elif type == "InMinutes":
+ self.type = self.IN_MINUTES
+ else:
+ self.type = self.DEFAULT
+
+ def getText(self):
+ time = self.source.time
+ if time is None:
+ return ""
+
+ # handle durations
+ if self.type == self.IN_MINUTES:
+ return "%d min" % (time / 60)
+
+ t = localtime(time)
+
+ if self.type == self.WITH_SECONDS:
+ return "%2d:%02d:%02d" % (t.tm_hour, t.tm_min, t.tm_sec)
+ elif self.type == self.DEFAULT:
+ return "%02d:%02d" % (t.tm_hour, t.tm_min)
+ else:
+ return "???"
+
+ text = property(getText)
diff --git a/lib/python/Components/Converter/Converter.py b/lib/python/Components/Converter/Converter.py
new file mode 100644
index 00000000..b75d253f
--- /dev/null
+++ b/lib/python/Components/Converter/Converter.py
@@ -0,0 +1,18 @@
+from Tools.Event import Event
+
+class Converter:
+ def __init__(self):
+ self.changed = Event(start = self.start, stop = self.stop)
+
+ def connect(self, source):
+ source.changed.listen(self.changed)
+ self.source = source
+
+ def disconnect(self):
+ self.source.changed.unlisten(self.changed)
+
+ def start(self):
+ pass
+
+ def stop(self):
+ pass
diff --git a/lib/python/Components/Converter/EventName.py b/lib/python/Components/Converter/EventName.py
new file mode 100644
index 00000000..e391b95f
--- /dev/null
+++ b/lib/python/Components/Converter/EventName.py
@@ -0,0 +1,29 @@
+from Components.Converter.Converter import Converter
+
+class EventName(Converter, object):
+ NAME = 0
+ SHORT_DESCRIPTION = 1
+ EXTENDED_DESCRIPTION = 2
+
+ def __init__(self, type, *args, **kwargs):
+ Converter.__init__(self)
+ if type == "Description":
+ self.type = self.SHORT_DESCRIPTION
+ elif type == "ExtendedDescription":
+ self.type = self.EXTENDED_DESCRIPTION
+ else:
+ self.type = self.NAME
+
+ def getText(self):
+ event = self.source.event
+ if event is None:
+ return ""
+
+ if self.type == self.NAME:
+ return event.getEventName()
+ elif self.type == self.SHORT_DESCRIPTION:
+ return event.getShortDescription()
+ elif self.type == self.EXTENDED_DESCRIPTION:
+ return event.getExtendedDescription()
+
+ text = property(getText)
diff --git a/lib/python/Components/Converter/EventTime.py b/lib/python/Components/Converter/EventTime.py
new file mode 100644
index 00000000..3c312a69
--- /dev/null
+++ b/lib/python/Components/Converter/EventTime.py
@@ -0,0 +1,72 @@
+from Converter import Converter
+from Poll import Poll
+from time import time
+
+class EventTime(Poll, Converter, object):
+ STARTTIME = 0
+ ENDTIME = 1
+ REMAINING = 2
+ PROGRESS = 3
+ DURATION = 4
+
+ def __init__(self, type, *args, **kwargs):
+ Converter.__init__(self)
+ Poll.__init__(self)
+ if type == "EndTime":
+ self.type = self.ENDTIME
+ elif type == "Remaining":
+ self.type = self.REMAINING
+ self.poll_interval = 60*1000
+ self.poll_enabled = True
+ elif type == "StartTime":
+ self.type = self.STARTTIME
+ elif type == "Duration":
+ self.type = self.DURATION
+ elif type == "Progress":
+ self.type = self.PROGRESS
+ self.poll_interval = 30*1000
+ self.poll_enabled = True
+ else:
+ raise str("'%s' is not <StartTime|EndTime|Remaining|Duration> for EventTime converter" % type)
+
+ def getTime(self):
+ assert self.type != self.PROGRESS
+
+ event = self.source.event
+ if event is None:
+ return None
+
+ if self.type == self.STARTTIME:
+ return event.getBeginTime()
+ elif self.type == self.ENDTIME:
+ return event.getBeginTime() + event.getDuration()
+ elif self.type == self.DURATION:
+ return event.getDuration()
+ elif self.type == self.REMAINING:
+ now = int(time())
+ start_time = event.getBeginTime()
+ duration = event.getDuration()
+ end_time = start_time + duration
+ if start_time <= now <= end_time:
+ return (duration, end_time - now)
+ else:
+ return (duration, None)
+
+ def getValue(self):
+ assert self.type == self.PROGRESS
+
+ event = self.source.event
+ if event is None:
+ return None
+
+ now = int(time())
+ start_time = event.getBeginTime()
+ duration = event.getDuration()
+ if start_time <= now <= (start_time + duration) and duration > 0:
+ return (now - start_time) * 1000 / duration
+ else:
+ return None
+
+ time = property(getTime)
+ value = property(getValue)
+ range = 1000
diff --git a/lib/python/Components/Converter/Makefile.am b/lib/python/Components/Converter/Makefile.am
new file mode 100644
index 00000000..c2e55eef
--- /dev/null
+++ b/lib/python/Components/Converter/Makefile.am
@@ -0,0 +1,5 @@
+installdir = $(LIBDIR)/enigma2/python/Components/Converter
+
+install_PYTHON = \
+ __init__.py ClockToText.py Converter.py EventName.py StaticText.py EventTime.py \
+ Poll.py RemainingToText.py
diff --git a/lib/python/Components/Converter/Poll.py b/lib/python/Components/Converter/Poll.py
new file mode 100644
index 00000000..3ba5e87f
--- /dev/null
+++ b/lib/python/Components/Converter/Poll.py
@@ -0,0 +1,22 @@
+from enigma import eTimer
+
+class Poll(object):
+ def __init__(self):
+ self.__poll_timer = eTimer()
+ self.__poll_timer.timeout.get().append(self.changed)
+ self.__interval = 1000
+ self.__enabled = False
+
+ def __setInterval(self, interval):
+ self.__interval = interval
+ if self.__enabled:
+ self.__poll_timer.start(self.__interval)
+ else:
+ self.__poll_timer.stop()
+
+ def __setEnable(self, enabled):
+ self.__enabled = enabled
+ self.poll_interval = self.__interval
+
+ poll_interval = property(lambda self: self.__interval, __setInterval)
+ poll_enabled = property(lambda self: self.__enabled, __setEnable)
diff --git a/lib/python/Components/Converter/RemainingToText.py b/lib/python/Components/Converter/RemainingToText.py
new file mode 100644
index 00000000..534fef18
--- /dev/null
+++ b/lib/python/Components/Converter/RemainingToText.py
@@ -0,0 +1,19 @@
+from Components.Converter.Converter import Converter
+
+class RemainingToText(Converter, object):
+ def __init__(self, type, *args, **kwargs):
+ Converter.__init__(self)
+
+ def getText(self):
+
+ r = self.source.time
+ if r is None:
+ return ""
+
+ (duration, remaining) = self.source.time
+ if remaining is not None:
+ return "+%d min" % (remaining / 60)
+ else:
+ return "%d min" % (duration / 60)
+
+ text = property(getText)
diff --git a/lib/python/Components/Converter/StaticText.py b/lib/python/Components/Converter/StaticText.py
new file mode 100644
index 00000000..12eb6ad5
--- /dev/null
+++ b/lib/python/Components/Converter/StaticText.py
@@ -0,0 +1,7 @@
+from Components.Converter.Converter import Converter
+
+class StaticText(Converter, object):
+ def __init__(self, text, *args, **kwargs):
+ Converter.__init__(self)
+ self.text = str(text)
+
diff --git a/lib/python/Components/Converter/__init__.py b/lib/python/Components/Converter/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/lib/python/Components/Converter/__init__.py