Better time area for primetime.
authorVali Jordan <vali@users.schwerkraft.elitedvb.net>
Fri, 18 Jun 2010 08:20:07 +0000 (08:20 +0000)
committerVali Jordan <vali@users.schwerkraft.elitedvb.net>
Fri, 18 Jun 2010 08:20:07 +0000 (08:20 +0000)
merlinepg/src/Makefile.am
merlinepg/src/ShowMe.py [new file with mode: 0644]
merlinepg/src/help.jpg [new file with mode: 0644]
merlinepg/src/help.png [deleted file]
merlinepg/src/plugin.py

index 2662f5d..3466442 100755 (executable)
@@ -2,4 +2,4 @@ installdir = /usr/lib/enigma2/python/Plugins/Extensions/Merlin_PG
 
 install_PYTHON = *.py
 
-install_DATA = maintainer.info *.png
+install_DATA = maintainer.info *.png *.jpg
diff --git a/merlinepg/src/ShowMe.py b/merlinepg/src/ShowMe.py
new file mode 100644 (file)
index 0000000..4b6b79c
--- /dev/null
@@ -0,0 +1,76 @@
+#######################################################################\r
+#\r
+#    ShowMe-Tool for Dreambox-Enigma2\r
+#    Coded by Vali (c)2010\r
+#    Support: www.dreambox-tools.info\r
+#\r
+#\r
+#  This plugin is licensed under the Creative Commons \r
+#  Attribution-NonCommercial-ShareAlike 3.0 Unported License.\r
+#  To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/\r
+#  or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.\r
+#\r
+#  Alternatively, this plugin may be distributed and executed on hardware which\r
+#  is licensed by Dream Multimedia GmbH.\r
+#\r
+#\r
+#  This plugin is NOT free software. It is open source, you are allowed to\r
+#  modify it (if you keep the license), but it may not be commercially \r
+#  distributed other than under the conditions noted above.\r
+#\r
+#\r
+#######################################################################\r
+\r
+\r
+\r
+from Screens.Screen import Screen\r
+from Components.ActionMap import ActionMap\r
+from Components.AVSwitch import AVSwitch\r
+from Components.Pixmap import Pixmap\r
+from enigma import ePicLoad, getDesktop\r
+\r
+\r
+\r
+class ShowMe(Screen):\r
+       if (getDesktop(0).size().width()) == 1280:\r
+               skin="""\r
+                       <screen flags="wfNoBorder" position="0,0" size="1280,720" title="Show..." backgroundColor="#ffffffff">\r
+                               <widget name="Picture" position="0,0" size="1280,720" zPosition="1"/>\r
+                       </screen>"""\r
+       elif (getDesktop(0).size().width()) == 1024:\r
+               skin="""\r
+                       <screen flags="wfNoBorder" position="0,0" size="1024,576" title="Show..." backgroundColor="#ffffffff">\r
+                               <widget name="Picture" position="0,0" size="1024,576" zPosition="1"/>\r
+                       </screen>"""\r
+       else:\r
+               skin="""\r
+                       <screen flags="wfNoBorder" position="0,0" size="720,576" title="Show..." backgroundColor="#ffffffff">\r
+                               <widget name="Picture" position="0,0" size="720,576" zPosition="1"/>\r
+                       </screen>"""\r
+\r
+       def __init__(self, session, whatPic = None):\r
+               self.skin = ShowMe.skin\r
+               Screen.__init__(self, session)\r
+               self.whatPic = whatPic\r
+               self.EXscale = (AVSwitch().getFramebufferScale())\r
+               self.EXpicload = ePicLoad()\r
+               self["Picture"] = Pixmap()\r
+               self["actions"] = ActionMap(["WizardActions"],\r
+               {\r
+                       "ok": self.close,\r
+                       "back": self.close\r
+               }, -1)\r
+               self.EXpicload.PictureData.get().append(self.DecodeAction)\r
+               self.onLayoutFinish.append(self.Show_Picture)\r
+\r
+       def Show_Picture(self):\r
+               if self.whatPic is not None:\r
+                       self.EXpicload.setPara([self["Picture"].instance.size().width(), self["Picture"].instance.size().height(), self.EXscale[0], self.EXscale[1], 0, 1, "#121214"])\r
+                       self.EXpicload.startDecode(self.whatPic)\r
+\r
+       def DecodeAction(self, pictureInfo=" "):\r
+               if self.whatPic is not None:\r
+                       ptr = self.EXpicload.getData()\r
+                       self["Picture"].instance.setPixmap(ptr)\r
+\r
+\r
diff --git a/merlinepg/src/help.jpg b/merlinepg/src/help.jpg
new file mode 100644 (file)
index 0000000..d63ad59
Binary files /dev/null and b/merlinepg/src/help.jpg differ
diff --git a/merlinepg/src/help.png b/merlinepg/src/help.png
deleted file mode 100644 (file)
index b9b8ba0..0000000
Binary files a/merlinepg/src/help.png and /dev/null differ
index 05e7386..ad24e9d 100644 (file)
@@ -40,6 +40,7 @@ from Tools.LoadPixmap import LoadPixmap
 from enigma import eServiceReference, eServiceCenter, getDesktop, eTimer, gFont, eListboxPythonMultiContent, RT_HALIGN_LEFT, RT_WRAP
 from RecordTimer import RecordTimerEntry, parseEvent, AFTEREVENT
 from ServiceReference import ServiceReference
+from ShowMe import ShowMe
 from time import localtime
 
 
@@ -48,6 +49,8 @@ config.plugins.MerlinPG = ConfigSubsection()
 config.plugins.MerlinPG.Columns = ConfigYesNo(default=True)
 config.plugins.MerlinPG.StartFirst = ConfigYesNo(default=False)
 config.plugins.MerlinPG.Primetime  = ConfigInteger(default=20, limits=(0, 23))
+config.plugins.MerlinPG.PTlow  = ConfigInteger(default=10, limits=(0, 59))
+config.plugins.MerlinPG.PThi  = ConfigInteger(default=20, limits=(0, 59))
 
 
 
@@ -68,21 +71,24 @@ def startMerlinPG(session, servicelist, **kwargs):
 
 class MerlinPGsetup(ConfigListScreen, Screen):
        skin = """
-       <screen position="center,center" size="500,400" title="Merlin Programm Guide">
-               <widget name="config" position="10,5" size="480,90" scrollbarMode="showOnDemand" />
-               <ePixmap pixmap="/usr/lib/enigma2/python/Plugins/Extensions/Merlin_PG/help.png" position="0,100" size="500,300"/>
-       </screen>"""
+               <screen position="center,center" size="500,300" title="Merlin Programm Guide">
+                       <widget name="config" position="10,10" size="480,280" scrollbarMode="showOnDemand" />
+               </screen>"""
 
        def __init__(self, session):
                Screen.__init__(self, session)
                clist = []
                clist.append(getConfigListEntry(_("Show EPG in columns:"), config.plugins.MerlinPG.Columns))
                clist.append(getConfigListEntry(_("Start allways on channel 1:"), config.plugins.MerlinPG.StartFirst))
-               clist.append(getConfigListEntry(_("Primetime:"), config.plugins.MerlinPG.Primetime))
+               clist.append(getConfigListEntry(_("Primetime (h):"), config.plugins.MerlinPG.Primetime))
+               clist.append(getConfigListEntry(_("Primetime from (m):"), config.plugins.MerlinPG.PTlow))
+               clist.append(getConfigListEntry(_("Primetime to (m):"), config.plugins.MerlinPG.PThi))
                ConfigListScreen.__init__(self, clist)
                self["actions"] = ActionMap(["OkCancelActions"], {"ok": self.set, "cancel": self.exit}, -2)
 
        def set(self):
+               if not config.plugins.MerlinPG.PThi.value > config.plugins.MerlinPG.PTlow.value:
+                       return
                for x in self["config"].list:
                        x[1].save()
                self.close()
@@ -117,7 +123,7 @@ class MerlinEPGList(EPGList):
                r3=self.descr_rect
                t = localtime(beginTime)
                self.evCnt = self.evCnt + 1
-               if t[3] == config.plugins.MerlinPG.Primetime.value:
+               if (t[3]==config.plugins.MerlinPG.Primetime.value) and (t[4]>config.plugins.MerlinPG.PTlow.value) and (t[4]<config.plugins.MerlinPG.PThi.value):
                        res = [
                                None,
                                (eListboxPythonMultiContent.TYPE_TEXT, r1.left(), r1.top(), r1.width(), r1.height(), 0, RT_HALIGN_LEFT, "  _________________"),
@@ -144,14 +150,13 @@ class MerlinEPGList(EPGList):
                if tmp is None:
                        return ( None )
                bt = localtime(tmp[2])
-               return ( bt[3] )
+               return ( bt[3], bt[4] )
 
        def foudPrimetime(self):
-               #self.instance.moveSelection(self.instance.moveTop)
                for OneLine in range(0,self.evCnt):
-                       evBgTime = int(self.getBgTime())
+                       evBgTime, evBgMin = self.getBgTime()
                        if evBgTime is not None:
-                               if evBgTime == config.plugins.MerlinPG.Primetime.value:
+                               if (evBgTime==config.plugins.MerlinPG.Primetime.value) and (evBgMin>config.plugins.MerlinPG.PTlow.value) and (evBgMin<config.plugins.MerlinPG.PThi.value):
                                        break
                                self.moveDown()
                        else:
@@ -180,8 +185,8 @@ class Merlin_PGII(Screen):
                        <widget itemHeight="70" name="epg_list3" position="522,80" scrollbarMode="showOnDemand" size="225,560" transparent="1" zPosition="4"/>
                        <widget itemHeight="70" name="epg_list4" position="753,80" scrollbarMode="showOnDemand" size="225,560" transparent="1" zPosition="4"/>
                        <widget itemHeight="70" name="epg_list5" position="984,80" scrollbarMode="showOnDemand" size="225,560" transparent="1" zPosition="4"/>
-                       <ePixmap pixmap="/usr/lib/enigma2/python/Plugins/Extensions/Merlin_PG/buttons.png" position="60,655" size="400,24"/>
-                       <widget backgroundColor="background" font="Regular;18" foregroundColor="#ffc000" position="470,655" render="Label" size="200,24" source="global.CurrentTime" transparent="1" valign="center" zPosition="3">     
+                       <ePixmap pixmap="/usr/lib/enigma2/python/Plugins/Extensions/Merlin_PG/buttons.png" position="60,655" size="430,24"/>
+                       <widget backgroundColor="background" font="Regular;18" foregroundColor="#ffc000" position="500,655" render="Label" size="200,24" source="global.CurrentTime" transparent="1" valign="center" zPosition="3">     
                                <convert type="ClockToText">Format:%H:%M  %a %d. %b</convert>
                        </widget>
                </screen>"""
@@ -201,8 +206,8 @@ class Merlin_PGII(Screen):
                        <widget itemHeight="70" name="epg_list2" position="281,80" scrollbarMode="showOnDemand" size="225,420" transparent="1" zPosition="4"/>
                        <widget itemHeight="70" name="epg_list3" position="512,80" scrollbarMode="showOnDemand" size="225,420" transparent="1" zPosition="4"/>
                        <widget itemHeight="70" name="epg_list4" position="743,80" scrollbarMode="showOnDemand" size="225,420" transparent="1" zPosition="4"/>
-                       <ePixmap pixmap="/usr/lib/enigma2/python/Plugins/Extensions/Merlin_PG/buttons.png" position="50,518" size="400,24"/>
-                       <widget backgroundColor="background" font="Regular;18" foregroundColor="#ffc000" position="460,518" render="Label" size="200,24" source="global.CurrentTime" transparent="1" valign="center" zPosition="3">     
+                       <ePixmap pixmap="/usr/lib/enigma2/python/Plugins/Extensions/Merlin_PG/buttons.png" position="50,518" size="430,24"/>
+                       <widget backgroundColor="background" font="Regular;18" foregroundColor="#ffc000" position="490,518" render="Label" size="200,24" source="global.CurrentTime" transparent="1" valign="center" zPosition="3">     
                                <convert type="ClockToText">Format:%H:%M  %a %d. %b</convert>
                        </widget>
                </screen>"""
@@ -222,8 +227,8 @@ class Merlin_PGII(Screen):
                        <widget itemHeight="70" name="epg_list2" position="205,90" scrollbarMode="showOnDemand" size="155,420" transparent="1" zPosition="4"/>
                        <widget itemHeight="70" name="epg_list3" position="360,90" scrollbarMode="showOnDemand" size="155,420" transparent="1" zPosition="4"/>
                        <widget itemHeight="70" name="epg_list4" position="515,90" scrollbarMode="showOnDemand" size="155,420" transparent="1" zPosition="4"/>
-                       <ePixmap pixmap="/usr/lib/enigma2/python/Plugins/Extensions/Merlin_PG/buttons.png" position="50,518" size="400,24"/>
-                       <widget backgroundColor="background" font="Regular;18" foregroundColor="#ffc000" position="460,518" render="Label" size="200,24" source="global.CurrentTime" transparent="1" valign="center" zPosition="3">     
+                       <ePixmap pixmap="/usr/lib/enigma2/python/Plugins/Extensions/Merlin_PG/buttons.png" position="50,518" size="430,24"/>
+                       <widget backgroundColor="background" font="Regular;18" foregroundColor="#ffc000" position="490,518" render="Label" size="200,24" source="global.CurrentTime" transparent="1" valign="center" zPosition="3">     
                                <convert type="ClockToText">Format:%H:%M  %a %d. %b</convert>
                        </widget>
                </screen>"""
@@ -259,7 +264,7 @@ class Merlin_PGII(Screen):
                self["epg_list2"] = MerlinEPGList(type = EPG_TYPE_SINGLE, selChangedCB = self.onSelectionChanged, timer = session.nav.RecordTimer)
                self["epg_list3"] = MerlinEPGList(type = EPG_TYPE_SINGLE, selChangedCB = self.onSelectionChanged, timer = session.nav.RecordTimer)
                self["epg_list4"] = MerlinEPGList(type = EPG_TYPE_SINGLE, selChangedCB = self.onSelectionChanged, timer = session.nav.RecordTimer)
-               self["actions"] = ActionMap(["OkCancelActions", "EPGSelectActions", "DirectionActions", "ColorActions", "MenuActions", "NumberActions"], {
+               self["actions"] = ActionMap(["OkCancelActions", "EPGSelectActions", "DirectionActions", "ColorActions", "MenuActions", "NumberActions", "HelpActions"], {
                                                "ok": self.showEventInfo, 
                                                "cancel": self.close,
                                                "nextBouquet": self.AllUp,
@@ -280,6 +285,7 @@ class Merlin_PGII(Screen):
                                                "blue": self.ZapForRefresh,
                                                "yellow": self.go2Primetime,
                                                "menu": self.menuClicked,
+                                               "displayHelp": self.myhelp,
                                                "0": self.go2now,
                                                "1": self.go2first,
                                                "7": self.findPrvBqt,
@@ -544,6 +550,9 @@ class Merlin_PGII(Screen):
                        for i in range(0,(self.Fields*3)):
                                self["epg_list"+str(xFL)].foudPrimetime()
 
+       def myhelp(self):
+               self.session.open(ShowMe, "/usr/lib/enigma2/python/Plugins/Extensions/Merlin_PG/help.jpg")
+
 
 
 class Merlin_PGd(Screen):
@@ -614,7 +623,7 @@ class Merlin_PGd(Screen):
                self["currCh"] = Label(_("Channel"))
                self["prg_list"] = MenuList(self.getChannels())
                self["epg_list"] = EPGList(type = EPG_TYPE_SINGLE, selChangedCB = self.onSelectionChanged, timer = session.nav.RecordTimer)
-               self["actions"] = ActionMap(["OkCancelActions", "EPGSelectActions", "ColorActions", "MenuActions"], {
+               self["actions"] = ActionMap(["OkCancelActions", "EPGSelectActions", "ColorActions", "MenuActions", "HelpActions"], {
                                                                        "ok": self.ok, 
                                                                        "cancel": self.close,
                                                                        "nextBouquet": self.prgDown,
@@ -626,7 +635,8 @@ class Merlin_PGd(Screen):
                                                                        "blue": self.ZapForRefresh,
                                                                        "yellow": self.go2now,
                                                                        "info": self.ok,
-                                                                       "menu": self.menuClicked
+                                                                       "menu": self.menuClicked,
+                                                                       "displayHelp": self.myhelp
                                                                        },-2)
                self.onLayoutFinish.append(self.onLayoutReady)
 
@@ -759,6 +769,9 @@ class Merlin_PGd(Screen):
        def go2now(self):
                self["epg_list"].instance.moveSelection(self["epg_list"].instance.moveTop)
 
+       def myhelp(self):
+               self.session.open(ShowMe, "/usr/lib/enigma2/python/Plugins/Extensions/Merlin_PG/help.jpg")
+