def pause(self): logger.debug('pause()') self.paused = not self.paused if self.visible and self.dialog: if self.paused: self.dialog = audio.show_play_state(dialog.PLAY_STATE_PAUSE, self.item, self.get_time_info) else: self.dialog = audio.show_play_state(dialog.PLAY_STATE_PLAY, self.item, self.get_time_info) self.dialog.show()
def seek(self, dir): logger.debug('seek(dir=%r)', dir) self.paused = False if self.visible and self.dialog: if dir > 0: self.dialog = audio.show_play_state(dialog.PLAY_STATE_FFORWARD, self.item, self.get_time_info) else: self.dialog = audio.show_play_state(dialog.PLAY_STATE_REWIND, self.item, self.get_time_info) self.dialog.show() self.seeking = 2
def stop(self, restore_menu=False): logger.debug('stop(restore_menu=%r)', restore_menu) if self.visible and self.dialog and restore_menu: self.dialog = audio.show_play_state(dialog.PLAY_STATE_STOP, self.item, self.get_time_info) self.dialog.show() global _player_ _player_ = None self.player.stop() self.running = False if self.visible: rc.remove_app(self.player) if restore_menu: skin.draw('player', self.item, transition=skin.TRANSITION_OUT) self.visible = False if self.dialog: self.dialog.hide() self.dialog.finish() self.dialog = None if self.menuw and not self.menuw.visible and restore_menu: self.menuw.show()
def prev(self): logger.debug('prev()') self.paused = False if self.visible and self.dialog: self.dialog = audio.show_play_state(dialog.PLAY_STATE_SEEK_BACK, self.item, self.get_time_info) self.dialog.show()
def next(self): logger.debug('next()') self.paused = False if self.visible and self.dialog: self.dialog = audio.show_play_state(dialog.PLAY_STATE_SEEK_FORWARD, self.item, self.get_time_info) self.dialog.show()
def show(self): logger.debug('show() self.visible=%r', self.visible) if not self.visible: self.visible = True self.refresh() rc.add_app(self.player) if self.dialog: self.dialog.show() elif dialog.is_dialog_supported(): if self.paused: self.dialog = audio.show_play_state(dialog.PLAY_STATE_PAUSE, self.item, self.get_time_info) else: self.dialog = audio.show_play_state(dialog.PLAY_STATE_PLAY, self.item, self.get_time_info) self.dialog.show()
def show(self): logger.debug('show() self.visible=%r', self.visible) if not self.visible: self.visible = True self.refresh() rc.add_app(self.player) if self.dialog: self.dialog.show() elif dialog.is_dialog_supported(): if self.paused: self.dialog = audio.show_play_state( dialog.PLAY_STATE_PAUSE, self.item, self.get_time_info) else: self.dialog = audio.show_play_state( dialog.PLAY_STATE_PLAY, self.item, self.get_time_info) self.dialog.show()
def play(self, player=None): logger.debug('%s.play(player=%r)', self.__module__, player) global _player_ if _player_ and _player_.player and _player_.player.is_playing(): _player_.stop() _player_ = self if self.player and self.player.is_playing(): self.stop() if player: self.player = player else: self.possible_players = [] for p in plugin.getbyname(plugin.AUDIO_PLAYER, True): rating = p.rate(self.item) * 10 if config.AUDIO_PREFERED_PLAYER == p.name: rating += 1 if hasattr( self.item, 'force_player') and p.name == self.item.force_player: rating += 100 if (rating, p) not in self.possible_players: self.possible_players += [(rating, p)] self.possible_players = filter(lambda l: l[0] > 0, self.possible_players) self.possible_players.sort(lambda l, o: -cmp(l[0], o[0])) if len(self.possible_players) > 0: self.player_rating, self.player = self.possible_players[0] if self.menuw and self.menuw.visible and self.visible: self.menuw.hide(clear=False) self.running = True error = self.player.play(self.item, self) if error: print error self.running = False if self.visible: rc.remove_app(self.player) self.item.eventhandler(PLAY_END) else: self.paused = False if self.visible and dialog.is_dialog_supported(): self.dialog = audio.show_play_state(dialog.PLAY_STATE_PLAY, self.item, self.get_time_info) self.dialog.show() if self.visible: rc.add_app(self.player) self.refresh()
def show(self): """ Used when showing the dialog """ logger.log(9, 'show()') self.player = audio.player.get() if self.player and self.detached: self.dialog = audio.show_play_state(dialog.PLAY_STATE_PLAY, self.player.item, self.get_time_info, type='play_state_mini') self.dialog.show()
def play(self, player=None): logger.debug('%s.play(player=%r)', self.__module__, player) global _player_ if _player_ and _player_.player and _player_.player.is_playing(): _player_.stop() _player_ = self if self.player and self.player.is_playing(): self.stop() if player: self.player = player else: self.possible_players = [] for p in plugin.getbyname(plugin.AUDIO_PLAYER, True): rating = p.rate(self.item) * 10 if config.AUDIO_PREFERED_PLAYER == p.name: rating += 1 if hasattr(self.item, 'force_player') and p.name == self.item.force_player: rating += 100 if (rating, p) not in self.possible_players: self.possible_players += [(rating, p)] self.possible_players = filter(lambda l: l[0] > 0, self.possible_players) self.possible_players.sort(lambda l, o: -cmp(l[0], o[0])) if len(self.possible_players) > 0: self.player_rating, self.player = self.possible_players[0] if self.menuw and self.menuw.visible and self.visible: self.menuw.hide(clear=False) self.running = True error = self.player.play(self.item, self) if error: print error self.running = False if self.visible: rc.remove_app(self.player) self.item.eventhandler(PLAY_END) else: self.paused = False if self.visible and dialog.is_dialog_supported(): self.dialog = audio.show_play_state(dialog.PLAY_STATE_PLAY, self.item, self.get_time_info) self.dialog.show() if self.visible: rc.add_app(self.player) self.refresh()
def refresh(self): """ Give information to the skin """ logger.log(8, 'refresh() visible=%r running=%r', self.visible, self.running) if not self.visible: return if not self.running: return # Calculate some new values if not self.item.length: self.item.remain = 0 else: self.item.remain = self.item.length - self.item.elapsed if self.first_drawing: transition = skin.TRANSITION_IN self.first_drawing = False else: transition = skin.TRANSITION_NONE skin.draw('player', self.item, transition=transition) if self.visible and self.dialog and self.seeking >= 0: if self.seeking > 0: self.seeking = self.seeking - 1 return if self.paused: self.dialog = audio.show_play_state(dialog.PLAY_STATE_PAUSE, self.item, self.get_time_info) else: self.dialog = audio.show_play_state(dialog.PLAY_STATE_PLAY, self.item, self.get_time_info) self.dialog.show() self.seeking = -1
def refresh(self): """ Give information to the skin """ logger.log( 8, 'refresh() visible=%r running=%r', self.visible, self.running) if not self.visible: return if not self.running: return # Calculate some new values if not self.item.length: self.item.remain = 0 else: self.item.remain = self.item.length - self.item.elapsed if self.first_drawing: transition = skin.TRANSITION_IN self.first_drawing = False else: transition = skin.TRANSITION_NONE skin.draw('player', self.item, transition=transition) if self.visible and self.dialog and self.seeking >= 0: if self.seeking > 0: self.seeking = self.seeking - 1 return if self.paused: self.dialog = audio.show_play_state(dialog.PLAY_STATE_PAUSE, self.item, self.get_time_info) else: self.dialog = audio.show_play_state(dialog.PLAY_STATE_PLAY, self.item, self.get_time_info) self.dialog.show() self.seeking = -1