banshee r3064 - in trunk/banshee: . src/Core/Banshee.Services/Banshee.Collection.Database src/Core/Banshee.Services/Banshee.MediaEngine src/Core/Banshee.Services/Banshee.Playlist src/Core/Banshee.Services/Banshee.ServiceStack src/Core/Banshee.ThickClient/Banshee.Gui



Author: abock
Date: Mon Jan 28 06:27:02 2008
New Revision: 3064
URL: http://svn.gnome.org/viewvc/banshee?rev=3064&view=rev

Log:
2008-01-28  Aaron Bockover  <abock gnome org>

    Maybe 3% closer

    * src/Core/Banshee.Services/Banshee.MediaEngine/PlaybackControllerService.cs:
    Implemented most of the required interaction between the playback
    controller and the play queue; the play queue will activate if it is
    populated and playback is transitioning from another source

    * src/Core/Banshee.Services/Banshee.Playlist/PlayQueueSource.cs:
    * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs:
    Change the way the play queue singleton is assigned so the playback
    controller does not require a play queue

    * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Remove the
    plus/add icon on add to playlist

    * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
    Fix something stupid



Modified:
   trunk/banshee/ChangeLog
   trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.MediaEngine/PlaybackControllerService.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.Playlist/PlayQueueSource.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs
   trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs

Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs	(original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs	Mon Jan 28 06:27:02 2008
@@ -187,7 +187,7 @@
         public void Sort(ISortableColumn column)
         {
             lock(this) {
-                if (forced_sort_query != null) {
+                if (forced_sort_query) {
                     return;
                 }
                 

Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.MediaEngine/PlaybackControllerService.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.MediaEngine/PlaybackControllerService.cs	(original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.MediaEngine/PlaybackControllerService.cs	Mon Jan 28 06:27:02 2008
@@ -50,6 +50,8 @@
     
         private TrackInfo current_track;
         private TrackInfo changing_to_track;
+        private ITrackModelSource current_track_source;
+        
         private Random random = new Random ();
     
         private PlaybackShuffleMode shuffle_mode;
@@ -93,6 +95,8 @@
         {
             switch (args.Event) {
                 case PlayerEngineEvent.EndOfStream:
+                    FondlePlayQueue ();
+                
                     if (!StopWhenFinished) {
                         Next ();
                     } else {
@@ -121,6 +125,8 @@
         
         public void Next ()
         {
+            FondlePlayQueue ();
+            
             TrackInfo tmp_track = CurrentTrack;
 
             if (next_stack.Count > 0) {
@@ -184,6 +190,19 @@
             player_engine.OpenPlay (CurrentTrack);
         }
         
+        private void FondlePlayQueue ()
+        {
+            if (PlayQueue == null || PlayQueue.Count <= 0) {
+                return;
+            }
+            
+            if (current_track_source == PlayQueue) {
+                // TODO: Remove from play queue
+            }
+            
+            Source = PlayQueue;
+        }
+        
         protected virtual void OnStopped ()
         {
             EventHandler handler = Stopped;
@@ -207,7 +226,10 @@
         
         public TrackInfo CurrentTrack {
             get { return current_track; }
-            protected set { current_track = value; }
+            protected set { 
+                current_track = value; 
+                current_track_source = Source;
+            }
         }
         
         public ITrackModelSource Source {
@@ -226,6 +248,10 @@
             }
         }
         
+        private ITrackModelSource PlayQueue {
+            get { return Banshee.Playlist.PlayQueueSource.Instance; }
+        }
+        
         public PlaybackShuffleMode ShuffleMode {
             get { return shuffle_mode; }
             set { shuffle_mode = value; }

Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.Playlist/PlayQueueSource.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.Playlist/PlayQueueSource.cs	(original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Playlist/PlayQueueSource.cs	Mon Jan 28 06:27:02 2008
@@ -44,13 +44,7 @@
         
         private static PlayQueueSource instance;
         public static PlayQueueSource Instance {
-            get { 
-                if (instance == null) {
-                    instance = new PlayQueueSource ();
-                }
-                
-                return instance;
-            }
+            get { return instance; }
         }
     
         public PlayQueueSource () : base (Catalog.GetString ("Play Queue"), null)
@@ -61,6 +55,10 @@
             Properties.SetString ("IconName", "audio-x-generic");
             
             ((TrackListDatabaseModel)TrackModel).ForcedSortQuery = "CorePlaylistEntries.EntryID DESC";
+            
+            if (instance == null) {
+                instance = this;
+            }
         }
         
         private void BindToDatabase ()

Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs	(original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs	Mon Jan 28 06:27:02 2008
@@ -57,7 +57,7 @@
             ServiceManager.Run ();
             
             if (ServiceManager.SourceManager != null) {
-                ServiceManager.SourceManager.AddSource (PlayQueueSource.Instance, false);
+                ServiceManager.SourceManager.AddSource (new PlayQueueSource (), false);
                 ServiceManager.SourceManager.AddSource (new LibrarySource (), true);
 
                 foreach (PlaylistSource pl in PlaylistSource.LoadAll ()) {

Modified: trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs	(original)
+++ trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs	Mon Jan 28 06:27:02 2008
@@ -99,7 +99,7 @@
                     Catalog.GetString ("Append selected songs to the play queue"),
                     OnAddToPlayQueue),
                     
-                new ActionEntry ("AddToPlaylistAction", Stock.Add,
+                new ActionEntry ("AddToPlaylistAction", null,
                     Catalog.GetString ("Add _to Playlist"), null,
                     Catalog.GetString ("Append selected songs to playlist or create new playlist from selection"),
                     OnAddToPlaylist),



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