[banshee] GStreamerSharp: PlayerEngine: avoid spurious *Stream events



commit 4c4bef1a128e0262a5ca7cf3a98883be74da7d05
Author: Andrés G. Aragoneses <knocte gmail com>
Date:   Fri Jan 24 16:28:09 2014 +0100

    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 files 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 283bf94..ea51892 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)


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