[gnome-music/wip/jfelder/gstplayer-disable-about-to-finish-http-files: 3/3] gstplayer: Disable gapless for non local files
- From: Jean Felder <jfelder src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-music/wip/jfelder/gstplayer-disable-about-to-finish-http-files: 3/3] gstplayer: Disable gapless for non local files
- Date: Fri, 29 May 2020 20:08:27 +0000 (UTC)
commit 75b856f5e07635e48cfa24b82ffde64491a32b23
Author: Jean Felder <jfelder src gnome org>
Date: Fri May 29 21:46:14 2020 +0200
gstplayer: Disable gapless for non local files
gnomemusic/gstplayer.py | 15 ++++++++++++++-
gnomemusic/player.py | 7 +++++--
2 files changed, 19 insertions(+), 3 deletions(-)
---
diff --git a/gnomemusic/gstplayer.py b/gnomemusic/gstplayer.py
index 8b8b61af..09e04991 100644
--- a/gnomemusic/gstplayer.py
+++ b/gnomemusic/gstplayer.py
@@ -93,6 +93,7 @@ class GstPlayer(GObject.GObject):
self._player.connect("about-to-finish", self._on_about_to_finish)
self.props.state = Playback.STOPPED
+ self._gapless_enabled = False
def _setup_replaygain(self):
"""Set up replaygain"""
@@ -125,7 +126,8 @@ class GstPlayer(GObject.GObject):
self._player.set_property("audio-filter", None)
def _on_about_to_finish(self, klass):
- self.emit("about-to-finish")
+ if self._gapless_enabled:
+ self.emit("about-to-finish")
def _on_async_done(self, bus, message):
success, duration = self._player.query_duration(
@@ -254,6 +256,7 @@ class GstPlayer(GObject.GObject):
:param string url: url to load
"""
+ self._gapless_enabled = (url_.startswith("file"))
self._player.set_property('uri', url_)
@GObject.Property
@@ -291,6 +294,16 @@ class GstPlayer(GObject.GObject):
"""
self._duration = duration
+ @GObject.Property(
+ type=bool, default=False, flags=GObject.ParamFlags.READABLE)
+ def gapless_enabled(self):
+ """Gapless state
+
+ :return: True if gapless is enabled.
+ :rtype: bool
+ """
+ return self._gapless_enabled
+
def seek(self, seconds):
"""Seek to position
diff --git a/gnomemusic/player.py b/gnomemusic/player.py
index 7104fcac..83648bed 100644
--- a/gnomemusic/player.py
+++ b/gnomemusic/player.py
@@ -418,9 +418,12 @@ class Player(GObject.GObject):
self._gapless_set = True
def _on_eos(self, klass):
- self._playlist.next()
+ has_next = self._playlist.next()
- if self._gapless_set:
+ if (has_next
+ and not self._gst_player.gapless_enabled):
+ self.play(self._playlist.props.current_song)
+ elif self._gapless_set:
# After 'eos' in the gapless case, the pipeline needs to be
# hard reset.
self.stop()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]