def __init__(self): super(Controller, self).__init__() self.playlist = Playlist(sys.argv[1:]) self.subtitles = Subtitles() self.signal = Signal() self.gui = GuiMain(self) self.gui.update_menu(self.main_menu) self.player = Player.create('gstreamer', self.gui, self.gui.movie_window.winId()) self.commands = Commands(self) settings.get_path('data', 'mainicon.png') self.view = {}
class Controller(object): main_menu = MenuItem('', submenu=[ MenuItem('File', submenu=[ MenuItem('Open', cmd='opendlg'), MenuItem('Close', cmd='close'), MenuItem(''), MenuItem('Exit', cmd='exit'), ]), MenuItem('View', submenu=[ MenuItem('Sidebar', cmd='view-sidebar toggle'), MenuItem('Fullscreen', cmd='fullscreen toggle'), ]), MenuItem('Playback', submenu=[ MenuItem('Play', cmd='play'), MenuItem('Pause', cmd='pause'), MenuItem('Stop', cmd='stop'), MenuItem(''), MenuItem('Goto', cmd='gotodlg'), MenuItem(''), MenuItem('Speed', submenu=[ MenuItem('25%', cmd='speed 25%'), MenuItem('50%', cmd='speed 50%'), MenuItem('100%', cmd='speed 100%'), MenuItem('200%', cmd='speed 25%'), MenuItem('400%', cmd='speed 25%'), ]), ]), MenuItem('Video', submenu=[ MenuItem('Video scale', submenu=[ MenuItem('50%', cmd='video-scale 50%'), MenuItem('75%', cmd='video-scale 75%'), MenuItem('100%', cmd='video-scale 100%'), MenuItem('150%', cmd='video-scale 150%'), MenuItem('200%', cmd='video-scale 200%'), #MenuItem('250%', cmd='video-scale 250%'), MenuItem('300%', cmd='video-scale 300%'), #MenuItem('350%', cmd='video-scale 350%'), MenuItem('400%', cmd='video-scale 400%'), MenuItem(''), MenuItem('Enter...', cmd='video-scale-dlg'), ]), ]), MenuItem('Audio', submenu=[ MenuItem('Mute', cmd='mute'), MenuItem('Volume Down', cmd='volume -10%'), MenuItem('Volume Up', cmd='volume +10%'), ]), MenuItem('Tools', submenu=[ MenuItem('Snapshot', cmd='snap'), MenuItem('Thumbinals', cmd='thumbdlg'), ]), MenuItem('Help', submenu=[ MenuItem('About', cmd='about'), ]), ]) def __init__(self): super(Controller, self).__init__() self.playlist = Playlist(sys.argv[1:]) self.subtitles = Subtitles() self.signal = Signal() self.gui = GuiMain(self) self.gui.update_menu(self.main_menu) self.player = Player.create('gstreamer', self.gui, self.gui.movie_window.winId()) self.commands = Commands(self) settings.get_path('data', 'mainicon.png') self.view = {} def exec_(self): self.gui.exec_() def dispatch(self, args): self.commands.dispatch(args) def keyboard_shortcut(self, keys): shortcuts = settings.get('shortcut') if keys in shortcuts: msg = shortcuts[keys] self.dispatch(msg) def get_version(self): return '.'.join(str(i) for i in __version__) def on_start(self): self.open_item(self.playlist.next()) def on_timer(self): if self.player_get_state() == 'finish': self.playlist_next() #next = self.playlist.next() #self.open_item(next) #self.slider.setValue(int(self.player.position_fraction * 1000)) self.gui.controls._redraw(self) def open_dlg(self): filename = self.gui.do_file_dialog('Open file', mode='open', path=None, filter=None) logging.debug('Open dialog file: %r' % filename) if filename: self.open(filename) def open(self, filename): if filename.startswith('file://'): filename = filename[7:] item = self.playlist.add_and_goto(filename) self.open_item(item) self.signal.emit('playlist-add') def open_item(self, item): if item: self.player_stop() #self.gui.window.setWindowTitle("%s - Lily Player" % item.name) #self.gui.do_set_title("%s - Lily Player" % item.name) logging.info("Media file opening: %r" % item.filename) self.player.open(item.filename) logging.info("Media file opened") self.video_scale(1.0) if False: try: #subname = item.filename.rsplit('.', 1)[0] + '.txt' subname = '/home/kosqx/contact.srt' self.subtitles.load(subname, encoding='cp1250') #print self.subtitles self.subtitles.adjust_fps(self.player.video.framerate) self.subtitles.adjust_time(perchar=Time(s=0.01), minimum=Time(s=2)) except Exception, e: logging.debug('Subtitle loading failed: %r' % e) self.player_play() self.signal.emit('media-opened') self.info_media_filename = item.filename else: