[banshee/moblin] improved implementations of the queue
- From: Michael Meeks <michael src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [banshee/moblin] improved implementations of the queue
- Date: Tue, 8 Sep 2009 13:01:52 +0000 (UTC)
commit df86b05a94b1d928e0c2e4c47fae630264caf228
Author: Michael Meeks <michael meeks novell com>
Date: Tue Sep 8 14:03:40 2009 +0100
improved implementations of the queue
.../Banshee.MoblinBackend/MoblinBognor.cs | 19 ++++++++++++++++---
.../Banshee.PlayQueue/PlayQueueSource.cs | 6 ++++++
2 files changed, 22 insertions(+), 3 deletions(-)
---
diff --git a/src/Backends/Banshee.Moblin/Banshee.MoblinBackend/MoblinBognor.cs b/src/Backends/Banshee.Moblin/Banshee.MoblinBackend/MoblinBognor.cs
index 18f304b..b42d055 100644
--- a/src/Backends/Banshee.Moblin/Banshee.MoblinBackend/MoblinBognor.cs
+++ b/src/Backends/Banshee.Moblin/Banshee.MoblinBackend/MoblinBognor.cs
@@ -62,6 +62,10 @@ internal class TrackModel
return uris.FindIndex (start, uris.Count - start,
val => val == uri);
}
+ public bool Contains (string uri)
+ {
+ return uris.Contains (uri);
+ }
public void Add (string uri, int pos)
{
if ((uint) pos > (uint) uris.Count + 1) {
@@ -212,20 +216,29 @@ namespace Banshee.MoblinBackend.BognorRegis
public void PlayUri (string uri, string mimeType)
{
Console.WriteLine ("Play URI " + uri + " type " + mimeType);
- ServiceManager.PlayerEngine.OpenPlay (new SafeUri (uri));
+
+ int idx = model.FindIndexFrom (0, uri);
+ if (idx == 0) { // already playing
+ Play();
+ return;
+ }
+ else if (idx >= 0) // don't pile up duplicates
+ Remove (idx);
+ Queue.EnqueuePlay (uri);
}
public void AddUri (string uri, string mimeType)
{
- Queue.EnqueueUri (uri);
+ Queue.EnqueueUri (uri, false);
}
public void InsertUri (string uri, string mimeType, int pos)
{
+ Console.WriteLine ("Unimplemented - unused by mutter-moblin");
// 'int pos' is hardish - cf. PlayQueueSource.cs ...
// cf. PlaylistSource.ReorderSelectedTracks (eg.)
}
public void Remove (int index)
{
-// RemoveTrackRange (DatabaseTrackModel, new Hyena.Collections.RangeCollection.Range (0, Count));
+ Queue.RemoveTrack (index);
}
public void Clear ()
{
diff --git a/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs b/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs
index 76957b7..6bacaf3 100644
--- a/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs
+++ b/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs
@@ -106,6 +106,12 @@ namespace Banshee.PlayQueue
#region IPlayQueue, IDBusExportable
+ public void EnqueuePlay (string uri)
+ {
+ EnqueueUri (uri, true);
+ ((IBasicPlaybackController)this).Next (true);
+ }
+
public void EnqueueUri (string uri)
{
EnqueueUri (uri, false);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]