X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/6f73e6abddf4170357c490966d0e1c622eb376f5..37b5c400229659a35cab2052f8d9c3bf12d677f3:/lib/python/Screens/ChannelSelection.py diff --git a/lib/python/Screens/ChannelSelection.py b/lib/python/Screens/ChannelSelection.py index d640ac25..64ae5492 100644 --- a/lib/python/Screens/ChannelSelection.py +++ b/lib/python/Screens/ChannelSelection.py @@ -5,7 +5,7 @@ from Components.Button import Button from Components.ServiceList import ServiceList from Components.ActionMap import NumberActionMap, ActionMap, HelpableActionMap from Components.MenuList import MenuList -from Components.ServiceEventTracker import ServiceEventTracker +from Components.ServiceEventTracker import ServiceEventTracker, InfoBarBase profile("ChannelSelection.py 1") from EpgSelection import EPGSelection from enigma import eServiceReference, eEPGCache, eServiceCenter, eRCInput, eTimer, eDVBDB, iPlayableService, iServiceInformation, getPrevAsciiCode @@ -14,12 +14,10 @@ from Tools.NumericalTextInput import NumericalTextInput profile("ChannelSelection.py 2") from Components.NimManager import nimmanager profile("ChannelSelection.py 2.1") -from Components.Sources.Source import ObsoleteSource -profile("ChannelSelection.py 2.2") from Components.Sources.RdsDecoder import RdsDecoder -profile("ChannelSelection.py 2.3") +profile("ChannelSelection.py 2.2") from Components.Sources.ServiceEvent import ServiceEvent -profile("ChannelSelection.py 2.4") +profile("ChannelSelection.py 2.3") from Components.Input import Input profile("ChannelSelection.py 3") from Components.ParentalControl import parentalControl @@ -114,6 +112,8 @@ class ChannelContextMenu(Screen): else: append_when_current_valid(current, menu, (_("add service to favourites"), self.addServiceToBouquetSelected), level = 0) else: + if current_root.getPath().find('FROM SATELLITES') != -1: + append_when_current_valid(current, menu, (_("remove selected satellite"), self.removeSatelliteServices), level = 0) if haveBouquets: if not inBouquet and current_sel_path.find("PROVIDERS") == -1: append_when_current_valid(current, menu, (_("copy to bouquets"), self.copyCurrentToBouquetList), level = 0) @@ -207,6 +207,17 @@ class ChannelContextMenu(Screen): if recursive: self.close(False) + def removeSatelliteServices(self): + curpath = self.csel.getCurrentSelection().getPath() + idx = curpath.find("satellitePosition == ") + if idx != -1: + tmp = curpath[idx+21:] + idx = tmp.find(')') + if idx != -1: + satpos = int(tmp[:idx]) + eDVBDB.getInstance().removeServices(-1, -1, -1, satpos) + self.close() + def copyCurrentToBouquetList(self): self.csel.copyCurrentToBouquetList() self.close() @@ -420,10 +431,10 @@ class ChannelSelectionEdit: if mutableBouquetList: if self.mode == MODE_TV: bName += " (TV)" - str = '1:7:1:0:0:0:0:0:0:0:(type == 1) FROM BOUQUET \"userbouquet.%s.tv\" ORDER BY bouquet'%(self.buildBouquetID(bName)) + str = '1:7:1:0:0:0:0:0:0:0:FROM BOUQUET \"userbouquet.%s.tv\" ORDER BY bouquet'%(self.buildBouquetID(bName)) else: bName += " (Radio)" - str = '1:7:2:0:0:0:0:0:0:0:(type == 2) FROM BOUQUET \"userbouquet.%s.radio\" ORDER BY bouquet'%(self.buildBouquetID(bName)) + str = '1:7:2:0:0:0:0:0:0:0:FROM BOUQUET \"userbouquet.%s.radio\" ORDER BY bouquet'%(self.buildBouquetID(bName)) new_bouquet_ref = eServiceReference(str) if not mutableBouquetList.addService(new_bouquet_ref): mutableBouquetList.flushChanges() @@ -631,7 +642,7 @@ MODE_TV = 0 MODE_RADIO = 1 # this makes it much simple to implement a selectable radio or tv mode :) -service_types_tv = '1:7:1:0:0:0:0:0:0:0:(type == 1) || (type == 17) || (type == 195) || (type == 25)' +service_types_tv = '1:7:1:0:0:0:0:0:0:0:(type == 1) || (type == 17) || (type == 195) || (type == 25) || (type == 134)' service_types_radio = '1:7:2:0:0:0:0:0:0:0:(type == 2)' class ChannelSelectionBase(Screen): @@ -997,14 +1008,6 @@ class ChannelSelectionBase(Screen): return self.servicelist.getCurrent() def setCurrentSelection(self, service): - servicepath = service.getPath() - pos = servicepath.find(" FROM BOUQUET") - if pos != -1: - if self.mode == MODE_TV: - servicepath = '(type == 1)' + servicepath[pos:] - else: - servicepath = '(type == 2)' + servicepath[pos:] - service.setPath(servicepath) self.servicelist.setCurrent(service) def getBouquetList(self): @@ -1075,8 +1078,6 @@ class ChannelSelection(ChannelSelectionBase, ChannelSelectionEdit, ChannelSelect ChannelSelectionEPG.__init__(self) SelectionEventInfo.__init__(self) - self["CurrentTime"] = ObsoleteSource(new_source = "global.CurrentTime", removal_date = "2008-01") - self["actions"] = ActionMap(["OkCancelActions", "TvRadioActions"], { "cancel": self.cancel, @@ -1329,25 +1330,19 @@ class ChannelSelection(ChannelSelectionBase, ChannelSelectionEdit, ChannelSelect self.asciiOff() self.close(None) -from Screens.InfoBarGenerics import InfoBarEvent, InfoBarServiceName - -class RadioInfoBar(Screen, InfoBarEvent, InfoBarServiceName): +class RadioInfoBar(Screen): def __init__(self, session): Screen.__init__(self, session) - InfoBarEvent.__init__(self) - InfoBarServiceName.__init__(self) - self["CurrentTime"] = ObsoleteSource(new_source = "global.CurrentTime", removal_date = "2008-01") self["RdsDecoder"] = RdsDecoder(self.session.nav) - self["BlinkingPoint"] = Pixmap() - self["BlinkingPoint"].hide() -class ChannelSelectionRadio(ChannelSelectionBase, ChannelSelectionEdit, ChannelSelectionEPG): +class ChannelSelectionRadio(ChannelSelectionBase, ChannelSelectionEdit, ChannelSelectionEPG, InfoBarBase): ALLOW_SUSPEND = True def __init__(self, session, infobar): ChannelSelectionBase.__init__(self, session) ChannelSelectionEdit.__init__(self) ChannelSelectionEPG.__init__(self) + InfoBarBase.__init__(self) self.infobar = infobar self.onLayoutFinish.append(self.onCreate)