From 4c4bef1a128e0262a5ca7cf3a98883be74da7d05 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Andr=C3=A9s=20G=2E=20Aragoneses?= Date: Fri, 24 Jan 2014 16:28:09 +0100 Subject: [PATCH] GStreamerSharp: PlayerEngine: avoid spurious *Stream events The managed backend wasn't checking the player state before sending {End|Start}OfStream events at GStreamer's StreamStart signal, like the native backend was doing. This was making the MediaEngineTests fail for this backend. With this, the tests now pass (there's only a TearDown failure left which is unrelated to this). (Note: the player states to check recently had to change in the native backend [1], so we accommodate the managed backend here too, accordingly.) https://git.gnome.org/browse/banshee/commit/?id=6c890659b766879e0bbd08e6ea29d836b9c3281c --- .../Banshee.GStreamerSharp/PlayerEngine.cs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Backends/Banshee.GStreamerSharp/Banshee.GStreamerSharp/PlayerEngine.cs b/src/Backends/Banshee.GStreamerSharp/Banshee.GStreamerSharp/PlayerEngine.cs index 283bf94a8..ea518925f 100644 --- a/src/Backends/Banshee.GStreamerSharp/Banshee.GStreamerSharp/PlayerEngine.cs +++ b/src/Backends/Banshee.GStreamerSharp/Banshee.GStreamerSharp/PlayerEngine.cs @@ -541,10 +541,12 @@ namespace Banshee.GStreamerSharp private void HandleStreamStart () { - // Set the current track as fully played before signaling EndOfStream. - ServiceManager.PlayerEngine.IncrementLastPlayed (1.0); - OnEventChanged (PlayerEvent.EndOfStream); - OnEventChanged (PlayerEvent.StartOfStream); + if (CurrentState != PlayerState.Loaded && CurrentState != PlayerState.Loading) { + // Set the current track as fully played before signaling EndOfStream. + ServiceManager.PlayerEngine.IncrementLastPlayed (1.0); + OnEventChanged (PlayerEvent.EndOfStream); + OnEventChanged (PlayerEvent.StartOfStream); + } } private void HandleError (GLib.GException ex) -- 2.11.4.GIT