From a216fb1b11e04ced44a5f30a46381e25300c8e2d Mon Sep 17 00:00:00 2001 From: hschang Date: Wed, 14 Jun 2017 18:38:23 +0900 Subject: [PATCH 1/1] Support scrambled playback --- meta-bsp/conf/machine/vusolo4k.conf | 1 + meta-bsp/conf/machine/vuultimo4k.conf | 1 + meta-bsp/recipes-vuplus/enigma2/enigma2.bbappend | 3 - .../enigma2/enigma2/enigma2_dvb_ci_fbc.patch | 104 --------------------- .../enigma2/enigma2_vuplus_remove_pvr_action.patch | 38 +++----- meta-openvuplus/recipes-vuplus/enigma2/enigma2.bb | 2 +- .../packagegroups/packagegroup-vuplus-enigma2.bb | 3 +- 7 files changed, 19 insertions(+), 133 deletions(-) delete mode 100644 meta-bsp/recipes-vuplus/enigma2/enigma2/enigma2_dvb_ci_fbc.patch diff --git a/meta-bsp/conf/machine/vusolo4k.conf b/meta-bsp/conf/machine/vusolo4k.conf index 462f43e..3fda704 100644 --- a/meta-bsp/conf/machine/vusolo4k.conf +++ b/meta-bsp/conf/machine/vusolo4k.conf @@ -22,6 +22,7 @@ VUPLUS_FEATURES += "kodi" VUPLUS_FEATURES += "minitv" VUPLUS_FEATURES += "chromiumos" VUPLUS_FEATURES += "fcc" +VUPLUS_FEATURES += "scrambledplayback" IMAGE_UNPACK_PATH = "vuplus/solo4k" MKFS_UBI_MAX_ERASE_BLK_COUNT = "4096" diff --git a/meta-bsp/conf/machine/vuultimo4k.conf b/meta-bsp/conf/machine/vuultimo4k.conf index 153512c..f9a53fd 100644 --- a/meta-bsp/conf/machine/vuultimo4k.conf +++ b/meta-bsp/conf/machine/vuultimo4k.conf @@ -24,6 +24,7 @@ VUPLUS_FEATURES += "chromiumos" VUPLUS_FEATURES += "fcc" VUPLUS_FEATURES += "wowl" VUPLUS_FEATURES += "bluetooth" +VUPLUS_FEATURES += "scrambledplayback" IMAGE_UNPACK_PATH = "vuplus/ultimo4k" MKFS_UBI_MAX_ERASE_BLK_COUNT = "4096" diff --git a/meta-bsp/recipes-vuplus/enigma2/enigma2.bbappend b/meta-bsp/recipes-vuplus/enigma2/enigma2.bbappend index 75b19dc..1e89f62 100644 --- a/meta-bsp/recipes-vuplus/enigma2/enigma2.bbappend +++ b/meta-bsp/recipes-vuplus/enigma2/enigma2.bbappend @@ -28,21 +28,18 @@ SRC_URI_append_vuzero = " \ SRC_URI_append_vusolo4k = " \ file://skin_user_vusolo4k.xml \ file://lcd_icons_vusolo4k \ - file://enigma2_dvb_ci_fbc.patch \ file://vu_hd_1080p_default.patch \ " SRC_URI_append_vuultimo4k = " \ file://skin_user_vuultimo4k.xml \ file://lcd_icons_vuultimo4k \ - file://enigma2_dvb_ci_fbc.patch \ file://vu_hd_1080p_default.patch \ file://enigma2_network_sys0.patch \ " SRC_URI_append_vuuno4k = " \ file://enigma2_vuplus_remove_pvr_action.patch \ - file://enigma2_dvb_ci_fbc.patch \ file://vu_hd_1080p_default.patch \ " diff --git a/meta-bsp/recipes-vuplus/enigma2/enigma2/enigma2_dvb_ci_fbc.patch b/meta-bsp/recipes-vuplus/enigma2/enigma2/enigma2_dvb_ci_fbc.patch deleted file mode 100644 index c152482..0000000 --- a/meta-bsp/recipes-vuplus/enigma2/enigma2/enigma2_dvb_ci_fbc.patch +++ /dev/null @@ -1,104 +0,0 @@ -diff --git a/lib/dvb_ci/dvbci.cpp b/lib/dvb_ci/dvbci.cpp -index 374672a..1b50e67 100644 ---- a/lib/dvb_ci/dvbci.cpp -+++ b/lib/dvb_ci/dvbci.cpp -@@ -495,10 +495,9 @@ void eDVBCIInterfaces::recheckPMTHandlers() - data_source tuner_source = TUNER_A; - switch (tunernum) - { -- case 0: tuner_source = TUNER_A; break; -- case 1: tuner_source = TUNER_B; break; -- case 2: tuner_source = TUNER_C; break; -- case 3: tuner_source = TUNER_D; break; -+ case 0 ... 18: -+ tuner_source = (data_source)tunernum; -+ break; - default: - eDebug("try to get source for tuner %d!!\n", tunernum); - break; -@@ -646,6 +645,8 @@ int eDVBCIInterfaces::getMMIState(int slotid) - return slot->getMMIState(); - } - -+static const char *tuner_source[] = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "CI0", "CI1", "CI2", "CI3"}; -+ - int eDVBCIInterfaces::setInputSource(int tuner_no, data_source source) - { - // eDebug("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); -@@ -666,29 +667,8 @@ int eDVBCIInterfaces::setInputSource(int tuner_no, data_source source) - - switch(source) - { -- case CI_A: -- fprintf(input, "CI0"); -- break; -- case CI_B: -- fprintf(input, "CI1"); -- break; -- case CI_C: -- fprintf(input, "CI2"); -- break; -- case CI_D: -- fprintf(input, "CI3"); -- break; -- case TUNER_A: -- fprintf(input, "A"); -- break; -- case TUNER_B: -- fprintf(input, "B"); -- break; -- case TUNER_C: -- fprintf(input, "C"); -- break; -- case TUNER_D: -- fprintf(input, "D"); -+ case TUNER_A ... CI_D: -+ fprintf(input, tuner_source[(int)source]); - break; - default: - eDebug("setInputSource for input %d failed!!!\n", (int)source); -@@ -1281,29 +1261,8 @@ int eDVBCISlot::setSource(data_source source) - FILE *ci = fopen(buf, "wb"); - switch(source) - { -- case CI_A: -- fprintf(ci, "CI0"); -- break; -- case CI_B: -- fprintf(ci, "CI1"); -- break; -- case CI_C: -- fprintf(ci, "CI2"); -- break; -- case CI_D: -- fprintf(ci, "CI3"); -- break; -- case TUNER_A: -- fprintf(ci, "A"); -- break; -- case TUNER_B: -- fprintf(ci, "B"); -- break; -- case TUNER_C: -- fprintf(ci, "C"); -- break; -- case TUNER_D: -- fprintf(ci, "D"); -+ case TUNER_A ... CI_D: -+ fprintf(ci, tuner_source[(int)source]); - break; - default: - eDebug("CI Slot %d: setSource %d failed!!!\n", getSlotID(), (int)source); -diff --git a/lib/dvb_ci/dvbci.h b/lib/dvb_ci/dvbci.h -index de84e18..c90ec10 100644 ---- a/lib/dvb_ci/dvbci.h -+++ b/lib/dvb_ci/dvbci.h -@@ -35,7 +35,7 @@ struct queueData - - enum data_source - { -- TUNER_A, TUNER_B, TUNER_C, TUNER_D, CI_A, CI_B, CI_C, CI_D -+ TUNER_A=0, TUNER_B, TUNER_C, TUNER_D, TUNER_E, TUNER_F, TUNER_G, TUNER_H, TUNER_I, TUNER_J, TUNER_K, TUNER_L, TUNER_M, TUNER_N, TUNER_O, TUNER_P, TUNER_Q, TUNER_R, CI_A, CI_B, CI_C, CI_D - }; - - typedef std::pair providerPair; diff --git a/meta-bsp/recipes-vuplus/enigma2/enigma2/enigma2_vuplus_remove_pvr_action.patch b/meta-bsp/recipes-vuplus/enigma2/enigma2/enigma2_vuplus_remove_pvr_action.patch index 460098a..47f9fa7 100644 --- a/meta-bsp/recipes-vuplus/enigma2/enigma2/enigma2_vuplus_remove_pvr_action.patch +++ b/meta-bsp/recipes-vuplus/enigma2/enigma2/enigma2_vuplus_remove_pvr_action.patch @@ -1,5 +1,5 @@ diff --git a/RecordTimer.py b/RecordTimer.py -index d3ccd75..838b18a 100755 +index 58ef5b3..d3c0bbf 100755 --- a/RecordTimer.py +++ b/RecordTimer.py @@ -4,6 +4,7 @@ from enigma import eEPGCache, getBestPlayableServiceReference, \ @@ -22,7 +22,7 @@ index d3ccd75..838b18a 100755 self.afterEvent = afterEvent self.dirname = dirname self.dirnameHadToFallback = False -@@ -404,7 +408,10 @@ def createTimer(xml): +@@ -417,7 +421,10 @@ def createTimer(xml): description = xml.get("description").encode("utf-8") repeated = xml.get("repeated").encode("utf-8") disabled = long(xml.get("disabled") or "0") @@ -34,7 +34,7 @@ index d3ccd75..838b18a 100755 afterevent = str(xml.get("afterevent") or "nothing") afterevent = { "nothing": AFTEREVENT.NONE, -@@ -590,7 +597,10 @@ class RecordTimer(timer.Timer): +@@ -603,7 +610,10 @@ class RecordTimer(timer.Timer): if timer.tags is not None: list.append(' tags="' + str(stringToXML(' '.join(timer.tags))) + '"') list.append(' disabled="' + str(int(timer.disabled)) + '"') @@ -47,7 +47,7 @@ index d3ccd75..838b18a 100755 if config.recording.debug.value: diff --git a/data/menu.xml b/data/menu.xml -index 5c8cbb2..ed0b415 100755 +index a71c036..0340a8c 100755 --- a/data/menu.xml +++ b/data/menu.xml @@ -71,7 +71,7 @@ @@ -60,7 +60,7 @@ index 5c8cbb2..ed0b415 100755 diff --git a/data/setup.xml b/data/setup.xml -index 5ce6b62..9892f34 100755 +index 8e42c57..99b0a92 100755 --- a/data/setup.xml +++ b/data/setup.xml @@ -22,11 +22,11 @@ @@ -81,27 +81,17 @@ index 5ce6b62..9892f34 100755 config.usage.showdish config.usage.multibouquet diff --git a/lib/python/Components/SystemInfo.py b/lib/python/Components/SystemInfo.py -old mode 100644 -new mode 100755 -index 67f2e75..9ecd94d +index 6fcab1d..85f7f64 100755 --- a/lib/python/Components/SystemInfo.py +++ b/lib/python/Components/SystemInfo.py -@@ -1,6 +1,6 @@ - from enigma import eDVBResourceManager - from Tools.Directories import fileExists --from Tools.HardwareInfo import HardwareInfo -+from Tools.HardwareInfo import HardwareInfo, HardwareInfo - - SystemInfo = { } - -@@ -31,4 +31,5 @@ SystemInfo["FrontpanelDisplayGrayscale"] = fileExists("/dev/dbox/oled0") - SystemInfo["DeepstandbySupport"] = HardwareInfo().get_device_name() != "dm800" +@@ -32,4 +32,4 @@ SystemInfo["DeepstandbySupport"] = HardwareInfo().get_device_name() != "dm800" SystemInfo["HdmiInSupport"] = HardwareInfo().get_vu_device_name() == "ultimo4k" SystemInfo["WOWLSupport"] = HardwareInfo().get_vu_device_name() == "ultimo4k" + SystemInfo["ScrambledPlayback"] = HardwareInfo().get_vu_device_name() in ("solo4k", "ultimo4k") +- +SystemInfo["PVRSupport"] = HardwareInfo().get_vu_device_name() not in ["solose", "zero", "uno4k"] - diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py -index b5bd06d..bc2b8a9 100755 +index cebebf5..89e146e 100755 --- a/lib/python/Screens/InfoBarGenerics.py +++ b/lib/python/Screens/InfoBarGenerics.py @@ -235,7 +235,7 @@ class InfoBarNumberZap: @@ -113,7 +103,7 @@ index b5bd06d..bc2b8a9 100755 self.session.openWithCallback(self.numberEntered, NumberZap, number) def numberEntered(self, retval): -@@ -1185,11 +1185,12 @@ class InfoBarShowMovies: +@@ -1201,11 +1201,12 @@ class InfoBarShowMovies: class InfoBarTimeshift: def __init__(self): @@ -131,7 +121,7 @@ index b5bd06d..bc2b8a9 100755 self["TimeshiftActivateActions"] = ActionMap(["InfobarTimeshiftActivateActions"], { "timeshiftActivateEnd": self.activateTimeshiftEnd, # something like "rewind key" -@@ -1509,10 +1510,11 @@ class InfoBarInstantRecord: +@@ -1529,10 +1530,11 @@ class InfoBarInstantRecord: """Instant Record - handles the instantRecord action in order to start/stop instant records""" def __init__(self): @@ -148,7 +138,7 @@ index b5bd06d..bc2b8a9 100755 def stopCurrentRecording(self, entry = -1): diff --git a/lib/python/Screens/TimerEntry.py b/lib/python/Screens/TimerEntry.py -index 9885e70..1d40547 100644 +index c3e71c7..5ee9e41 100644 --- a/lib/python/Screens/TimerEntry.py +++ b/lib/python/Screens/TimerEntry.py @@ -94,7 +94,12 @@ class TimerEntry(Screen, ConfigListScreen): @@ -163,5 +153,5 @@ index 9885e70..1d40547 100644 + default = {0: "record", 1: "zap"}[justplay] + self.timerentry_justplay = ConfigSelection(choices = timer_choices, default = default) if SystemInfo["DeepstandbySupport"]: - shutdownString = _("go to deep standby") + shutdownString = _("go to standby") else: diff --git a/meta-openvuplus/recipes-vuplus/enigma2/enigma2.bb b/meta-openvuplus/recipes-vuplus/enigma2/enigma2.bb index 6236526..766486c 100644 --- a/meta-openvuplus/recipes-vuplus/enigma2/enigma2.bb +++ b/meta-openvuplus/recipes-vuplus/enigma2/enigma2.bb @@ -231,7 +231,7 @@ DEPENDS += "${@base_contains("VUPLUS_FEATURES", "uianimation", "libgles libvugle RDEPENDS_${PN}_append_vuplus += "${@base_contains("VUPLUS_FEATURES", "uianimation", "libvugles2" , "", d)}" PN = "enigma2" -PR = "r153" +PR = "r154" inherit gitpkgv pythonnative diff --git a/meta-openvuplus/recipes-vuplus/packagegroups/packagegroup-vuplus-enigma2.bb b/meta-openvuplus/recipes-vuplus/packagegroups/packagegroup-vuplus-enigma2.bb index 3d3d6ca..bef68d3 100644 --- a/meta-openvuplus/recipes-vuplus/packagegroups/packagegroup-vuplus-enigma2.bb +++ b/meta-openvuplus/recipes-vuplus/packagegroups/packagegroup-vuplus-enigma2.bb @@ -2,7 +2,7 @@ SUMMARY = "Enigma2 set of packages for Vuplus" SECTION = "vuplus/base" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" -PR = "r18" +PR = "r19" PACKAGE_ARCH = "${MACHINE_ARCH}" @@ -80,6 +80,7 @@ RDEPENDS_${PN} += " \ ${@base_contains("VUPLUS_FEATURES", "bluetooth", "enigma2-plugin-systemplugins-bluetoothsetup", "", d)} \ ${@base_contains("VUPLUS_FEATURES", "bluetooth", "enigma2-plugin-extensions-witaispeechtotext", "", d)} \ ${@base_conditional("MACHINE", "vuultimo4k", "enigma2-plugin-systemplugins-ultimo4kmisccontrol", "", d)} \ + ${@base_contains("VUPLUS_FEATURES", "scrambledplayback", "enigma2-plugin-systemplugins-pvrdescrambleconvert", "", d)} \ " PACKAGE_ARCH = "${MACHINE_ARCH}" -- 2.7.4