aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Components/AVSwitch.py
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2009-02-11 12:52:48 +0100
committerFelix Domke <tmbinc@elitedvb.net>2009-02-11 12:52:48 +0100
commitbbfcb7ea1f040d030277e2b6f2efa9ea0967bf2b (patch)
treec5945c791698c14723e989449e6b4bfcc275c05d /lib/python/Components/AVSwitch.py
parent4f7990ff2a55874b9eb65e3c9cd47dacb9f76deb (diff)
parent5e6f814d005a01caa437a532e61f4b338617ff67 (diff)
downloadenigma2-bbfcb7ea1f040d030277e2b6f2efa9ea0967bf2b.tar.gz
enigma2-bbfcb7ea1f040d030277e2b6f2efa9ea0967bf2b.zip
Merge branch 'master' of /home/tmbinc/enigma2-git into tmbinc/FixTimingBugs
Conflicts: lib/dvb/decoder.cpp
Diffstat (limited to 'lib/python/Components/AVSwitch.py')
-rw-r--r--lib/python/Components/AVSwitch.py71
1 files changed, 29 insertions, 42 deletions
diff --git a/lib/python/Components/AVSwitch.py b/lib/python/Components/AVSwitch.py
index 8f99b98e..3188469a 100644
--- a/lib/python/Components/AVSwitch.py
+++ b/lib/python/Components/AVSwitch.py
@@ -1,33 +1,43 @@
from config import config, ConfigSlider, ConfigSelection, ConfigYesNo, ConfigEnableDisable, ConfigSubsection, ConfigBoolean
-from enigma import eAVSwitch
+from enigma import eAVSwitch, getDesktop
from SystemInfo import SystemInfo
class AVSwitch:
- INPUT = { "ENCODER": (0, 4), "SCART": (1, 3), "AUX": (2, 4) }
-
def setInput(self, input):
- eAVSwitch.getInstance().setInput(self.INPUT[input][0])
- if self.INPUT[input][1] == 4:
- aspect = self.getAspectRatioSetting()
- self.setAspectWSS(aspect)
- self.setAspectSlowBlank(aspect)
- else:
- eAVSwitch.getInstance().setSlowblank(self.INPUT[input][1])
- # FIXME why do we have to reset the colorformat? bug in avs-driver?
- map = {"cvbs": 0, "rgb": 1, "svideo": 2, "yuv": 3}
- eAVSwitch.getInstance().setColorFormat(map[config.av.colorformat.value])
+ INPUT = { "ENCODER": 0, "SCART": 1, "AUX": 2 }
+ eAVSwitch.getInstance().setInput(INPUT[input])
def setColorFormat(self, value):
eAVSwitch.getInstance().setColorFormat(value)
def setAspectRatio(self, value):
eAVSwitch.getInstance().setAspectRatio(value)
- self.setAspectWSS(value)
- self.setAspectSlowBlank(value)
def setSystem(self, value):
eAVSwitch.getInstance().setVideomode(value)
+ def getOutputAspect(self):
+ valstr = config.av.aspectratio.value
+ if valstr in ("4_3_letterbox", "4_3_panscan"): # 4:3
+ return (4,3)
+ elif valstr == "16_9": # auto ... 4:3 or 16:9
+ try:
+ aspect_str = open("/proc/stb/vmpeg/0/aspect", "r").read()
+ if aspect_str == "1": # 4:3
+ return (4,3)
+ except IOError:
+ pass
+ elif valstr in ("16_9_always", "16_9_letterbox"): # 16:9
+ pass
+ elif valstr in ("16_10_letterbox", "16_10_panscan"): # 16:10
+ return (16,10)
+ return (16,9)
+
+ def getFramebufferScale(self):
+ aspect = self.getOutputAspect()
+ fb_size = getDesktop(0).size()
+ return (aspect[0] * fb_size.height(), aspect[1] * fb_size.width())
+
def getAspectRatioSetting(self):
valstr = config.av.aspectratio.value
if valstr == "4_3_letterbox":
@@ -47,35 +57,12 @@ class AVSwitch:
return val
def setAspectWSS(self, aspect=None):
- if aspect is None:
- aspect = self.getAspectRatioSetting()
- if aspect == 0 or aspect == 1: # letterbox or panscan
- if not config.av.wss.value:
- value = 0 # wss off
- else:
- value = 3 # 4:3_full_format
- elif aspect == 2: # 16:9
- if not config.av.wss.value:
- value = 2 # auto(4:3_off)
- else:
- value = 1 # auto
- elif aspect == 3 or aspect == 6: # always 16:9
- value = 4 # 16:9_full_format
- elif aspect == 4 or aspect == 5: # 16:10
- value = 10 # 14:9_full_format
+ if not config.av.wss.value:
+ value = 2 # auto(4:3_off)
+ else:
+ value = 1 # auto
eAVSwitch.getInstance().setWSS(value)
- def setAspectSlowBlank(self, aspect=None):
- if aspect is None:
- aspect = self.getAspectRatioSetting()
- if aspect == 0 or aspect == 1: # letterbox or panscan
- value = 2 # 12 V
- elif aspect == 2: # 16:9
- value = 4 # auto
- elif aspect == 3 or aspect == 4 or aspect == 5 or aspect == 6: # always 16:9
- value = 1 # 6V
- eAVSwitch.getInstance().setSlowblank(value)
-
def InitAVSwitch():
config.av = ConfigSubsection()
config.av.yuvenabled = ConfigBoolean(default=False)