[banshee] Make GetSingle changes available to RandomBy



commit 74e43d8dbc5a18663db20c5be2d02269804f0547
Author: Gabriel Burt <gabriel burt gmail com>
Date:   Tue Feb 16 20:08:03 2010 -0800

    Make GetSingle changes available to RandomBy

 .../DatabaseTrackModelCache.cs                     |    9 +++++++--
 .../IDatabaseTrackModelCache.cs                    |    3 ++-
 .../Banshee.Collection.Database/RandomBy.cs        |    3 +++
 .../Banshee.Collection.Database/Shuffler.cs        |    4 ++--
 4 files changed, 14 insertions(+), 5 deletions(-)
---
diff --git a/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackModelCache.cs b/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackModelCache.cs
index f51126c..e63d3ea 100644
--- a/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackModelCache.cs
+++ b/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackModelCache.cs
@@ -41,9 +41,14 @@ namespace Banshee.Collection.Database
         {
         }
 
-        public new TrackInfo GetSingle (string random_fragment, params object [] args)
+        public new TrackInfo GetSingle (string conditionOrderFragment, params object [] args)
         {
-            return base.GetSingle (random_fragment, args);
+            return base.GetSingle (conditionOrderFragment, args);
+        }
+
+        public new TrackInfo GetSingle (string selectFragment, string fromFragment, string conditionOrderFragment, params object [] args)
+        {
+            return base.GetSingle (selectFragment, fromFragment, conditionOrderFragment, args);
         }
 
         public new TrackInfo GetValue (long index)
diff --git a/src/Core/Banshee.Services/Banshee.Collection.Database/IDatabaseTrackModelCache.cs b/src/Core/Banshee.Services/Banshee.Collection.Database/IDatabaseTrackModelCache.cs
index abbb98a..1649f67 100644
--- a/src/Core/Banshee.Services/Banshee.Collection.Database/IDatabaseTrackModelCache.cs
+++ b/src/Core/Banshee.Services/Banshee.Collection.Database/IDatabaseTrackModelCache.cs
@@ -45,7 +45,8 @@ namespace Banshee.Collection.Database
         long IndexOf (string where_fragment, long offset);
         long IndexOf (Hyena.Data.ICacheableItem item);
         long IndexOf (object item_entry_id);
-        TrackInfo GetSingle (string random_fragment, params object [] args);
+        TrackInfo GetSingle (string selectFragment, string fromFragment, string conditionOrderFragment, params object [] args);
+        TrackInfo GetSingle (string conditionOrderFragment, params object [] args);
         TrackInfo GetValue (long index);
         long CacheId { get; }
         event Action<IDataReader> AggregatesUpdated;
diff --git a/src/Core/Banshee.Services/Banshee.Collection.Database/RandomBy.cs b/src/Core/Banshee.Services/Banshee.Collection.Database/RandomBy.cs
index 8b34b15..9e0889a 100644
--- a/src/Core/Banshee.Services/Banshee.Collection.Database/RandomBy.cs
+++ b/src/Core/Banshee.Services/Banshee.Collection.Database/RandomBy.cs
@@ -127,7 +127,10 @@ namespace Banshee.Collection.Database
             }
         }
 
+        // The playback track we choose is dependent on the current PlaybackSource, and what
+        // (if any) query/filter is active there, represented by its DatabaseTrackModel (and its underlying cache).
         public abstract TrackInfo GetPlaybackTrack (DateTime after);
+
         public abstract DatabaseTrackInfo GetShufflerTrack (DateTime after);
 
         protected DatabaseTrackInfo GetTrack (HyenaSqliteCommand cmd, params object [] args)
diff --git a/src/Core/Banshee.Services/Banshee.Collection.Database/Shuffler.cs b/src/Core/Banshee.Services/Banshee.Collection.Database/Shuffler.cs
index 6ee4ead..8a7399c 100644
--- a/src/Core/Banshee.Services/Banshee.Collection.Database/Shuffler.cs
+++ b/src/Core/Banshee.Services/Banshee.Collection.Database/Shuffler.cs
@@ -154,7 +154,7 @@ namespace Banshee.Collection.Database
                 }
             }
 
-            var random = random_modes.First (r => r.Id == mode);
+            var random = random_modes.FirstOrDefault (r => r.Id == mode);
             if (random != null) {
                 if (!random.IsReady) {
                     if (!random.Next (random_began_at) && repeat) {
@@ -183,4 +183,4 @@ namespace Banshee.Collection.Database
             }
         }
     }
-}
+}
\ No newline at end of file



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