Exemplo n.º 1
0
 def testAt(self):
     sub = Subtitles(raw=self.data)
     self.assertEquals(sub.at(Time()), [Verse(Time(s=0), Time(s=1), "movie")])
     self.assertEquals(sub.at(Time(s=1)), [Verse(Time(s=0), Time(s=1), "movie"),
             Verse(Time(s=1), Time(s=2), "foo")])
     self.assertEquals(sub.at(Time(ms=2300)), [Verse(Time(s=2), Time(s=3), "bar")])
     self.assertEquals(sub.at(Time(s=9)), [])
Exemplo n.º 2
0
 def get_subtitles(self, item):
     data = self.get_data(item[3])
     # print data
     utils.File("~/sub.txt").write(data)
     subtitles = Subtitles()
     subtitles.load_string(data, encoding="cp1250")
     return subtitles
Exemplo n.º 3
0
 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 = {}
Exemplo n.º 4
0
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:
Exemplo n.º 5
0
 def testLoadMpl2(self):
     sub = Subtitles()
     sub.load(StringIO(self.mpl), 'mpl2', 'utf-8')
     self.assertEquals(sub, Subtitles(raw=self.data))