コード例 #1
0
ファイル: player.py プロジェクト: golaizola/freevo1
 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()
コード例 #2
0
ファイル: player.py プロジェクト: golaizola/freevo1
 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
コード例 #3
0
ファイル: player.py プロジェクト: golaizola/freevo1
 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()
コード例 #4
0
ファイル: player.py プロジェクト: golaizola/freevo1
 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
コード例 #5
0
ファイル: player.py プロジェクト: golaizola/freevo1
    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()
コード例 #6
0
ファイル: player.py プロジェクト: golaizola/freevo1
 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()
コード例 #7
0
ファイル: player.py プロジェクト: golaizola/freevo1
 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()
コード例 #8
0
ファイル: player.py プロジェクト: golaizola/freevo1
 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()
コード例 #9
0
ファイル: player.py プロジェクト: golaizola/freevo1
 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()
コード例 #10
0
ファイル: player.py プロジェクト: golaizola/freevo1
    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()
コード例 #11
0
ファイル: player.py プロジェクト: golaizola/freevo1
 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()
コード例 #12
0
ファイル: player.py プロジェクト: golaizola/freevo1
 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()
コード例 #13
0
ファイル: player.py プロジェクト: golaizola/freevo1
    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()
コード例 #14
0
ファイル: detachdialog.py プロジェクト: golaizola/freevo1
 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()
コード例 #15
0
ファイル: player.py プロジェクト: golaizola/freevo1
    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()
コード例 #16
0
ファイル: player.py プロジェクト: golaizola/freevo1
    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
コード例 #17
0
    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()
コード例 #18
0
ファイル: player.py プロジェクト: golaizola/freevo1
    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