From 23d87e80ac74cea3df87ac89cef734509341fa98 Mon Sep 17 00:00:00 2001 From: ghost Date: Sat, 28 Feb 2009 10:23:47 +0100 Subject: use < > keys vor next / previous service in single service epg --- data/keymap.xml | 2 ++ 1 file changed, 2 insertions(+) (limited to 'data') diff --git a/data/keymap.xml b/data/keymap.xml index 264afccf..0865e416 100644 --- a/data/keymap.xml +++ b/data/keymap.xml @@ -475,6 +475,8 @@ + + -- cgit v1.2.3 From e3673ba34436cd5dd868277c5ea4c4e0f22df575 Mon Sep 17 00:00:00 2001 From: ghost Date: Mon, 9 Mar 2009 19:55:00 +0100 Subject: add two missing transponders with two char mapping --- data/encoding.conf | 2 ++ 1 file changed, 2 insertions(+) (limited to 'data') diff --git a/data/encoding.conf b/data/encoding.conf index 07c6b8a1..fe95fafe 100644 --- a/data/encoding.conf +++ b/data/encoding.conf @@ -13,6 +13,8 @@ bul ISO8859-5 0x4ff 0x1 0x407 0x1 0xbc6 0x3 #ASTRA 23.5° Cslink, Skylink +0xc85 0x3 +0xc89 0x3 0xc8f 0x3 0xbc7 0x3 0x436 0x1 #ASTRA 19.2° MTV Euro - MTV Networks -- cgit v1.2.3 From 4531ea135c84d78d96d66a08b67f1f5e09475c55 Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Wed, 11 Mar 2009 08:12:01 +0100 Subject: Patch by Moritz Venn: Allow to set an additional delay via config. Note that this requires driver support, which is not necessarily complete. --- data/setup.xml | 2 ++ lib/python/Components/AVSwitch.py | 5 ++++- lib/python/Plugins/SystemPlugins/Videomode/plugin.py | 4 ++++ lib/service/servicedvb.cpp | 14 ++++++++++++-- 4 files changed, 22 insertions(+), 3 deletions(-) (limited to 'data') diff --git a/data/setup.xml b/data/setup.xml index e2ab09b1..17301f23 100644 --- a/data/setup.xml +++ b/data/setup.xml @@ -13,6 +13,8 @@ config.av.tvsystem config.av.wss config.av.defaultac3 + config.av.generalAC3delay + config.av.generalPCMdelay config.av.downmix_ac3 config.av.vcrswitch diff --git a/lib/python/Components/AVSwitch.py b/lib/python/Components/AVSwitch.py index 3188469a..8f4255b8 100644 --- a/lib/python/Components/AVSwitch.py +++ b/lib/python/Components/AVSwitch.py @@ -1,4 +1,5 @@ -from config import config, ConfigSlider, ConfigSelection, ConfigYesNo, ConfigEnableDisable, ConfigSubsection, ConfigBoolean +from config import config, ConfigSlider, ConfigSelection, ConfigYesNo, \ + ConfigEnableDisable, ConfigSubsection, ConfigBoolean, ConfigNumber from enigma import eAVSwitch, getDesktop from SystemInfo import SystemInfo @@ -110,6 +111,8 @@ def InitAVSwitch(): config.av.tvsystem = ConfigSelection(choices = {"pal": _("PAL"), "ntsc": _("NTSC"), "multinorm": _("multinorm")}, default="pal") config.av.wss = ConfigEnableDisable(default = True) config.av.defaultac3 = ConfigYesNo(default = False) + config.av.generalAC3delay = ConfigNumber(default = 0) + config.av.generalPCMdelay = ConfigNumber(default = 0) config.av.vcrswitch = ConfigEnableDisable(default = False) iAVSwitch = AVSwitch() diff --git a/lib/python/Plugins/SystemPlugins/Videomode/plugin.py b/lib/python/Plugins/SystemPlugins/Videomode/plugin.py index 5a7dfd1b..6b6d5045 100644 --- a/lib/python/Plugins/SystemPlugins/Videomode/plugin.py +++ b/lib/python/Plugins/SystemPlugins/Videomode/plugin.py @@ -98,6 +98,10 @@ class VideoSetup(Screen, ConfigListScreen): self.list.append(getConfigListEntry(_("AC3 default"), config.av.defaultac3)) if SystemInfo["CanDownmixAC3"]: self.list.append(getConfigListEntry(_("AC3 downmix"), config.av.downmix_ac3)) + self.list.extend(( + getConfigListEntry(_("General AC3 Delay"), config.av.generalAC3delay), + getConfigListEntry(_("General PCM Delay"), config.av.generalPCMdelay) + )) if SystemInfo["CanChangeOsdAlpha"]: self.list.append(getConfigListEntry(_("OSD visibility"), config.av.osd_alpha)) diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp index 12b75f80..012493fa 100644 --- a/lib/service/servicedvb.cpp +++ b/lib/service/servicedvb.cpp @@ -2267,8 +2267,18 @@ void eDVBServicePlay::updateDecoder() } } } - m_decoder->setAC3Delay(ac3_delay == -1 ? 0 : ac3_delay); - m_decoder->setPCMDelay(pcm_delay == -1 ? 0 : pcm_delay); + + std::string config_delay; + int config_delay_int = 0; + if(ePythonConfigQuery::getConfigValue("config.av.generalAC3delay", config_delay) == 0) + config_delay_int = atoi(config_delay.c_str()); + m_decoder->setAC3Delay(ac3_delay == -1 ? config_delay_int : ac3_delay + config_delay_int); + + if(ePythonConfigQuery::getConfigValue("config.av.generalPCMdelay", config_delay) == 0) + config_delay_int = atoi(config_delay.c_str()); + else + config_delay_int = 0; + m_decoder->setPCMDelay(pcm_delay == -1 ? config_delay_int : pcm_delay + config_delay_int); m_decoder->setVideoPID(vpid, vpidtype); selectAudioStream(); -- cgit v1.2.3 From a2b81eb390ee9cfb892734251429a062a4fa77e4 Mon Sep 17 00:00:00 2001 From: ghost Date: Sun, 15 Mar 2009 11:58:52 +0100 Subject: add "High bitrate support" choice in CI Setup (needs new drivers to work) --- data/skin_default.xml | 4 ++-- lib/dvb_ci/dvbci.cpp | 25 +++++++++++++++++++++++++ lib/dvb_ci/dvbci.h | 2 ++ lib/dvb_ci/dvbci_ui.cpp | 5 +++++ lib/dvb_ci/dvbci_ui.h | 2 ++ lib/python/Screens/Ci.py | 21 +++++++++++++++++++-- po/de.po | 3 +++ po/enigma2.pot | 4 ++++ 8 files changed, 62 insertions(+), 4 deletions(-) (limited to 'data') diff --git a/data/skin_default.xml b/data/skin_default.xml index f99e1a76..ed3b8a23 100755 --- a/data/skin_default.xml +++ b/data/skin_default.xml @@ -172,9 +172,9 @@ self.instance.move(ePoint((720-wsizex)/2, (576-wsizey)/(count > 7 and 2 or 3) - + - + diff --git a/lib/dvb_ci/dvbci.cpp b/lib/dvb_ci/dvbci.cpp index 8fa1bca2..ce1f7d66 100644 --- a/lib/dvb_ci/dvbci.cpp +++ b/lib/dvb_ci/dvbci.cpp @@ -938,6 +938,14 @@ PyObject *eDVBCIInterfaces::readCICaIds(int slotid) return 0; } +int eDVBCIInterfaces::setCIClockRate(int slotid, int rate) +{ + eDVBCISlot *slot = getSlot(slotid); + if (slot) + return slot->setClockRate(rate); + return -1; +} + int eDVBCISlot::send(const unsigned char *data, size_t len) { int res=0; @@ -1323,4 +1331,21 @@ int eDVBCISlot::setSource(data_source source) return 0; } +int eDVBCISlot::setClockRate(int rate) +{ + char buf[64]; + snprintf(buf, 64, "/proc/stb/tsmux/ci%d_tsclk", slotid); + FILE *ci = fopen(buf, "wb"); + if (ci) + { + if (rate) + fprintf(ci, "high"); + else + fprintf(ci, "normal"); + fclose(ci); + return 0; + } + return -1; +} + eAutoInitP0 init_eDVBCIInterfaces(eAutoInitNumbers::dvb, "CI Slots"); diff --git a/lib/dvb_ci/dvbci.h b/lib/dvb_ci/dvbci.h index c11a1203..cdaaf904 100644 --- a/lib/dvb_ci/dvbci.h +++ b/lib/dvb_ci/dvbci.h @@ -94,6 +94,7 @@ public: void removeService(uint16_t program_number=0xFFFF); int getNumOfServices() { return running_services.size(); } int setSource(data_source source); + int setClockRate(int); }; struct CIPmtHandler @@ -146,6 +147,7 @@ public: int getMMIState(int slot); int sendCAPMT(int slot); int setInputSource(int tunerno, data_source source); + int setCIClockRate(int slot, int rate); #ifdef SWIG public: #endif diff --git a/lib/dvb_ci/dvbci_ui.cpp b/lib/dvb_ci/dvbci_ui.cpp index af613c43..b1bfdc25 100644 --- a/lib/dvb_ci/dvbci_ui.cpp +++ b/lib/dvb_ci/dvbci_ui.cpp @@ -71,5 +71,10 @@ int eDVBCI_UI::getMMIState(int slot) return eDVBCIInterfaces::getInstance()->getMMIState(slot); } +int eDVBCI_UI::setClockRate(int slot, int rate) +{ + return eDVBCIInterfaces::getInstance()->setCIClockRate(slot, rate); +} + //FIXME: correct "run/startlevel" eAutoInitP0 init_dvbciui(eAutoInitNumbers::rc, "DVB-CI UI"); diff --git a/lib/dvb_ci/dvbci_ui.h b/lib/dvb_ci/dvbci_ui.h index b53ab02d..65b0f95d 100644 --- a/lib/dvb_ci/dvbci_ui.h +++ b/lib/dvb_ci/dvbci_ui.h @@ -13,6 +13,7 @@ class eDVBCI_UI: public eMMI_UI #endif void stateChanged(int val) { ciStateChanged(val); } public: + enum { rateNormal, rateHigh }; PSignal1 ciStateChanged; #ifndef SWIG eDVBCI_UI(); @@ -26,6 +27,7 @@ public: int answerMenu(int slot, int answer); int answerEnq(int slot, char *val); int cancelEnq(int slot); + int setClockRate(int slot, int rate); }; #endif diff --git a/lib/python/Screens/Ci.py b/lib/python/Screens/Ci.py index a997f7fe..19f4d921 100644 --- a/lib/python/Screens/Ci.py +++ b/lib/python/Screens/Ci.py @@ -12,11 +12,21 @@ from enigma import eTimer, eDVBCI_UI, eDVBCIInterfaces MAX_NUM_CI = 4 +def setCIBitrate(configElement): + if configElement.value == "no": + eDVBCI_UI.getInstance().setClockRate(configElement.slotid, eDVBCI_UI.rateNormal) + else: + eDVBCI_UI.getInstance().setClockRate(configElement.slotid, eDVBCI_UI.rateHigh) + def InitCiConfig(): config.ci = ConfigSubList() for slot in range(MAX_NUM_CI): config.ci.append(ConfigSubsection()) config.ci[slot].canDescrambleMultipleServices = ConfigSelection(choices = [("auto", _("Auto")), ("no", _("No")), ("yes", _("Yes"))], default = "auto") + if SystemInfo["CommonInterfaceSupportsHighBitrates"]: + config.ci[slot].canHandleHighBitrates = ConfigSelection(choices = [("no", _("No")), ("yes", _("Yes"))], default = "no") + config.ci[slot].canHandleHighBitrates.slotid = slot + config.ci[slot].canHandleHighBitrates.addNotifier(setCIBitrate) class MMIDialog(Screen): def __init__(self, session, slotid, action, handler = eDVBCI_UI.getInstance(), wait_text = _("wait for ci...") ): @@ -226,7 +236,13 @@ class CiMessageHandler: self.ci = { } self.dlgs = { } eDVBCI_UI.getInstance().ciStateChanged.get().append(self.ciStateChanged) - SystemInfo["CommonInterface"]= eDVBCIInterfaces.getInstance().getNumOfSlots() > 0 + SystemInfo["CommonInterface"] = eDVBCIInterfaces.getInstance().getNumOfSlots() > 0 + try: + file = open("/proc/stb/tsmux/ci0_tsclk", "r") + file.close() + SystemInfo["CommonInterfaceSupportsHighBitrates"] = True + except: + SystemInfo["CommonInterfaceSupportsHighBitrates"] = False def setSession(self, session): self.session = session @@ -285,7 +301,7 @@ class CiSelection(Screen): def selectionChanged(self): cur_idx = self["entries"].getCurrentIndex() - self["text"].setText(_("Slot %d")%((cur_idx / 4)+1)) + self["text"].setText(_("Slot %d")%((cur_idx / 5)+1)) def keyConfigEntry(self, key): try: @@ -315,6 +331,7 @@ class CiSelection(Screen): self.list.append( (appname, ConfigNothing(), 2, slot) ) self.list.append(getConfigListEntry(_("Multiple service support"), config.ci[slot].canDescrambleMultipleServices)) + self.list.append(getConfigListEntry(_("High bitrate support"), config.ci[slot].canHandleHighBitrates)) def updateState(self, slot): state = eDVBCI_UI.getInstance().getState(slot) diff --git a/po/de.po b/po/de.po index 6fc82571..acf7d8a8 100644 --- a/po/de.po +++ b/po/de.po @@ -1541,6 +1541,9 @@ msgstr "Hierarchieinformationen" msgid "Hierarchy mode" msgstr "Hierarchiemodus" +msgid "High bitrate support" +msgstr "Kann hohe Datenraten verarbeiten" + msgid "Horizontal" msgstr "" diff --git a/po/enigma2.pot b/po/enigma2.pot index 0e63744e..e8cc8314 100644 --- a/po/enigma2.pot +++ b/po/enigma2.pot @@ -1828,6 +1828,10 @@ msgstr "" msgid "Hierarchy mode" msgstr "" +#: ../lib/python/Screens/Ci.py:334 +msgid "High bitrate support" +msgstr "" + #: ../lib/python/Tools/Transponder.py:31 msgid "Horizontal" msgstr "" -- cgit v1.2.3 From 4e8e9db9aff5f54d8159592875369a5f5696ea19 Mon Sep 17 00:00:00 2001 From: ghost Date: Tue, 17 Mar 2009 09:35:50 +0100 Subject: encoding.conf: add some polish two byte encoding transponders... thanks to Jarex --- data/encoding.conf | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'data') diff --git a/data/encoding.conf b/data/encoding.conf index fe95fafe..d9d115e0 100644 --- a/data/encoding.conf +++ b/data/encoding.conf @@ -24,7 +24,11 @@ bul ISO8859-5 12200 318 1500 318 400 318 -0x5dc 0x13e +13000 318 +12800 318 +11400 318 +1000 318 +7400 318 #Fallback encoding table for following transponders #TSID ONID ISO8859-X #0x447 0x1 ISO8859-9 -- cgit v1.2.3 From dd45abf9a5e4ee3230cb0272ad117079f97c3f2f Mon Sep 17 00:00:00 2001 From: ghost Date: Tue, 17 Mar 2009 21:34:22 +0100 Subject: data/menu.xml: add default weights --- data/menu.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'data') diff --git a/data/menu.xml b/data/menu.xml index 56b3ee65..86000531 100644 --- a/data/menu.xml +++ b/data/menu.xml @@ -35,7 +35,7 @@ --> - + @@ -46,7 +46,7 @@ --> - + @@ -72,16 +72,16 @@ --> - - + + - + from Screens.DefaultWizard import DefaultWizard self.session.open(DefaultWizard, silent = False) - + from Screens.FactoryReset import FactoryReset def msgClosed(ret): -- cgit v1.2.3 From 144cf702f370e52daf845950bdf17f1b12e0731e Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Tue, 24 Mar 2009 00:09:03 +0100 Subject: now that Choicelist is skinable, fix SubserviceSelection --- data/skin_default.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'data') diff --git a/data/skin_default.xml b/data/skin_default.xml index ed3b8a23..9b9189ef 100755 --- a/data/skin_default.xml +++ b/data/skin_default.xml @@ -915,7 +915,7 @@ self.instance.move(ePoint(orgpos.x() + (orgwidth - newwidth)/2, orgpos.y())) - + -- cgit v1.2.3 From e012058ee87b554bbaf1cdb911a0479271a8200b Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Tue, 24 Mar 2009 00:31:06 +0100 Subject: fix mediaplayer playlist pos (thanks to Kerni) --- data/skin_default.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'data') diff --git a/data/skin_default.xml b/data/skin_default.xml index 9b9189ef..d1c0aa16 100755 --- a/data/skin_default.xml +++ b/data/skin_default.xml @@ -448,7 +448,7 @@ self.instance.move(ePoint((720-wsizex)/2, (576-wsizey)/(count > 7 and 2 or 3) - + -- cgit v1.2.3 From ef7f22f113db004b3b86f3bcce5b1f8fac34b975 Mon Sep 17 00:00:00 2001 From: ghost Date: Wed, 25 Mar 2009 22:30:35 +0100 Subject: remove skin for subservice selection.. so default choicelist skin is used --- data/skin_default.xml | 4 ---- 1 file changed, 4 deletions(-) (limited to 'data') diff --git a/data/skin_default.xml b/data/skin_default.xml index d1c0aa16..67f8d163 100755 --- a/data/skin_default.xml +++ b/data/skin_default.xml @@ -913,10 +913,6 @@ self.instance.move(ePoint(orgpos.x() + (orgwidth - newwidth)/2, orgpos.y())) - - - - -- cgit v1.2.3