add config option to enable/disable ac3 downmix (when its possible with used
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>
Thu, 13 Mar 2008 19:15:07 +0000 (19:15 +0000)
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>
Thu, 13 Mar 2008 19:15:07 +0000 (19:15 +0000)
hardware)

data/setup.xml
lib/python/Components/AVSwitch.py
lib/python/Plugins/SystemPlugins/Videomode/plugin.py

index c49d629..219f9b5 100644 (file)
@@ -13,7 +13,8 @@
                        <item level="0" text="TV System">config.av.tvsystem</item>
                        <item level="1" text="WSS on 4:3">config.av.wss</item>
                        <item level="1" text="AC3 default">config.av.defaultac3</item>
                        <item level="0" text="TV System">config.av.tvsystem</item>
                        <item level="1" text="WSS on 4:3">config.av.wss</item>
                        <item level="1" text="AC3 default">config.av.defaultac3</item>
-                       <item level="1" text="VCR Switch" requires="ScartSwitch">config.av.vcrswitch</item>
+                       <item level="1" text="AC3 downmix" requires="CanDownmixAC3">config.av.downmix_ac3</item>
+                       <item level="1" text="Auto scart switching" requires="ScartSwitch">config.av.vcrswitch</item>
                </setup>
                <setup key="usage" title="Customize">
                        <item level="0" text="Setup Mode">config.usage.setup_level</item>
                </setup>
                <setup key="usage" title="Customize">
                        <item level="0" text="Setup Mode">config.usage.setup_level</item>
index 044ea43..65c979d 100644 (file)
@@ -151,3 +151,14 @@ def InitAVSwitch():
        iAVSwitch.setInput("ENCODER") # init on startup
        SystemInfo["ScartSwitch"] = eAVSwitch.getInstance().haveScartSwitch()
 
        iAVSwitch.setInput("ENCODER") # init on startup
        SystemInfo["ScartSwitch"] = eAVSwitch.getInstance().haveScartSwitch()
 
+       try:
+               can_downmix = open("/proc/stb/audio/ac3_choices", "r").read()[:-1].find("downmix") != -1
+       except:
+               can_downmix = False
+
+       SystemInfo["CanDownmixAC3"] = can_downmix
+       if can_downmix:
+               def setAC3Downmix(configElement):
+                       open("/proc/stb/audio/ac3", "w").write(configElement.value and "downmix" or "passthrough")
+               config.av.downmix_ac3 = ConfigYesNo(default = False)
+               config.av.downmix_ac3.addNotifier(setAC3Downmix)
index aac25d6..031d2c1 100644 (file)
@@ -1,6 +1,6 @@
 from Screens.Screen import Screen
 from Plugins.Plugin import PluginDescriptor
 from Screens.Screen import Screen
 from Plugins.Plugin import PluginDescriptor
-
+from Components.SystemInfo import SystemInfo
 from Components.ConfigList import ConfigListScreen
 from Components.config import getConfigListEntry, config
 from Components.config import config
 from Components.ConfigList import ConfigListScreen
 from Components.config import getConfigListEntry, config
 from Components.config import config
@@ -83,9 +83,13 @@ class VideoSetup(Screen, ConfigListScreen):
                        self.list.append(getConfigListEntry(_("Color Format"), config.av.colorformat))
                        if level >= 1:
                                self.list.append(getConfigListEntry(_("WSS on 4:3"), config.av.wss))
                        self.list.append(getConfigListEntry(_("Color Format"), config.av.colorformat))
                        if level >= 1:
                                self.list.append(getConfigListEntry(_("WSS on 4:3"), config.av.wss))
+                               if SystemInfo["ScartSwitch"]:
+                                       self.list.append(getConfigListEntry(_("Auto scart switching"), config.av.vcrswitch))
 
                if level >= 1:
                        self.list.append(getConfigListEntry(_("AC3 default"), config.av.defaultac3))
 
                if level >= 1:
                        self.list.append(getConfigListEntry(_("AC3 default"), config.av.defaultac3))
+                       if SystemInfo["CanDownmixAC3"]:
+                               self.list.append(getConfigListEntry(_("AC3 downmix"), config.av.downmix_ac3))
 
                self["config"].list = self.list
                self["config"].l.setList(self.list)
 
                self["config"].list = self.list
                self["config"].l.setList(self.list)