def __init__(self, omxArgs): self.media = None self.plex = PlexInterface() self.omx = None self.omxArgs = omxArgs self.cgcmd = CGCommands();
def __init__(self, omxArgs): self.media = None self.plex = PlexInterface() self.omx = None self.omxArgs = omxArgs
class xbmcCommands: def __init__(self, omxArgs): self.media = None self.plex = PlexInterface() self.omx = None self.omxArgs = omxArgs self.cgcmd = CGCommands(); def PlayMedia(self, fullpath, tag, unknown1, unknown2, unknown3): global parsed_path global media_key global duration parsed_path = urlparse(fullpath) media_path = parsed_path.scheme + "://" + parsed_path.netloc + tag self.media = self.plex.getMedia(media_path) print 'mediapath', media_path if(self.omx): self.Stop() transcodeURL = self.media.getTranscodeURL() f = urllib2.urlopen(transcodeURL) rawXML = f.read() f.close() for line in string_to_lines(rawXML): line = line.strip() if line.startswith("#"): sessionURL = "" else: sessionURL = self.media.getTranscodeSessionURL() + line self.cgcmd.SendPlay(sessionURL) def Pause(self, message): self.cgcmd.SendCommand(40); def Play(self, message): self.cgcmd.SendCommand(39); def Stop(self, message): self.cgcmd.SendCommand(41); def Up(self, message): self.cgcmd.SendCommand(19); def Down(self, message): self.cgcmd.SendCommand(20); def Left(self, message): self.cgcmd.SendCommand(21); def Right(self, message): self.cgcmd.SendCommand(22); def ContextMenu(self, message): self.cgcmd.SendCommand(17); def ParentDir(self, message): self.cgcmd.SendCommand(24); def Select(self, message): self.cgcmd.SendCommand(23); def OSD(self, message): self.cgcmd.SendCommand(2); def getMilliseconds(self,s): hours, minutes, seconds = (["0", "0"] + ("%s" % s).split(":"))[-3:] hours = int(hours) minutes = int(minutes) seconds = float(seconds) miliseconds = int(3600000 * hours + 60000 * minutes + 1000 * seconds) return miliseconds def getPosMilli(self): return self.getMilliseconds(self.omx.position) def setPlayed(self): self.media.setPlayed() def isFinished(self): if(self.omx): finished = self.omx.finished else: finished = True return finished def isRunning(self): if(self.omx): return True return False def updatePosition(self): if self.isFinished(): if (self.getPosMilli() > (self.media.duration * .95)): self.setPlayed() self.Stop() else: self.media.updatePosition(self.getPosMilli())
class xbmcCommands: def __init__(self, omxArgs): self.media = None self.plex = PlexInterface() self.omx = None self.omxArgs = omxArgs def PlayMedia(self, fullpath, tag, unknown1, unknown2, unknown3): global parsed_path global media_key global duration parsed_path = urlparse(fullpath) media_path = parsed_path.scheme + "://" + parsed_path.netloc + tag self.media = self.plex.getMedia(media_path) #print 'mediapath', mediapath if(self.omx): self.Stop() transcodeURL = self.media.getTranscodeURL() print transcodeURL self.omx = OMXPlayer(transcodeURL, args=self.omxArgs, start_playback=True) def Pause(self, message): if(self.omx): self.omx.set_speed(1) self.omx.toggle_pause() def Play(self, message): if(self.omx): ret = self.omx.set_speed(1) if(ret == 0): self.omx.toggle_pause() def Stop(self, message=""): if(self.omx): self.omx.stop() self.omx = None def stopPyplex(self, message): self.Stop() global service pygame.quit() exit() def SkipNext(self, message = None): if(self.omx): self.omx.increase_speed() def SkipPrevious(self, message = None): if(self.omx): self.omx.decrease_speed() def StepForward(self, message = None): if(self.omx): self.omx.increase_speed() def StepBack(self, message = None): if(self.omx): self.omx.decrease_speed() def BigStepForward(self, message = None): if(self.omx): self.omx.jump_fwd_600() def BigStepBack(self, message = None): if(self.omx): self.omx.jump_rev_600() def getMilliseconds(self,s): hours, minutes, seconds = (["0", "0"] + ("%s" % s).split(":"))[-3:] hours = int(hours) minutes = int(minutes) seconds = float(seconds) miliseconds = int(3600000 * hours + 60000 * minutes + 1000 * seconds) return miliseconds def getPosMilli(self): return self.getMilliseconds(self.omx.position) def setPlayed(self): self.media.setPlayed() def isFinished(self): if(self.omx): finished = self.omx.finished else: finished = True return finished def isRunning(self): if(self.omx): return True return False def updatePosition(self): if self.isFinished(): if (self.getPosMilli() > (self.media.duration * .95)): self.setPlayed() self.Stop() else: self.media.updatePosition(self.getPosMilli())