def do_channel_name(self): label = Gtk.Label('Unknown Channel') label.set_halign(Gtk.Align.CENTER) add_widget_class(label, 'channel-name') return label
def do_count_label(self): label = Gtk.Label('0') label.set_margin_right(10) add_widget_class(label, 'event-item-counter') return label
def do_channel_language(self): label = Gtk.Label('Unknown') label.set_halign(Gtk.Align.CENTER) add_widget_class(label, 'channel-language') return label
def do_stream_rate(self): label = Gtk.Label('0Kbps') label.set_halign(Gtk.Align.END) label.set_margin_right(10) add_widget_class(label, 'stream-rate') return label
def do_stream_language(self): label = Gtk.Label('Unknown') label.set_halign(Gtk.Align.START) label.set_margin_right(10) add_widget_class(label, 'stream-language') return label
def do_stream_name(self): label = Gtk.Label('Unknown Channel') label.set_halign(Gtk.Align.START) label.set_margin_right(10) add_widget_class(label, 'stream-name') return label
def do_channel_streams(self): for stream in self.streams: streambox = StreamBox(stream=stream, callback=self.callback, compact=True) self.pack_start(streambox, True, True, 0) add_widget_class(streambox, 'channel-stream-item')
def do_stream_logo(self): image = image_from_path(path='images/acestream.svg', size=16) image.set_halign(Gtk.Align.CENTER) image.set_valign(Gtk.Align.CENTER) image.set_margin_right(10) add_widget_class(image, 'stream-image') return image
def do_score_label(self): label = Gtk.Label('None') label.set_justify(Gtk.Justification.CENTER) label.set_halign(Gtk.Align.CENTER) label.set_valign(Gtk.Align.CENTER) add_widget_class(label, 'event-date') return label
def update_count_label(self): count = str(self.event_count) self.count_label.set_label(count) if self.event_count == 0: add_widget_class(self.count_label, 'no-streams') else: remove_widget_class(self.count_label, 'no-streams') self.count_label.show()
def do_team_name(self): label = Gtk.Label('Team Name') label.set_max_width_chars(25) label.set_ellipsize(Pango.EllipsizeMode.MIDDLE) label.set_margin_left(5) label.set_margin_right(5) add_widget_class(label, 'team-name') return label
def do_nostreams_label(self): label = Gtk.Label('No streams available...') label.set_margin_top(7) label.set_margin_bottom(10) label.show() self.add(label) add_widget_class(label, 'stream-unknown') return label
def do_more_button(self): kwargs = { 'icon_name': 'media-playback-start-symbolic', 'size': Gtk.IconSize.BUTTON } button = Gtk.Button.new_from_icon_name(**kwargs) button.connect('clicked', self.on_more_button_clicked) add_widget_class(button, 'event-item-details') return button
def do_play_button(self): kwargs = { 'icon_name': 'media-playback-start-symbolic', 'size': Gtk.IconSize.BUTTON } button = Gtk.Button.new_from_icon_name(**kwargs) button.set_halign(Gtk.Align.END) button.connect('clicked', self.on_play_button_clicked) add_widget_class(button, 'stream-play') return button
def __init__(self, *args, **kwargs): Gtk.ListBoxRow.__init__(self, *args, **kwargs) self.stream = self.get_property('stream') self.callback = self.get_property('callback') self.connect('realize', self.on_fixture_updated) self.connect('notify::stream', self.on_fixture_updated) add_widget_class(self, 'stream-item') self.show()
def __init__(self, *args, **kwargs): Gtk.Box.__init__(self, *args, **kwargs) self.vid_url = None self.stopped = False self.canvas = Gtk.DrawingArea() self.pack_start(self.canvas, True, True, 0) self.player = mpv.MPV(ytdl=True, input_cursor=False, cursor_autohide=False) self.canvas.connect('realize', self.on_canvas_realize) self.canvas.connect('draw', self.on_canvas_draw) add_widget_class(self, 'player-video')
def __init__(self, *args, **kwargs): Gtk.Box.__init__(self, *args, **kwargs) self.channel = self.get_property('channel') self.callback = self.get_property('callback') self.streams = None self.set_orientation(Gtk.Orientation.HORIZONTAL) self.set_homogeneous(True) self.connect('realize', self.on_channel_updated) self.connect('notify::channel', self.on_channel_updated) add_widget_class(self, 'channel-streams') self.show()
def __init__(self, *args, **kwargs): Gtk.Box.__init__(self, *args, **kwargs) self.gtksink = Gst.ElementFactory.make('gtksink') self.swidget = self.gtksink.props.widget self.pack_start(self.swidget, True, True, 0) self.playbin = Gst.ElementFactory.make('playbin') self.playbin.set_property('video-sink', self.gtksink) self.playbin.set_property('force-aspect-ratio', True) self.dbus = self.playbin.get_bus() self.dbus.add_signal_watch() self.dbus.connect('message', self.on_dbus_message) add_widget_class(self, 'player-video')
def __init__(self, *args, **kwargs): Gtk.Box.__init__(self, *args, **kwargs) self.canvas = Gtk.DrawingArea() self.pack_start(self.canvas, True, True, 0) self.instance = vlc.Instance() self.canvas.connect('realize', self.on_canvas_realized) self.canvas.connect('draw', self.on_canvas_draw) self.player = self.instance.media_player_new() self.player.video_set_scale(0) self.player.video_set_aspect_ratio('16:9') self.player.video_set_deinterlace('on') self.player.video_set_mouse_input(False) self.player.video_set_key_input(False) add_widget_class(self, 'player-video')
def __init__(self, *args, **kwargs): Gtk.FlowBoxChild.__init__(self, *args, **kwargs) self.channel = self.get_property('channel') self.callback = self.get_property('callback') self.filter_name = self.get_property('filter_name') self.outer_box = self.do_outer_box() self.header_box = self.do_header_box() self.streams_box = self.do_streams_box() self.set_valign(Gtk.Align.START) self.connect('realize', self.on_channel_updated) self.connect('realize', self.on_realize) self.connect('notify::channel', self.on_channel_updated) add_widget_class(self, 'channel-item') self.show()
def __init__(self, *args, **kwargs): Gtk.FlowBoxChild.__init__(self, *args, **kwargs) self.fixture = self.get_property('fixture') self.callback = self.get_property('callback') self.filter_name = self.get_property('filter-name') self.outer_box = self.do_outer_box() self.teams_box = self.do_teams_box() self.details_box = self.do_details_box() self.set_valign(Gtk.Align.START) self.connect('realize', self.on_fixture_updated) self.connect('realize', self.on_realize) self.connect('notify::fixture', self.on_fixture_updated) add_widget_class(self, 'event-item') self.show()
def __init__(self, *args, **kwargs): Gtk.Box.__init__(self, *args, **kwargs) self.fixture = self.get_property('fixture') self.callback = self.get_property('callback') self.event_count = 0 self.count_label = self.do_count_label() self.available_label = self.do_available_label() self.more_button = self.do_more_button() self.set_orientation(Gtk.Orientation.HORIZONTAL) self.connect('realize', self.on_fixture_updated) self.connect('realize', self.on_realize) self.connect('notify::fixture', self.on_fixture_updated) add_widget_class(self, 'event-item-streams') self.show()
def update_score_label(self): if getattr(self.fixture, 'past'): add_widget_class(self.score, 'event-score') else: remove_widget_class(self.score, 'event-score') if getattr(self.fixture, 'today'): add_widget_class(self.score, 'event-today') else: remove_widget_class(self.score, 'event-today') if getattr(self.fixture, 'live'): add_widget_class(self.score, 'event-live') else: remove_widget_class(self.score, 'event-live') score = getattr(self.fixture, 'score') self.score.set_label(score) self.score.show()