diff --git a/src/gtk_mediathek_player/gst_widget.py b/src/gtk_mediathek_player/gst_widget.py index f2c280f..ce5a1a0 100644 --- a/src/gtk_mediathek_player/gst_widget.py +++ b/src/gtk_mediathek_player/gst_widget.py @@ -40,6 +40,8 @@ class GstWidget(Gtk.Box): return gtksink def _build_sink_and_widget(self) -> None: + + """ gtkglsink = Gst.ElementFactory.make("gtkglsink") # TODO: fallback if not graphic acceleration is available @@ -50,6 +52,10 @@ class GstWidget(Gtk.Box): self._sink = sinkbin self._sinkwidget = gtkglsink.get_property("widget") + """ + + self._sink = Gst.ElementFactory.make("gtksink") + self._sinkwidget = self._sink.get_property("widget") def _create_player(self) -> None: self._player = Gst.ElementFactory.make("playbin", "player") diff --git a/src/gtk_mediathek_player/main.py b/src/gtk_mediathek_player/main.py index 1b9c152..cf509b9 100644 --- a/src/gtk_mediathek_player/main.py +++ b/src/gtk_mediathek_player/main.py @@ -1,14 +1,16 @@ import gi -from . import main_window - -from gi.repository import Gtk, Gio, Gst, Gdk gi.require_version('Gtk', '3.0') gi.require_version('Gst', '1.0') -Gst.init(None) -Gst.init_check(None) +from gi.repository import Gtk, Gst + +from . import gst_pipeline +from . import main_window + + +gst_pipeline.init_gst() win = main_window.MainApp() diff --git a/src/gtk_mediathek_player/main_window.py b/src/gtk_mediathek_player/main_window.py index 8157799..81452e3 100644 --- a/src/gtk_mediathek_player/main_window.py +++ b/src/gtk_mediathek_player/main_window.py @@ -1,12 +1,12 @@ +from . import mediathek_request as mr +from . import tools +from . import search_widget +from . import player_widget +from gi.repository import Gtk, GLib import gi -gi.require_version("Gtk", "3.0") -from gi.repository import Gtk, GLib +gi.require_version("Gtk", "3.0") -from . import player_widget -from . import search_widget -from . import tools -from . import mediathek_request as mr class MainApp(Gtk.Window): def __init__(self): @@ -37,12 +37,11 @@ class MainApp(Gtk.Window): self._headerbar = self._create_headerbar(True) self._create_fullscreen_bar() - - #self._main_container.add_overlay(self._create_fullscreen_bar()) + # self._main_container.add_overlay(self._create_fullscreen_bar()) self._main_container.add_overlay(self._revealer) self.add(self._main_container) - + self.connect('motion-notify-event', self.on_mouse_move) self._seconds_after_mouse_move = 0 @@ -51,24 +50,22 @@ class MainApp(Gtk.Window): GLib.timeout_add_seconds(1, self.update) - def on_mouse_move(self, _, __): self._player_widget.show_controls() self._seconds_after_mouse_move = 0 if self._fullscreen: self._revealer.set_reveal_child(True) - + def update(self): if self._seconds_after_mouse_move > 1: self._revealer.set_reveal_child(False) - + self._seconds_after_mouse_move += 1 self._player_widget.update_controls() return True - - def on_search(self, _ = None): + def on_search(self, _=None): if self.get_active_pane() == "player": self._player_widget.pause() self.set_active_pane("search") @@ -76,14 +73,12 @@ class MainApp(Gtk.Window): def _create_context_switch(self): self._search_radio = tools.new_button_with_icon("edit-find") - + self._search_radio.connect("clicked", self.on_search) # more to come... - - - def _create_headerbar(self, main_bar = True): + def _create_headerbar(self, main_bar=True): headerbar = Gtk.HeaderBar() fullscreen = tools.new_button_with_icon("view-fullscreen") @@ -103,30 +98,29 @@ class MainApp(Gtk.Window): headerbar.set_show_close_button(True) headerbar.props.title = "Gtk Mediathek Player" self.set_titlebar(headerbar) - + return headerbar - - + def _create_fullscreen_bar(self): self._revealer = Gtk.Revealer() self._revealer.add(self._create_headerbar(False)) self._revealer.set_valign(Gtk.Align.START) self._revealer.set_vexpand(False) - self._revealer.set_transition_type(Gtk.RevealerTransitionType.SLIDE_DOWN) + self._revealer.set_transition_type( + Gtk.RevealerTransitionType.SLIDE_DOWN) return self._revealer - def _create_player_widget(self): return player_widget.PlayerWidget() - + def _create_search_widget(self): return search_widget.SearchWidget(self) - + def run(self): self.connect("destroy", Gtk.main_quit) self.show_all() Gtk.main() - + def set_active_pane(self, name: str): self._main_stack.set_visible_child_name(name) if name != "player": @@ -134,10 +128,9 @@ class MainApp(Gtk.Window): else: self._fullscreen_button.set_sensitive(True) - def get_active_pane(self): return self._main_stack.get_visible_child_name() - + def start_player(self, uri: str): if self.get_active_pane() != "player": self.set_active_pane("player") @@ -145,26 +138,26 @@ class MainApp(Gtk.Window): self._player_widget.stop() self._player_widget.play_from_uri(uri) self._player_widget.play() - + def go_fullscreen(self): if self._fullscreen: return - + self._fullscreen = True self.fullscreen() self._revealer.set_reveal_child(True) - + def go_unfullscreen(self): if not self._fullscreen: return self._fullscreen = False - + self.unfullscreen() self._revealer.set_reveal_child(False) - - def toggle_fullscreen(self,_ = None): + + def toggle_fullscreen(self, _=None): if self._fullscreen: self.go_unfullscreen() else: