[gnome-music/wip/jfelder/repeatmode-player-simplify: 5/5] player: Only instantiate gsettings once



commit d8679fd69197e24de34d90a655df381dc9b73f13
Author: Jean Felder <jfelder src gnome org>
Date:   Thu Apr 11 08:31:30 2019 +0200

    player: Only instantiate gsettings once

 gnomemusic/gstplayer.py | 10 ++++++++--
 gnomemusic/player.py    | 16 +++++++++-------
 gnomemusic/window.py    |  2 +-
 3 files changed, 18 insertions(+), 10 deletions(-)
---
diff --git a/gnomemusic/gstplayer.py b/gnomemusic/gstplayer.py
index 16435c15..421d312d 100644
--- a/gnomemusic/gstplayer.py
+++ b/gnomemusic/gstplayer.py
@@ -61,7 +61,13 @@ class GstPlayer(GObject.GObject):
         return '<GstPlayer>'
 
     @log
-    def __init__(self):
+    def __init__(self, gsettings):
+        """Gstreamer player
+
+        :param Gio.Settings gsettings: GSettings instance to use
+        :returns:
+        :rtype:
+        """
         super().__init__()
 
         Gst.init(None)
@@ -69,7 +75,7 @@ class GstPlayer(GObject.GObject):
         self._duration = -1.
 
         self._missing_plugin_messages = []
-        self._settings = Gio.Settings.new('org.gnome.Music')
+        self._settings = gsettings
 
         self._player = Gst.ElementFactory.make('playbin3', 'player')
         self._bus = self._player.get_bus()
diff --git a/gnomemusic/player.py b/gnomemusic/player.py
index 24d47eed..02c48791 100644
--- a/gnomemusic/player.py
+++ b/gnomemusic/player.py
@@ -33,7 +33,7 @@ import gi
 gi.require_version('Gst', '1.0')
 gi.require_version('GstAudio', '1.0')
 gi.require_version('GstPbutils', '1.0')
-from gi.repository import Gio, GLib, GObject, Grl, Gst, GstPbutils
+from gi.repository import GLib, GObject, Grl, Gst, GstPbutils
 
 from gnomemusic import log
 from gnomemusic.gstplayer import GstPlayer, Playback
@@ -543,14 +543,16 @@ class Player(GObject.GObject):
         return '<Player>'
 
     @log
-    def __init__(self, parent_window):
+    def __init__(self, parent_window, gsettings):
+        """Main player
+
+        :param Gtk.Window window: Main window
+        :param Gio.Settings gsettings: GSettings instance to use
+        """
         super().__init__()
 
         self._parent_window = parent_window
-
-        self._settings = Gio.Settings.new('org.gnome.Music')
-        self._settings.connect(
-            'changed::repeat', self._on_repeat_setting_changed)
+        self._settings = gsettings
         self._repeat = self._settings.get_enum('repeat')
 
         self._playlist = PlayerPlaylist()
@@ -563,7 +565,7 @@ class Player(GObject.GObject):
         Gst.init(None)
         GstPbutils.pb_utils_init()
 
-        self._gst_player = GstPlayer()
+        self._gst_player = GstPlayer(self._settings)
         self._gst_player.connect('clock-tick', self._on_clock_tick)
         self._gst_player.connect('eos', self._on_eos)
         self._gst_player.bind_property(
diff --git a/gnomemusic/window.py b/gnomemusic/window.py
index 904ebfcd..9dd8fa3d 100644
--- a/gnomemusic/window.py
+++ b/gnomemusic/window.py
@@ -134,7 +134,7 @@ class Window(Gtk.ApplicationWindow):
             "state", self._searchbar, "search-state",
             GObject.BindingFlags.SYNC_CREATE)
 
-        self._player = Player(self)
+        self._player = Player(self, self._settings)
         self._player_toolbar = PlayerToolbar(self._player, self)
         selection_toolbar = SelectionToolbar()
         self.views = [None] * len(View)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]