def upnp_ready(self): self.av_trans.set_variable("TransportState", "NO_MEDIA_PRESENT") self.av_trans.set_variable("TransportStatus", "OK") self.av_trans.set_variable("TransportPlaySpeed", 1) self.av_trans.set_variable("NumberOfTracks", 0) self.av_trans.set_variable("CurrentMediaDuration", format_duration(0)) self.av_trans.set_variable("AVTransportURI", "") self.av_trans.set_variable("AVTransportURIMetaData", "") self.av_trans.set_variable("NextAVTransportURI", "") self.av_trans.set_variable("NextAVTransportURIMetaData", "") self.av_trans.set_variable("PlaybackStorageMedium", "NONE") self.av_trans.set_variable("RecordStorageMedium", "NOT_IMPLEMENTED") self.av_trans.set_variable("RecordMediumWriteStatus", "NOT_IMPLEMENTED") self.render_ctl.set_variable("Volume", 100)
def handle_AVT_Seek(self, service, action, args): if self.av_trans.variable("TransportState").value() not in ["PLAYING", "STOPPED", "PAUSED_PLAYBACK"]: return 701 target = parse_duration(args['Target']) if args['Unit'] == "ABS_TIME": # for now assume it is absolute #TODO correct for relative time pass if target > parse_duration(self.av_trans.variable("CurrentTrackDuration").value()): pass # return 711 self.av_trans.set_variable("AbsoluteTimePosition", format_duration(target)) self.do_action("seek", target) return True
def set_media_duration(self, duration): self.av_trans.set_variable("CurrentMediaDuration", format_duration(duration)) self.av_trans.set_variable("CurrentTrackDuration", format_duration(duration))
def set_media_position(self, position): self.av_trans.set_variable("AbsoluteTimePosition", format_duration(position))