Exemple #1
0
 def __init__(self):
     Player.__init__(self, 'audioplayer')
     WPlayer.__init__(self)
     self._getitems_keywords['edit_list'] = self._get_edit_list
     self._getitems_keywords['title'] = self._get_title
     self._getitems_keywords['artist'] = self._get_artist
     self._getitems_keywords['album'] = self._get_album
     self._getitems_keywords['track'] = self._get_track
     self.tasks.update({
         'show_help_playlist': Task(self._show_help_playlist),
         'hide_help_playlist': Task(self._hide_help_playlist)
     })
     self.set_items([], 'edit_list')
     self.eventhandler = AudioEventHandler(self)
     self.available_choices.append('edit_list')
     self._old_played_dt = None
     self._old_played = None
     self._current_played = None
     for sig in AudioPlayer.caching_sig:
         louie_connect(receiver=self._callback_fill_list,
                       sender='audio',
                       signal=sig)
     self._status_change_callback.task._considered_idle = True
     self._start_playing.task._considered_idle = True
     self.update_media_info.task._considered_idle = True
     return None
Exemple #2
0
 def _status_change_callback(self, status):
     log.info('status changed: %s', status)
     WPlayer._status_change_callback(self, status)
     if not self._start_playing.task.running and self.old_status == 'playing' and self.stopped:
         if self.repeat_mode:
             if self.repeat_mode == 'track':
                 try:
                     WPlayer.play(self,
                                  self.get_item_list('main_list').selected)
                 except OverflowError:
                     PRINT_EXCEPTION(stop=True)
             else:
                 if self._check_exception():
                     self.stack.close_player()
                 if not self.select(1, end_reached=True):
                     if self.repeat_mode == 'all':
                         old_pos = self.selected_pos
                         self.select(0, force_pos=True, end_reached=True)
                         if self.selected_pos == old_pos:
                             self._start_playing()
                     else:
                         self.stack.close_player()
         else:
             if self._check_exception():
                 self.stack.close_player()
             elif self.playmode == 'track':
                 self.stack.close_player()
             elif self.playmode == 'all':
                 if not self.select(1, end_reached=True):
                     self.stack.close_player()
         log.debug('end status changed')
     return None
Exemple #3
0
 def __init__(self, type_='videoplayer'):
     Player.__init__(self, type_=type_)
     WPlayer.__init__(self)
     self.eventhandler = VideoEventHandler(self)
     self._getitems_keywords['hd_info_icon'] = self._get_hd_info_icon
     self._getitems_keywords['snd_info_icon'] = self._get_snd_info_icon
     self.subserver = pygui_globs['subserver']
     self.subtitles_textblock = None
     self.cur_subs_size = config.user_config['video']['subtitles_size']
     self.playmode = 'all'
     return None
Exemple #4
0
 def _start_playing(self):
     log.debug('start playing...')
     try:
         sel = self.get_item_list('main_list').selected
         log.info('Start playing %s', sel)
         WPlayer.play(self, sel, show_loading=True)
     except Exception, e:
         PRINT_EXCEPTION(e)
         log.debug('Player unable to load/read selected item')
         if not self.select(1):
             pygui_globs['menustack'].close_player()
Exemple #5
0
 def _start_playing(self):
     log.debug('start playing...')
     sel = self.get_item_list('main_list').selected
     if sel.player != self:
         log.debug('Switching players %s <> %s', sel.player, self)
         self.stop()
         sel.player.play(sel, self.choices)
     else:
         try:
             WPlayer.play(self, sel, show_loading=False)
         except:
             PRINT_EXCEPTION()
             log.debug("Can't play selected, play next...")
             if not self.select(1):
                 pygui_globs['menustack'].close_player()
     return None
Exemple #6
0
 def play(self, item=None, playlist=None, delay=0):
     try:
         Player.play(self, item, playlist)
     except:
         PRINT_EXCEPTION()
         if self._check_exception(_("Can't find media")):
             pygui_globs['menustack'].close_player()
             return None
     if self.subserver:
         self.subserver.register_txt_render(self._render_subtitle)
         self.set_subs_size(config.user_config['video']['subtitles_size'])
     try:
         WPlayer.play(self, self.selected, show_loading=False, offset=delay)
     except OverflowError:
         log.debug('Player unable to load/read selected item')
         if not self.select(1):
             pygui_globs['menustack'].close_player()
     return None
Exemple #7
0
 def stop(self):
     log.debug('stop() on MMI PLAYER')
     if self.active_list == 'edit_list':
         self.get_item_list('edit_list').edited = False
         self.focus_previous()
     try:
         self.get_item_list('main_list').selected.unwatch(
             self._selection_changed)
     except AttributeError:
         log.info('Item %s is not unwatchable',
                  self.get_item_list('main_list').selected)
     self._start_playing.task.stop()
     WPlayer.stop(self)
     Player.stop(self)
     for sig in AudioPlayer.caching_sig:
         louie_disconnect(receiver=self._callback_fill_list,
                          signal=sig,
                          sender='audio')
     return None
Exemple #8
0
 def _get_status(self):
     ret = WPlayer._get_status(self)
     if ret == 'fast_forward':
         return forward_tricks_icons[self.eventhandler.forward_steps.index(
             self.speed)]
     elif ret == 'fast_rewind':
         return backward_tricks_icons[
             self.eventhandler.backward_steps.index(self.speed)]
     elif ret == 'play' and self.playmode == 'all':
         return 'play_list'
     return ret
Exemple #9
0
 def stop(self):
     try:
         if 'transcode' in config.plugins:
             if hasattr(self, 'stop_transcode'):
                 self.stop_transcode(0)
                 del self.stop_transcode
         if config.resume_video:
             if self.selected['class'].endswith('tvRecord'):
                 resume_pos = self.wpl.byte_pos['data']
             else:
                 resume_pos = self.time_elapsed
             unref_link = 'refid' in self.selected.wymedia_resource
             self.selected.vfs_set_metas(_unref_link=unref_link,
                                         playbackStatus=repr(resume_pos))
             log.debug('%s save resume position at %s', self.selected,
                       resume_pos)
     finally:
         WPlayer.stop(self)
         Player.stop(self)
         self._start_playing.task.stop()
         self.subserver.unregister_txt_render()
         self._render_subtitle(u'')
     return None
Exemple #10
0
 def tick_callback(self):
     log.debug('tick')
     if not self._start_playing.task.running and self.status == 'playing':
         WPlayer.tick_callback(self)
     log.debug('end tick')
     return None
Exemple #11
0
 def update_media_info(self):
     WPlayer.update_media_info(self)
     return None