finaly make the ChannelNumber renderer realy functional \nAdd MovieDirSize renderer
authorVali Jordan <vali@users.schwerkraft.elitedvb.net>
Tue, 13 Apr 2010 08:19:43 +0000 (08:19 +0000)
committerVali Jordan <vali@users.schwerkraft.elitedvb.net>
Tue, 13 Apr 2010 08:19:43 +0000 (08:19 +0000)
vxdcontrol/src/comp/vRendChNumber.py
vxdcontrol/src/comp/vRendMovieDirSize.py [new file with mode: 0644]
vxdcontrol/src/data/main.xml

index 785c732..70a9960 100644 (file)
@@ -1,38 +1,47 @@
-from Components.VariableText import VariableText\r
-from enigma import eLabel, iServiceInformation, eServiceReference, eServiceCenter\r
-from Renderer import Renderer\r
-\r
-\r
-class vRendChNumber(Renderer, VariableText):\r
-       def __init__(self):\r
-               Renderer.__init__(self)\r
-               VariableText.__init__(self)\r
-               self.list = []\r
-               self.getList()\r
-       GUI_WIDGET = eLabel\r
-\r
-       def changed(self, what):\r
-               service = self.source.service\r
-               info = service and service.info()\r
-               if info is None:\r
-                       self.text = ""\r
-                       return\r
-               name = info.getName().replace('\xc2\x86', '').replace('\xc2\x87', '')\r
-               if name in self.list:\r
-                       for idx in range(1, len(self.list)+1):\r
-                               if name == self.list[idx-1]:\r
-                                       self.text = str(idx)\r
-                                       break\r
-               else:\r
-                       self.text = '---'\r
-\r
-       def getList(self):\r
-               serviceHandler = eServiceCenter.getInstance()\r
-               services = serviceHandler.list(eServiceReference('1:7:1:0:0:0:0:0:0:0:(type == 1) || (type == 17) || (type == 195) || (type == 25) FROM BOUQUET "bouquets.tv" ORDER BY bouquet'))\r
-               bouquets = services and services.getContent("SN", True)\r
-               for bouquet in bouquets:\r
-                       services = serviceHandler.list(eServiceReference(bouquet[0]))\r
-                       channels = services and services.getContent("SN", True)\r
-                       for channel in channels:\r
-                               if not channel[0].startswith("1:64:"):\r
-                                       self.list.append(channel[1].replace('\xc2\x86', '').replace('\xc2\x87', ''))\r
+#######################################################################
+#
+#
+#    Channel Number Renderer for Dreambox/Enigma-2
+#    Coded by Vali (c)2010
+#    Support: www.dreambox-tools.info
+#
+#
+#  This plugin is licensed under the Creative Commons 
+#  Attribution-NonCommercial-ShareAlike 3.0 Unported License.
+#  To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/
+#  or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
+#
+#  Alternatively, this plugin may be distributed and executed on hardware which
+#  is licensed by Dream Multimedia GmbH.
+#
+#
+#  This plugin is NOT free software. It is open source, you are allowed to
+#  modify it (if you keep the license), but it may not be commercially 
+#  distributed other than under the conditions noted above.
+#
+#
+#######################################################################
+
+from Components.VariableText import VariableText
+from enigma import eLabel
+from Renderer import Renderer
+from Screens.InfoBar import InfoBar
+
+MYCHANSEL = InfoBar.instance.servicelist
+
+class vRendChNumber(Renderer, VariableText):
+       def __init__(self):
+               Renderer.__init__(self)
+               VariableText.__init__(self)
+       GUI_WIDGET = eLabel
+       
+       def changed(self, what):
+               service = self.source.service
+               info = service and service.info()
+               if info is None:
+                       self.text = " "
+                       return
+               chx = MYCHANSEL.servicelist.getCurrentIndex() + 1
+               broot = MYCHANSEL.servicelist.getRoot()
+               rx = MYCHANSEL.getBouquetNumOffset(broot)
+               self.text = str(chx + rx)
\ No newline at end of file
diff --git a/vxdcontrol/src/comp/vRendMovieDirSize.py b/vxdcontrol/src/comp/vRendMovieDirSize.py
new file mode 100644 (file)
index 0000000..2d24a1b
--- /dev/null
@@ -0,0 +1,32 @@
+from Components.VariableText import VariableText
+from Components.config import config
+from enigma import eLabel
+from Renderer import Renderer
+from os import path, statvfs
+
+
+
+class vRendMovieDirSize(Renderer, VariableText):
+       def __init__(self):
+               Renderer.__init__(self)
+               VariableText.__init__(self)
+       GUI_WIDGET = eLabel
+
+       def changed(self, what):
+               if not self.suspended:
+                       try:
+                               if path.exists(config.movielist.last_videodir.value):
+                                       stat = statvfs(config.movielist.last_videodir.value)
+                                       free = (stat.f_bavail if stat.f_bavail!=0 else stat.f_bfree) * stat.f_bsize / 1048576
+                                       if free >= 10240:
+                                               fdspace = "%d GB on " %(free/1024)
+                                               self.text = fdspace + _(config.movielist.last_videodir.value)
+                                       else:
+                                               fdspace = "%d MB on " %(free)
+                                               self.text = fdspace + _(config.movielist.last_videodir.value)
+                               else:
+                                       self.text = '---'
+                       except:
+                               self.text = 'ERR'
+
+
index 697c4c2..030111f 100644 (file)
@@ -718,7 +718,7 @@ self.instance.move(ePoint((1024-wsizex)/2, (576-wsizey)/2))
                <widget font="Regular;17" position="60,445" render="Label" size="904,82" source="Service" zPosition="1">
                        <convert type="EventName">ExtendedDescription</convert>
                </widget>
-               <widget name="freeDiskSpace" foregroundColor="secondFG" position="620,52" size="355,40" font="Regular;17" valign="center" transparent="1" zPosition="4"/>
+               <widget font="Regular;17" foregroundColor="secondFG" position="620,52" render="vRendMovieDirSize" size="355,40" source="global.CurrentTime" transparent="1" valign="center" zPosition="4"/>
                <eLabel backgroundColor="darkgrey" position="50,415" size="924,2" zPosition="5"/>
                <widget name="DescriptionBorder" position="0,0" size="0,0"/>
        </screen>