def on_player_stopped(self): self.stop_progress_timer() self.set_controls_sensitivity(False) gtkutil.image(self.play_pause_button, 'media-playback-start.png') if self.metadata: estimated_length = self.metadata.get('length', 0) self.set_progress_callback(0, estimated_length)
def on_player_stopped(self): self.stop_progress_timer() self.set_controls_sensitivity(False) gtkutil.image(self.play_pause_button, 'media-playback-start.png') if self.metadata: estimated_length = self.metadata.get('length', 0) self.set_progress_callback( 0, estimated_length )
def on_player_playing(self): self.progress_timer_callback() self.start_progress_timer() gtkutil.image(self.play_pause_button, 'media-playback-pause.png') self.set_controls_sensitivity(True) if platform.FREMANTLE: hildon.hildon_gtk_window_set_progress_indicator(\ self.__gui_root.main_window, False)
def on_player_paused(self, position, duration): self.stop_progress_timer() # This should save some power self.set_progress_callback(position, duration) gtkutil.image(self.play_pause_button, 'media-playback-start.png')
def make_player_tab(self): main_vbox = gtk.Grid.new() main_vbox.set_property("orientation", gtk.Orientation.VERTICAL) #main_vbox.set_spacing(6) # add a vbox to self self.pack_start(main_vbox, True, True, 0) # a hbox to hold the cover art and metadata vbox metadata_hbox = gtk.HBox() metadata_hbox.set_spacing(6) main_vbox.add(metadata_hbox) event_box = gtk.EventBox() self.cover_art = gtk.Image() event_box.add(self.cover_art) metadata_hbox.pack_start(event_box, False, False, 0) event_box.connect('button-press-event', self.cover_art_callback) # vbox to hold metadata metadata_vbox = gtk.VBox() metadata_vbox.pack_start(gtk.Image(), True, True, 0) self.artist_label = gtk.Label('') self.artist_label.set_ellipsize(pango.EllipsizeMode.END) metadata_vbox.pack_start(self.artist_label, False, False, 0) separator = gtk.Label("") separator.set_size_request(-1, 10) metadata_vbox.pack_start(separator, False, False, 0) self.album_label = gtk.Label('') self.album_label.modify_font(pango.FontDescription('normal 8')) self.album_label.set_ellipsize(pango.EllipsizeMode.END) metadata_vbox.pack_start(self.album_label, False, False, 0) separator = gtk.Label("") separator.set_size_request(-1, 10) metadata_vbox.pack_start(separator, False, False, 0) self.title_label = widgets.ScrollingLabel('', self.config.get( "options", "scrolling_color"), update_interval=100, pixel_jump=1, delay_btwn_scrolls=5000, delay_halfway=3000) self.title_label.scrolling = self.config.getboolean( "options", "scrolling_labels") metadata_vbox.pack_start(self.title_label, False, False, 0) metadata_vbox.pack_start(gtk.Image(), True, True, 0) metadata_hbox.pack_start(metadata_vbox, True, True, 0) progress_eventbox = gtk.EventBox() progress_eventbox.set_events(gdk.EventMask.BUTTON_PRESS_MASK) progress_eventbox.connect('button-press-event', self.on_progressbar_changed) self.progress = gtk.ProgressBar() self.progress.set_size_request( -1, self.config.getint("options", "progress_height")) progress_eventbox.add(self.progress) main_vbox.add(progress_eventbox) # make the button box buttonbox = gtk.HBox() # A wrapper to help create DualActionButtons with the right settings def create_da(widget, action, widget2=None, action2=None): if platform.FREMANTLE: widget2 = None action2 = None return widgets.DualActionButton(widget, action, self.config, widget2, action2) self.rrewind_button = create_da( gtkutil.generate_image('media-skip-backward.png'), lambda: self.do_seek(-1 * self.config.getint( 'options', 'seek_long')), gtkutil.generate_image("gtk-goto-first-ltr.png"), self.playlist.prev) buttonbox.add(self.rrewind_button) self.rewind_button = create_da( gtkutil.generate_image('media-seek-backward.png'), lambda: self.do_seek(-1 * self.config.getint( 'options', 'seek_short'))) buttonbox.add(self.rewind_button) self.play_pause_button = gtk.Button('') gtkutil.image(self.play_pause_button, 'media-playback-start.png') self.play_pause_button.connect('clicked', self.on_btn_play_pause_clicked) buttonbox.add(self.play_pause_button) self.forward_button = create_da( gtkutil.generate_image('media-seek-forward.png'), lambda: self.do_seek(self.config.getint('options', 'seek_short'))) buttonbox.add(self.forward_button) self.fforward_button = create_da( gtkutil.generate_image('media-skip-forward.png'), lambda: self.do_seek(self.config.getint('options', 'seek_long')), gtkutil.generate_image("gtk-goto-last-ltr.png"), self.playlist.next) buttonbox.add(self.fforward_button) self.bookmarks_button = create_da( gtkutil.generate_image('bookmark-new.png'), self.playlist.add_bookmark_at_current_position, gtkutil.generate_image(gtk.STOCK_JUMP_TO, True), lambda *args: self.notify('select-current-item-request')) buttonbox.add(self.bookmarks_button) self.set_controls_sensitivity(False) if platform.FREMANTLE: for child in buttonbox.get_children(): if isinstance(child, gtk.Button): child.set_name('HildonButton-thumb') buttonbox.set_size_request( -1, self.config.getint("options", "button_height")) main_vbox.add(buttonbox) if platform.MAEMO: self.__gui_root.main_window.connect('key-press-event', self.on_key_press) # Disable focus for all widgets, so we can use the cursor # keys + enter to directly control our media player, which # is handled by "key-press-event" for w in ( self.rrewind_button, self.rewind_button, self.play_pause_button, self.forward_button, self.fforward_button, self.progress, self.bookmarks_button, ): w.unset_flags(gtk.CAN_FOCUS)
def on_player_paused( self, position, duration ): self.stop_progress_timer() # This should save some power self.set_progress_callback( position, duration ) gtkutil.image(self.play_pause_button, 'media-playback-start.png')
def make_player_tab(self): main_vbox = gtk.Grid.new() main_vbox.set_property("orientation", gtk.Orientation.VERTICAL) #main_vbox.set_spacing(6) # add a vbox to self self.pack_start(main_vbox, True, True, 0) # a hbox to hold the cover art and metadata vbox metadata_hbox = gtk.HBox() metadata_hbox.set_spacing(6) main_vbox.add(metadata_hbox) event_box = gtk.EventBox() self.cover_art = gtk.Image() event_box.add(self.cover_art) metadata_hbox.pack_start(event_box, False, False, 0) event_box.connect('button-press-event', self.cover_art_callback) # vbox to hold metadata metadata_vbox = gtk.VBox() metadata_vbox.pack_start(gtk.Image(), True, True, 0) self.artist_label = gtk.Label('') self.artist_label.set_ellipsize(pango.EllipsizeMode.END) metadata_vbox.pack_start(self.artist_label, False, False, 0) separator = gtk.Label("") separator.set_size_request(-1, 10) metadata_vbox.pack_start(separator, False, False, 0) self.album_label = gtk.Label('') self.album_label.modify_font(pango.FontDescription('normal 8')) self.album_label.set_ellipsize(pango.EllipsizeMode.END) metadata_vbox.pack_start(self.album_label, False, False, 0) separator = gtk.Label("") separator.set_size_request(-1, 10) metadata_vbox.pack_start(separator, False, False, 0) self.title_label = widgets.ScrollingLabel('', self.config.get("options", "scrolling_color"), update_interval=100, pixel_jump=1, delay_btwn_scrolls=5000, delay_halfway=3000) self.title_label.scrolling = self.config.getboolean("options", "scrolling_labels") metadata_vbox.pack_start(self.title_label, False, False, 0) metadata_vbox.pack_start(gtk.Image(), True, True, 0) metadata_hbox.pack_start( metadata_vbox, True, True, 0) progress_eventbox = gtk.EventBox() progress_eventbox.set_events(gdk.EventMask.BUTTON_PRESS_MASK) progress_eventbox.connect( 'button-press-event', self.on_progressbar_changed ) self.progress = gtk.ProgressBar() self.progress.set_size_request(-1, self.config.getint("options", "progress_height")) progress_eventbox.add(self.progress) main_vbox.add( progress_eventbox) # make the button box buttonbox = gtk.HBox() # A wrapper to help create DualActionButtons with the right settings def create_da(widget, action, widget2=None, action2=None): if platform.FREMANTLE: widget2 = None action2 = None return widgets.DualActionButton(widget, action, self.config, widget2, action2) self.rrewind_button = create_da( gtkutil.generate_image('media-skip-backward.png'), lambda: self.do_seek(-1*self.config.getint('options', 'seek_long')), gtkutil.generate_image("gtk-goto-first-ltr.png"), self.playlist.prev) buttonbox.add(self.rrewind_button) self.rewind_button = create_da( gtkutil.generate_image('media-seek-backward.png'), lambda: self.do_seek(-1*self.config.getint('options', 'seek_short'))) buttonbox.add(self.rewind_button) self.play_pause_button = gtk.Button('') gtkutil.image(self.play_pause_button, 'media-playback-start.png') self.play_pause_button.connect( 'clicked', self.on_btn_play_pause_clicked ) buttonbox.add(self.play_pause_button) self.forward_button = create_da( gtkutil.generate_image('media-seek-forward.png'), lambda: self.do_seek(self.config.getint('options', 'seek_short'))) buttonbox.add(self.forward_button) self.fforward_button = create_da( gtkutil.generate_image('media-skip-forward.png'), lambda: self.do_seek(self.config.getint('options', 'seek_long')), gtkutil.generate_image("gtk-goto-last-ltr.png"), self.playlist.next) buttonbox.add(self.fforward_button) self.bookmarks_button = create_da( gtkutil.generate_image('bookmark-new.png'), self.playlist.add_bookmark_at_current_position, gtkutil.generate_image(gtk.STOCK_JUMP_TO, True), lambda *args: self.notify('select-current-item-request')) buttonbox.add(self.bookmarks_button) self.set_controls_sensitivity(False) if platform.FREMANTLE: for child in buttonbox.get_children(): if isinstance(child, gtk.Button): child.set_name('HildonButton-thumb') buttonbox.set_size_request(-1, self.config.getint("options", "button_height")) main_vbox.add(buttonbox) if platform.MAEMO: self.__gui_root.main_window.connect( 'key-press-event', self.on_key_press ) # Disable focus for all widgets, so we can use the cursor # keys + enter to directly control our media player, which # is handled by "key-press-event" for w in ( self.rrewind_button, self.rewind_button, self.play_pause_button, self.forward_button, self.fforward_button, self.progress, self.bookmarks_button, ): w.unset_flags(gtk.CAN_FOCUS)