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
- From: abock svn gnome org
- To: svn-commits-list gnome org
- Subject: 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
- Date: Mon, 28 Jan 2008 06:27:02 +0000 (GMT)
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]