diff options
| -rw-r--r-- | Navigation.py | 6 | ||||
| -rwxr-xr-x | configure.ac | 2 | ||||
| -rw-r--r-- | data/defaults/Dream/Makefile.am | 5 | ||||
| -rw-r--r-- | data/defaults/Dream/dm500hd.info | 2 | ||||
| -rw-r--r-- | data/defaults/Dream/dm7025.info | 2 | ||||
| -rw-r--r-- | data/defaults/Dream/dm800.info | 2 | ||||
| -rw-r--r-- | data/defaults/Dream/dm8000.info | 2 | ||||
| -rw-r--r-- | data/defaults/Dream/hdbouquets/Makefile.am | 4 | ||||
| -rw-r--r-- | data/defaults/Dream/hdbouquets/userbouquet.favourites.tv | 129 | ||||
| -rw-r--r-- | data/defaults/Dream/sdbouquets/Makefile.am | 4 | ||||
| -rw-r--r-- | data/defaults/Dream/sdbouquets/userbouquet.favourites.tv (renamed from data/defaults/Dream/userbouquet.favourites.tv) | 0 | ||||
| -rw-r--r-- | lib/python/Components/NimManager.py | 47 | ||||
| -rw-r--r-- | lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp | 47 | ||||
| -rw-r--r-- | lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.h | 2 | ||||
| -rw-r--r-- | lib/python/Screens/InfoBarGenerics.py | 12 | ||||
| -rw-r--r-- | lib/python/Screens/Satconfig.py | 21 | ||||
| -rwxr-xr-x | po/Makefile.am | 10 |
17 files changed, 271 insertions, 26 deletions
diff --git a/Navigation.py b/Navigation.py index 2437bbf5..a905da19 100644 --- a/Navigation.py +++ b/Navigation.py @@ -53,7 +53,7 @@ class Navigation: def playService(self, ref, checkParentalControl = True, forceRestart = False): oldref = self.currentlyPlayingServiceReference if ref and oldref and ref == oldref and not forceRestart: - print "ignore request to play already running service" + print "ignore request to play already running service(1)" return 0 print "playing", ref and ref.toString() if ref is None: @@ -64,6 +64,10 @@ class Navigation: if not oldref: oldref = eServiceReference() playref = getBestPlayableServiceReference(ref, oldref) + print "playref", playref + if playref and oldref and playref == oldref and not forceRestart: + print "ignore request to play already running service(2)" + return 0 if not playref or (checkParentalControl and not parentalControl.isServicePlayable(playref, boundFunction(self.playService, checkParentalControl = False))): self.stopService() return 0 diff --git a/configure.ac b/configure.ac index aa2fa3e3..d1b1d279 100755 --- a/configure.ac +++ b/configure.ac @@ -90,6 +90,8 @@ data/fonts/Makefile data/countries/Makefile data/defaults/Makefile data/defaults/Dream/Makefile +data/defaults/Dream/hdbouquets/Makefile +data/defaults/Dream/sdbouquets/Makefile data/extensions/Makefile data/skin_default/Makefile data/skin_default/menu/Makefile diff --git a/data/defaults/Dream/Makefile.am b/data/defaults/Dream/Makefile.am index 113442c0..31ba1c69 100644 --- a/data/defaults/Dream/Makefile.am +++ b/data/defaults/Dream/Makefile.am @@ -1,3 +1,5 @@ +SUBDIRS = hdbouquets sdbouquets + installdir = $(pkgdatadir)/defaults/Dream dist_install_DATA = \ @@ -9,5 +11,4 @@ dist_install_DATA = \ settings.500hd \ settings.7025 \ settings.800 \ - settings.8000 \ - userbouquet.favourites.tv + settings.8000 diff --git a/data/defaults/Dream/dm500hd.info b/data/defaults/Dream/dm500hd.info index fbf7888e..b1b4d53d 100644 --- a/data/defaults/Dream/dm500hd.info +++ b/data/defaults/Dream/dm500hd.info @@ -20,7 +20,7 @@ </prerequisites> </file--> <file type="favourites" directory="" name="bouquets.tv" /> - <file type="favourites" directory="" name="userbouquet.favourites.tv" /> + <file type="favourites" directory="hdbouquets/" name="userbouquet.favourites.tv" /> <!--file type="package" directory="packages/" name="small-test_1.0_mipsel.ipk" /--> </files> </default> diff --git a/data/defaults/Dream/dm7025.info b/data/defaults/Dream/dm7025.info index 0461b686..a1585cfe 100644 --- a/data/defaults/Dream/dm7025.info +++ b/data/defaults/Dream/dm7025.info @@ -20,7 +20,7 @@ </prerequisites> </file--> <file type="favourites" directory="" name="bouquets.tv" /> - <file type="favourites" directory="" name="userbouquet.favourites.tv" /> + <file type="favourites" directory="sdbouquets/" name="userbouquet.favourites.tv" /> <!--file type="package" directory="packages/" name="small-test_1.0_mipsel.ipk" /--> </files> </default> diff --git a/data/defaults/Dream/dm800.info b/data/defaults/Dream/dm800.info index 8c68349f..4793bd85 100644 --- a/data/defaults/Dream/dm800.info +++ b/data/defaults/Dream/dm800.info @@ -20,7 +20,7 @@ </prerequisites> </file--> <file type="favourites" directory="" name="bouquets.tv" /> - <file type="favourites" directory="" name="userbouquet.favourites.tv" /> + <file type="favourites" directory="hdbouquets/" name="userbouquet.favourites.tv" /> <!--file type="package" directory="packages/" name="small-test_1.0_mipsel.ipk" /--> </files> </default> diff --git a/data/defaults/Dream/dm8000.info b/data/defaults/Dream/dm8000.info index 8b11946f..2ef2013a 100644 --- a/data/defaults/Dream/dm8000.info +++ b/data/defaults/Dream/dm8000.info @@ -20,7 +20,7 @@ </prerequisites> </file--> <file type="favourites" directory="" name="bouquets.tv" /> - <file type="favourites" directory="" name="userbouquet.favourites.tv" /> + <file type="favourites" directory="hdbouquets/" name="userbouquet.favourites.tv" /> <!--file type="package" directory="packages/" name="small-test_1.0_mipsel.ipk" /--> </files> </default> diff --git a/data/defaults/Dream/hdbouquets/Makefile.am b/data/defaults/Dream/hdbouquets/Makefile.am new file mode 100644 index 00000000..843a07d6 --- /dev/null +++ b/data/defaults/Dream/hdbouquets/Makefile.am @@ -0,0 +1,4 @@ +installdir = $(pkgdatadir)/defaults/Dream/hdbouquets + +dist_install_DATA = \ + userbouquet.favourites.tv diff --git a/data/defaults/Dream/hdbouquets/userbouquet.favourites.tv b/data/defaults/Dream/hdbouquets/userbouquet.favourites.tv new file mode 100644 index 00000000..91536b10 --- /dev/null +++ b/data/defaults/Dream/hdbouquets/userbouquet.favourites.tv @@ -0,0 +1,129 @@ +#NAME Favourites (TV)
+#SERVICE 1:0:19:2B5C:3F3:1:C00000:0:0:0:
+#SERVICE 1:0:19:2B66:3F3:1:C00000:0:0:0:
+#SERVICE 1:0:1:6DCC:44D:1:C00000:0:0:0:
+#SERVICE 1:0:1:2EE3:441:1:C00000:0:0:0:
+#SERVICE 1:0:1:445C:453:1:C00000:0:0:0:
+#SERVICE 1:0:1:2EF4:441:1:C00000:0:0:0:
+#SERVICE 1:0:1:445D:453:1:C00000:0:0:0:
+#SERVICE 1:0:1:445E:453:1:C00000:0:0:0:
+#SERVICE 1:0:1:33:21:85:C00000:0:0:0:
+#SERVICE 1:0:1:701:5:85:C00000:0:0:0:
+#SERVICE 1:0:1:2F1C:441:1:C00000:0:0:0:
+#SERVICE 1:0:1:6D6E:437:1:C00000:0:0:0:
+#SERVICE 1:0:1:2FC:5:85:C00000:0:0:0:
+#SERVICE 1:0:1:F98:454:1:C00000:0:0:0:
+#SERVICE 1:0:19:2B70:3F3:1:C00000:0:0:0:
+#SERVICE 1:0:1:6D67:437:1:C00000:0:0:0:
+#SERVICE 1:0:1:7031:41B:1:C00000:0:0:0:
+#SERVICE 1:0:1:7032:41B:1:C00000:0:0:0:
+#SERVICE 1:0:1:7033:41B:1:C00000:0:0:0:
+#SERVICE 1:0:1:6E46:431:1:C00000:0:0:0:
+#SERVICE 1:0:1:6DCE:44D:1:C00000:0:0:0:
+#SERVICE 1:0:1:6DD1:44D:1:C00000:0:0:0:
+#SERVICE 1:0:1:6DCF:44D:1:C00000:0:0:0:
+#SERVICE 1:0:1:6E42:431:1:C00000:0:0:0:
+#SERVICE 1:64:B:0:0:0:0:0:0:0::Doku/Wissen/Themen
+#DESCRIPTION Doku/Wissen/Themen
+#SERVICE 1:0:1:6DD0:44D:1:C00000:0:0:0:
+#SERVICE 1:0:1:6D6B:437:1:C00000:0:0:0:
+#SERVICE 1:0:1:2775:444:1:C00000:0:0:0:
+#SERVICE 1:0:1:293:5:85:C00000:0:0:0:
+#SERVICE 1:0:1:6D70:437:1:C00000:0:0:0:
+#SERVICE 1:0:1:277B:444:1:C00000:0:0:0:
+#SERVICE 1:0:1:332D:45B:1:C00000:0:0:0:
+#SERVICE 1:0:1:3139:459:1:C00000:0:0:0:
+#SERVICE 1:0:1:2F5A:454:1:C00000:0:0:0:
+#SERVICE 1:64:A:0:0:0:0:0:0:0::Sport
+#DESCRIPTION Sport
+#SERVICE 1:0:1:384:21:85:C00000:0:0:0:
+#SERVICE 1:0:1:79E0:443:1:C00000:0:0:0:
+#SERVICE 1:64:1:0:0:0:0:0:0:0::Kinder
+#DESCRIPTION Kinder
+#SERVICE 1:0:1:2F08:441:1:C00000:0:0:0:
+#SERVICE 1:0:1:6D68:437:1:C00000:0:0:0:
+#SERVICE 1:0:1:7008:436:1:C00000:0:0:0:
+#SERVICE 1:0:1:6FE0:443:1:C00000:0:0:0:
+#SERVICE 1:64:2:0:0:0:0:0:0:0::Nachrichten
+#DESCRIPTION Nachrichten
+#SERVICE 1:0:1:2F3A:441:1:C00000:0:0:0:
+#SERVICE 1:0:1:445F:453:1:C00000:0:0:0:
+#SERVICE 1:0:1:79F4:443:1:C00000:0:0:0:
+#SERVICE 1:0:1:2753:402:1:C00000:0:0:0:
+#SERVICE 1:0:1:7035:41B:1:C00000:0:0:0:
+#SERVICE 1:64:3:0:0:0:0:0:0:0::Regional
+#DESCRIPTION Regional
+#SERVICE 1:0:1:3146:459:1:C00000:0:0:0:
+#SERVICE 1:0:1:300:7:85:C00000:0:0:0:
+#SERVICE 1:0:1:2778:444:1:C00000:0:0:0:
+#SERVICE 1:0:1:277A:444:1:C00000:0:0:0:
+#SERVICE 1:0:1:2779:444:1:C00000:0:0:0:
+#SERVICE 1:0:1:2777:444:1:C00000:0:0:0:
+#SERVICE 1:0:1:32D6:45D:1:C00000:0:0:0:
+#SERVICE 1:0:1:277D:444:1:C00000:0:0:0:
+#SERVICE 1:64:4:0:0:0:0:0:0:0::Musik
+#DESCRIPTION Musik
+#SERVICE 1:0:1:2774:444:1:C00000:0:0:0:
+#SERVICE 1:0:1:7004:436:1:C00000:0:0:0:
+#SERVICE 1:0:1:7001:436:1:C00000:0:0:0:
+#SERVICE 1:0:1:6FE1:443:1:C00000:0:0:0:
+#SERVICE 1:0:1:2FD:7:85:C00000:0:0:0:
+#SERVICE 1:0:1:32D5:45D:1:C00000:0:0:0:
+#SERVICE 1:0:1:332E:45B:1:C00000:0:0:0:
+#SERVICE 1:0:1:304:5:85:C00000:0:0:0:
+#SERVICE 1:0:1:702:5:85:C00000:0:0:0:
+#SERVICE 1:64:5:0:0:0:0:0:0:0::Reisen
+#DESCRIPTION Reisen
+#SERVICE 1:0:1:20:21:85:C00000:0:0:0:
+#SERVICE 1:64:9:0:0:0:0:0:0:0::Beratung
+#DESCRIPTION Beratung
+#SERVICE 1:0:1:295:21:85:C00000:0:0:0:
+#SERVICE 1:64:6:0:0:0:0:0:0:0::Einkaufen
+#DESCRIPTION Einkaufen
+#SERVICE 1:0:1:301:7:85:C00000:0:0:0:
+#SERVICE 1:0:1:28:21:85:C00000:0:0:0:
+#SERVICE 1:0:1:79EA:443:1:C00000:0:0:0:
+#SERVICE 1:0:1:2F44:454:1:C00000:0:0:0:
+#SERVICE 1:0:1:3148:459:1:C00000:0:0:0:
+#SERVICE 1:0:1:36:7:85:C00000:0:0:0:
+#SERVICE 1:0:1:307:7:85:C00000:0:0:0:
+#SERVICE 1:0:1:296:5:85:C00000:0:0:0:
+#SERVICE 1:0:1:383:21:85:C00000:0:0:0:
+#SERVICE 1:0:1:313C:459:1:C00000:0:0:0:
+#SERVICE 1:0:1:3159:459:1:C00000:0:0:0:
+#SERVICE 1:0:1:2E:21:85:C00000:0:0:0:
+#SERVICE 1:0:1:381:21:85:C00000:0:0:0:
+#SERVICE 1:64:7:0:0:0:0:0:0:0::High Definition
+#DESCRIPTION High Definition
+#SERVICE 1:0:19:6EEC:4B1:1:C00000:0:0:0:
+#SERVICE 1:0:19:EF12:421:1:C00000:0:0:0:
+#SERVICE 1:0:19:EF13:421:1:C00000:0:0:0:
+#SERVICE 1:64:0:0:0:0:0:0:0:0::Alternativen
+#DESCRIPTION Alternativen
+#SERVICE 1:0:1:6DCB:44D:1:C00000:0:0:0:
+#SERVICE 1:0:1:6E44:431:1:C00000:0:0:0:
+#SERVICE 1:0:1:6E45:431:1:C00000:0:0:0:
+#SERVICE 1:0:1:6E41:431:1:C00000:0:0:0:
+#SERVICE 1:0:1:6E40:431:1:C00000:0:0:0:
+#SERVICE 1:0:1:6E43:431:1:C00000:0:0:0:
+#SERVICE 1:0:1:6EE1:4B1:1:C00000:0:0:0:
+#SERVICE 1:0:1:6E2D:431:1:C00000:0:0:0:
+#SERVICE 1:0:1:6E2E:431:1:C00000:0:0:0:
+#SERVICE 1:0:1:6F46:445:1:C00000:0:0:0:
+#SERVICE 1:0:1:6E47:431:1:C00000:0:0:0:
+#SERVICE 1:0:1:6F76:457:1:C00000:0:0:0:
+#SERVICE 1:0:1:6E92:4B1:1:C00000:0:0:0:
+#SERVICE 1:0:1:6E93:4B1:1:C00000:0:0:0:
+#SERVICE 1:0:1:6F78:457:1:C00000:0:0:0:
+#SERVICE 1:0:1:6F79:457:1:C00000:0:0:0:
+#SERVICE 1:0:1:6E94:4B1:1:C00000:0:0:0:
+#SERVICE 1:0:1:6F77:457:1:C00000:0:0:0:
+#SERVICE 1:0:1:6EEB:4B1:1:C00000:0:0:0:
+#SERVICE 1:0:1:6E97:4B1:1:C00000:0:0:0:
+#SERVICE 1:0:1:6E96:4B1:1:C00000:0:0:0:
+#SERVICE 1:0:1:6E95:4B1:1:C00000:0:0:0:
+#SERVICE 1:64:8:0:0:0:0:0:0:0::Alternative SD services
+#DESCRIPTION Alternative SD services
+#SERVICE 1:0:1:6DCA:44D:1:C00000:0:0:0:
+#SERVICE 1:0:1:6D66:437:1:C00000:0:0:0:
+#SERVICE 1:0:1:7034:41B:1:C00000:0:0:0:
diff --git a/data/defaults/Dream/sdbouquets/Makefile.am b/data/defaults/Dream/sdbouquets/Makefile.am new file mode 100644 index 00000000..50328e55 --- /dev/null +++ b/data/defaults/Dream/sdbouquets/Makefile.am @@ -0,0 +1,4 @@ +installdir = $(pkgdatadir)/defaults/Dream/sdbouquets + +dist_install_DATA = \ + userbouquet.favourites.tv diff --git a/data/defaults/Dream/userbouquet.favourites.tv b/data/defaults/Dream/sdbouquets/userbouquet.favourites.tv index 5f89c48a..5f89c48a 100644 --- a/data/defaults/Dream/userbouquet.favourites.tv +++ b/data/defaults/Dream/sdbouquets/userbouquet.favourites.tv diff --git a/lib/python/Components/NimManager.py b/lib/python/Components/NimManager.py index 00d06095..745cc730 100644 --- a/lib/python/Components/NimManager.py +++ b/lib/python/Components/NimManager.py @@ -444,7 +444,7 @@ class SecConfigure: self.update() class NIM(object): - def __init__(self, slot, type, description, has_outputs = True, internally_connectable = None): + def __init__(self, slot, type, description, has_outputs = True, internally_connectable = None, multi_type = {}): self.slot = slot if type not in ("DVB-S", "DVB-C", "DVB-T", "DVB-S2", None): @@ -455,6 +455,7 @@ class NIM(object): self.description = description self.has_outputs = has_outputs self.internally_connectable = internally_connectable + self.multi_type = multi_type def isCompatible(self, what): compatible = { @@ -466,6 +467,9 @@ class NIM(object): } return what in compatible[self.type] + def getType(self): + return self.type + def connectableTo(self): connectable = { "DVB-S": ("DVB-S", "DVB-S2"), @@ -491,6 +495,13 @@ class NIM(object): def internallyConnectableTo(self): return self.internally_connectable + + def isMultiType(self): + return (len(self.multi_type) > 0) + + # returns dict {<slotid>: <type>} + def getMultiTypeList(self): + return self.multi_type slot_id = property(getSlotID) @@ -636,7 +647,15 @@ class NimManager: entries[current_slot]["has_outputs"] = (input == "yes") elif line.strip().startswith("Internally_Connectable:"): input = int(line.strip()[len("Internally_Connectable:") + 1:]) - entries[current_slot]["internally_connectable"] = input + entries[current_slot]["internally_connectable"] = input + elif line.strip().startswith("Mode"): + # "Mode 0: DVB-T" -> ["Mode 0", " DVB-T"] + split = line.strip().split(":") + # "Mode 0" -> ["Mode, "0"] + split2 = split[0].split(" ") + modes = entries[current_slot].get("multi_type", {}) + modes[split2[1]] = split[1].strip() + entries[current_slot]["multi_type"] = modes elif line.strip().startswith("empty"): entries[current_slot]["type"] = None entries[current_slot]["name"] = _("N/A") @@ -650,12 +669,17 @@ class NimManager: entry["has_outputs"] = True if not (entry.has_key("internally_connectable")): entry["internally_connectable"] = None - self.nim_slots.append(NIM(slot = id, description = entry["name"], type = entry["type"], has_outputs = entry["has_outputs"], internally_connectable = entry["internally_connectable"])) + if not (entry.has_key("multi_type")): + entry["multi_type"] = {} + self.nim_slots.append(NIM(slot = id, description = entry["name"], type = entry["type"], has_outputs = entry["has_outputs"], internally_connectable = entry["internally_connectable"], multi_type = entry["multi_type"])) def hasNimType(self, chktype): for slot in self.nim_slots: if slot.isCompatible(chktype): return True + for type in slot.getMultiTypeList().values(): + if chktype == type: + return True return False def getNimType(self, slotid): @@ -1218,11 +1242,28 @@ def InitNimManager(nimmgr): slot_id = configElement.slot_id if nimmgr.nim_slots[slot_id].description == 'Alps BSBE2': open("/proc/stb/frontend/%d/tone_amplitude" %(fe_id), "w").write(configElement.value) + + def tunerTypeChanged(configElement): + fe_id = configElement.fe_id + open("/proc/stb/frontend/%d/mode" % (fe_id), "w").write(configElement.value) empty_slots = 0 for slot in nimmgr.nim_slots: x = slot.slot nim = config.Nims[x] + if slot.isMultiType(): + typeList = [] + value = None + for id in slot.getMultiTypeList().keys(): + type = slot.getMultiTypeList()[id] + typeList.append((id, type)) + if type == slot.getType(): + value = id + nim.multiType = ConfigSelection(typeList, "0") + nim.multiType.value = value + nim.multiType.fe_id = x - empty_slots + nim.multiType.addNotifier(tunerTypeChanged) + if slot.isCompatible("DVB-S"): nim.toneAmplitude = ConfigSelection([("9", "600mV"), ("8", "700mV"), ("7", "800mV"), ("6", "900mV"), ("5", "1100mV")], "7") nim.toneAmplitude.fe_id = x - empty_slots diff --git a/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp b/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp index 0372c497..2ba53927 100644 --- a/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp +++ b/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp @@ -85,12 +85,9 @@ RESULT eServiceFactoryDVD::offlineOperations(const eServiceReference &, ePtr<iSe DEFINE_REF(eServiceDVD); eServiceDVD::eServiceDVD(eServiceReference ref): - m_ref(ref), - m_ddvdconfig(ddvd_create()), - m_subtitle_widget(0), - m_state(stIdle), - m_current_trick(0), - m_pump(eApp, 1) + m_ref(ref), m_ddvdconfig(ddvd_create()), m_subtitle_widget(0), m_state(stIdle), + m_current_trick(0), m_pump(eApp, 1), m_width(-1), m_height(-1), + m_aspect(-1), m_framerate(-1), m_progressive(-1) { int aspect = DDVD_16_9; int policy = DDVD_PAN_SCAN; @@ -309,6 +306,32 @@ void eServiceDVD::gotMessage(int /*what*/) m_event(this, evSeekableStatusChanged); m_event(this, evUser+12); break; +#ifdef DDVD_SUPPORTS_PICTURE_INFO + case DDVD_SIZE_CHANGED: + { + int changed = m_width != -1 && m_height != -1 && m_aspect != -1; + ddvd_get_last_size(m_ddvdconfig, &m_width, &m_height, &m_aspect); + if (changed) + m_event((iPlayableService*)this, evVideoSizeChanged); + break; + } + case DDVD_PROGRESSIVE_CHANGED: + { + int changed = m_progressive != -1; + ddvd_get_last_progressive(m_ddvdconfig, &m_progressive); + if (changed) + m_event((iPlayableService*)this, evVideoProgressiveChanged); + break; + } + case DDVD_FRAMERATE_CHANGED: + { + int changed = m_framerate != -1; + ddvd_get_last_framerate(m_ddvdconfig, &m_framerate); + if (changed) + m_event((iPlayableService*)this, evVideoFramerateChanged); + break; + } +#endif default: break; } @@ -500,6 +523,18 @@ int eServiceDVD::getInfo(int w) case sUser+7: case sUser+8: return resIsPyObject; +#ifdef DDVD_SUPPORTS_PICTURE_INFO + case sVideoWidth: + return m_width; + case sVideoHeight: + return m_height; + case sAspect: + return m_aspect; + case sProgressive: + return m_progressive; + case sFrameRate: + return m_framerate; +#endif default: return resNA; } diff --git a/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.h b/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.h index c730d501..c751a394 100644 --- a/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.h +++ b/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.h @@ -127,6 +127,8 @@ private: void loadCuesheet(); void saveCuesheet(); + + int m_width, m_height, m_aspect, m_framerate, m_progressive; }; #endif diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py index ca9ba550..f98d4c33 100644 --- a/lib/python/Screens/InfoBarGenerics.py +++ b/lib/python/Screens/InfoBarGenerics.py @@ -487,7 +487,7 @@ class InfoBarEPG: self["EPGActions"] = HelpableActionMap(self, "InfobarEPGActions", { "showEventInfo": (self.openEventView, _("show EPG...")), - "showEventInfoPlugin": (self.showEventInfoPlugins, _("show single service EPG...")), + "showEventInfoPlugin": (self.showEventInfoPlugins, _("list of EPG views...")), "showInfobarOrEpgWhenInfobarAlreadyVisible": self.showEventInfoWhenNotVisible, }) @@ -1110,15 +1110,21 @@ class InfoBarPVRState: self.pvrStateDialog.hide() else: self._mayShow() - class InfoBarTimeshiftState(InfoBarPVRState): def __init__(self): InfoBarPVRState.__init__(self, screen=TimeshiftState, force_show = True) + self.__hideTimer = eTimer() + self.__hideTimer.callback.append(self.__hideTimeshiftState) def _mayShow(self): - if self.execing and self.timeshift_enabled and self.seekstate != self.SEEK_STATE_PLAY: + if self.execing and self.timeshift_enabled: self.pvrStateDialog.show() + if self.seekstate == self.SEEK_STATE_PLAY and not self.shown: + self.__hideTimer.start(5*1000, True) + + def __hideTimeshiftState(self): + self.pvrStateDialog.hide() class InfoBarShowMovies: diff --git a/lib/python/Screens/Satconfig.py b/lib/python/Screens/Satconfig.py index 7fdfc2fd..7ba3a134 100644 --- a/lib/python/Screens/Satconfig.py +++ b/lib/python/Screens/Satconfig.py @@ -58,7 +58,7 @@ class NimSetup(Screen, ConfigListScreen, ServiceStopScreen): def createConfigMode(self): if self.nim.isCompatible("DVB-S"): - choices = { "nothing": _("nothing connected"), + choices = { "nothing": _("not configured"), "simple": _("simple"), "advanced": _("advanced")} #if len(nimmanager.getNimListOfType(nimmanager.getNimType(self.slotid), exception = x)) > 0: @@ -76,6 +76,7 @@ class NimSetup(Screen, ConfigListScreen, ServiceStopScreen): print "Creating setup" self.list = [ ] + self.multiType = None self.configMode = None self.diseqcModeEntry = None self.advancedSatsEntry = None @@ -94,6 +95,11 @@ class NimSetup(Screen, ConfigListScreen, ServiceStopScreen): self.advancedType = None self.advancedManufacturer = None self.advancedSCR = None + + if self.nim.isMultiType(): + multiType = self.nimConfig.multiType + self.multiType = getConfigListEntry(_("Tuner type"), multiType) + self.list.append(self.multiType) if self.nim.isCompatible("DVB-S"): self.configMode = getConfigListEntry(_("Configuration Mode"), self.nimConfig.configMode) @@ -200,10 +206,17 @@ class NimSetup(Screen, ConfigListScreen, ServiceStopScreen): self.advancedLnbsEntry, self.advancedDiseqcMode, self.advancedUsalsEntry, \ self.advancedLof, self.advancedPowerMeasurement, self.turningSpeed, \ self.advancedType, self.advancedSCR, self.advancedManufacturer, self.advancedUnicable, \ - self.uncommittedDiseqcCommand, self.cableScanType) + self.uncommittedDiseqcCommand, self.cableScanType, self.multiType) + if self["config"].getCurrent() == self.multiType: + nimmanager.enumerateNIMs() + from Components.NimManager import InitNimManager + InitNimManager(nimmanager) + self.nim = nimmanager.nim_slots[self.slotid] + self.nimConfig = self.nim.config for x in checkList: if self["config"].getCurrent() == x: self.createSetup() + break def run(self): if self.have_advanced and self.nim.config_mode == "advanced": @@ -482,7 +495,7 @@ class NimSelection(Screen): "satposdepends": _("second cable of motorized LNB") } [nimConfig.configMode.value] text += " " + _("Tuner") + " " + ["A", "B", "C", "D"][int(nimConfig.connectedTo.value)] elif nimConfig.configMode.value == "nothing": - text = _("nothing connected") + text = _("not configured") elif nimConfig.configMode.value == "simple": if nimConfig.diseqcMode.value in ("single", "toneburst_a_b", "diseqc_a_b", "diseqc_a_b_c_d"): text = {"single": _("Single"), "toneburst_a_b": _("Toneburst A/B"), "diseqc_a_b": _("DiSEqC A/B"), "diseqc_a_b_c_d": _("DiSEqC A/B/C/D")}[nimConfig.diseqcMode.value] + "\n" @@ -519,6 +532,8 @@ class NimSelection(Screen): text = _("nothing connected") elif nimConfig.configMode.value == "enabled": text = _("enabled") + if x.isMultiType(): + text = _("Switchable tuner types:") + "(" + ','.join(x.getMultiTypeList().values()) + ")" + "\n" + text self.list.append((slotid, x.friendly_full_description, text, x)) self["nimlist"].setList(self.list) diff --git a/po/Makefile.am b/po/Makefile.am index 9ca79016..ba044409 100755 --- a/po/Makefile.am +++ b/po/Makefile.am @@ -9,11 +9,13 @@ LANGS := $(shell cat $(srcdir)/LINGUAS) LANGPO := $(foreach LANG, $(LANGS),$(LANG).po) LANGMO := $(foreach LANG, $(LANGS),$(LANG).mo) -default: enigma2.pot $(LANGPO) merge $(LANGMO) +default: enigma2.pot $(LANGMO) for lang in $(LANGS); do \ mkdir -p $$lang/LC_MESSAGES; \ cp $$lang.mo $$lang/LC_MESSAGES/enigma2.mo; \ done + +rebuild: clean cleanall enigma2.pot $(LANGPO) merge default merge: for lang in $(LANGS); do \ @@ -37,9 +39,6 @@ enigma2.pot: $(RM) enigma2.pot mv enigma2uniq.pot enigma2.pot -.PHONY: enigma2.pot - - %.mo: %.po $(MSGFMT) -o $@ $< @@ -48,6 +47,9 @@ enigma2.pot: CLEANFILES = $(foreach LANG, $(LANGS),$(LANG).mo) +cleanall: + $(RM) enigma2.pot + clean-local: $(RM) -r $(LANGS) |
