+ def doChangeChannel(self, _sid, _tsid):
+ root = eServiceReference(service_types_tv)
+ if root is None:
+ return False
+ serviceList = eServiceCenter.getInstance().list(root)
+ if serviceList is None:
+ return False
+ while True:
+ service = serviceList.getNext()
+ if service is None or not service.valid():
+ break
+
+ #1:0:19:2840:3FB:1:C00000:0:0:0:
+ serviceRef = service.toString()
+ if strIsEmpty(serviceRef):
+ continue
+ serviceRefItems = serviceRef.split(":")
+ if len(serviceRefItems) < 5:
+ continue
+
+ sid = serviceRefItems[3]
+ tsid = serviceRefItems[4]
+ if sid == _sid and tsid == _tsid:
+ self._session.nav.playService(eServiceReference(serviceRef))
+ service = self._session.nav.getCurrentlyPlayingServiceReference()
+ setBeforeService(service)
+ return True
+ return False
+