allow setting framebuffer resolution from skin
authorFelix Domke <tmbinc@elitedvb.net>
Tue, 13 Nov 2007 12:43:16 +0000 (12:43 +0000)
committerFelix Domke <tmbinc@elitedvb.net>
Tue, 13 Nov 2007 12:43:16 +0000 (12:43 +0000)
data/skin.xml
skin.py

index 8e6445f..dbfe25e 100644 (file)
@@ -1,5 +1,8 @@
 <skin>
        <!-- Screwed Stone II skin (skin.xml) /Nemesis -->
+       <output id="0">
+               <resolution xres="720" yres="576" bpp="32" />
+       </output>
        <!-- Colors (#AARRGGBB) -->
        <colors>
                <color name="white"     value="#ffffff" />
@@ -16,7 +19,7 @@
                <color name="background" value="#25062748" />
                <color name="foreground" value="#ffffff" />
        </colors>
-       <!-- Main screen colors (id=0 for Menu's, id=1 for LCD) -->
+       <!-- Main screen colors (id=0 for Framebuffer, id=1 for LCD) -->
        <windowstyle type="skinned" id="0">
                <title offset="33,14" font="Regular;20" />
                <color name="Background" color="#25062748" />
diff --git a/skin.py b/skin.py
index 1f5c9cf..baa53f7 100644 (file)
--- a/skin.py
+++ b/skin.py
@@ -217,7 +217,23 @@ def loadSingleSkinData(desktop, dom_skin, path_prefix):
        
        skin = dom_skin.childNodes[0]
        assert skin.tagName == "skin", "root element in skin must be 'skin'!"
-       
+
+       for c in elementsWithTag(skin.childNodes, "output"):
+               id = int(c.getAttribute("id") or "0")
+               if id == 0: # framebuffer
+                       for res in elementsWithTag(c.childNodes, "resolution"):
+                               xres = int(res.getAttribute("xres" or "720"))
+                               yres = int(res.getAttribute("yres" or "576"))
+                               bpp = int(res.getAttribute("bpp" or "32"))
+
+                               from enigma import gFBDC
+                               i = gFBDC.getInstance()
+                               i.setResolution(xres, yres)
+
+                               if bpp != 32:
+                                       # load palette (not yet implemented)
+                                       pass
+
        for c in elementsWithTag(skin.childNodes, "colors"):
                for color in elementsWithTag(c.childNodes, "color"):
                        name = str(color.getAttribute("name"))