cowbell r41 - in trunk: . base gui



Author: btaylor
Date: Tue Jun  3 03:35:02 2008
New Revision: 41
URL: http://svn.gnome.org/viewvc/cowbell?rev=41&view=rev

Log:
2008-06-02  Brad Taylor  <brad getcoded net>
	
	* base/services/:
	* gui/services/: Move services into their own directory.

	* base/MusicBrainzMetadataProxy.cs: Change GlobalData also when calling
	  Import ().  This causes the artist, album and year to update on the
	  right hand side of the window.



Modified:
   trunk/ChangeLog
   trunk/base/MusicBrainzMetadataProxy.cs
   trunk/gui/MainWindow.cs

Modified: trunk/base/MusicBrainzMetadataProxy.cs
==============================================================================
--- trunk/base/MusicBrainzMetadataProxy.cs	(original)
+++ trunk/base/MusicBrainzMetadataProxy.cs	Tue Jun  3 03:35:02 2008
@@ -85,6 +85,7 @@
 
 #region private delegates
 		private delegate void DatabaseUpdateHandler (int i, Song s);
+		private delegate void GlobalDataUpdateHandler (string artist, string album, uint year);
 #endregion
 
 #region private fields
@@ -108,6 +109,16 @@
 		private void MatchTracks (Artist artist, Release release,
 		                          IDatabaseService db_svc, out int num_matches)
 		{
+			string artist_name = artist.GetName ();
+			string album_name = release.GetTitle ();
+			uint year = 0;
+
+			ReadOnlyCollection<Event> events = release.GetEvents ();
+			if (events.Count > 0) {
+				// just blindly pick the first release event
+				year = GetMusicBrainzYearFromDate (events[0].Date);
+			}
+
 			num_matches = 0;
 
 			ReadOnlyCollection<Track> tracks = release.GetTracks ();
@@ -154,14 +165,13 @@
 					Song temp = (Song)db_svc.Items[i]; 
 
 					// dump the amazon supplied information into the song
-					temp.Artist = artist.GetName ();
+					temp.Artist = artist_name;
 					temp.TrackNumber = Convert.ToUInt32 (pos + 1);
 					temp.Title = tracks[pos].GetTitle (); 
-					temp.Album = release.GetTitle ();
+					temp.Album = album_name;
 					
-					ReadOnlyCollection<Event> events = release.GetEvents ();
-					if (events.Count > 0) {
-						temp.Year = GetMusicBrainzYearFromDate (events[0].Date);
+					if (year > 0) {
+						temp.Year = year;
 					}
 
 					dispatch_svc.GuiDispatch (new DatabaseUpdateHandler (UpdateDatabase),
@@ -170,6 +180,9 @@
 					num_matches++;
 				}
 			}
+
+			dispatch_svc.GuiDispatch (new GlobalDataUpdateHandler (UpdateGlobalData),
+						  artist_name, album_name, year);
 		}
 
 		private void FindClosestAlbumAndRelease (out Artist artist, out Release release)
@@ -356,6 +369,20 @@
 			db_svc.Items[i] = s;
 		}
 
+		private void UpdateGlobalData (string artist, string album, uint year)
+		{
+			if (db_svc.GlobalData == null) {
+				return;
+			}
+
+			db_svc.GlobalData.Artist = artist;
+			db_svc.GlobalData.Album = album;
+
+			if (year > 0) {
+				db_svc.GlobalData.Year = year;
+			}
+		}
+
 		/**
 		 * Gets the year part of a MusicBrainz event date.  This is
 		 * supposed to be in the format YYYY-MM-DD.

Modified: trunk/gui/MainWindow.cs
==============================================================================
--- trunk/gui/MainWindow.cs	(original)
+++ trunk/gui/MainWindow.cs	Tue Jun  3 03:35:02 2008
@@ -142,11 +142,6 @@
 			Freeze ();
 		}
 
-		public void SaveCoverImage (string filename)
-		{
-			cover.Save (filename);
-		}
-
 		/* private fields */
 		[Glade.Widget] Window window;
 		[Glade.Widget] AlbumCoverImage cover;



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