f-spot r4140 - in trunk/dpap-sharp: launcher lib



Author: apart
Date: Thu Jul  3 08:18:49 2008
New Revision: 4140
URL: http://svn.gnome.org/viewvc/f-spot?rev=4140&view=rev

Log:
Downloading files from DPAP server


Modified:
   trunk/dpap-sharp/launcher/Main.cs
   trunk/dpap-sharp/lib/Database.cs
   trunk/dpap-sharp/lib/Track.cs

Modified: trunk/dpap-sharp/launcher/Main.cs
==============================================================================
--- trunk/dpap-sharp/launcher/Main.cs	(original)
+++ trunk/dpap-sharp/launcher/Main.cs	Thu Jul  3 08:18:49 2008
@@ -46,9 +46,14 @@
 				foreach (Playlist pl in d.Playlists)
 					Console.WriteLine("\tAlbum: "+pl.Name + ", id=" + pl.getId() + " number of items:" + pl.Tracks.Count);
 				
-				foreach (Track tr in d.Tracks) 
+				foreach (Track tr in d.Tracks)
+				{
 					if(tr != null)
-						Console.WriteLine("\t\tFile: " + tr.Title);
+					{
+						Console.WriteLine("\t\tFile: " + tr.FileName + " format = " + tr.Format + "size=" + tr.Width +"x" +tr.Height + " ID=" + tr.Id);
+						d.DownloadTrack(tr,"./"+tr.FileName);
+					}
+				}
 				
 			}
 			client.Logout();

Modified: trunk/dpap-sharp/lib/Database.cs
==============================================================================
--- trunk/dpap-sharp/lib/Database.cs	(original)
+++ trunk/dpap-sharp/lib/Database.cs	Thu Jul  3 08:18:49 2008
@@ -398,8 +398,10 @@
         }
 
         private HttpWebResponse FetchTrack (Track track, long offset) {
-            return client.Fetcher.FetchFile (String.Format ("/databases/{0}/items/{1}.{2}", id, track.Id, track.Format),
-                                             offset);
+            return client.Fetcher.FetchResponse (String.Format ("/databases/{0}/items",id), offset, 
+			                                     String.Format("meta=dpap.filedata&query=('dmap.itemid:{0}')",track.Id),
+			                                     null, 1, true);
+                                             
         }
 
         public Stream StreamTrack (Track track, out long length) {
@@ -422,6 +424,11 @@
                     int count = 0;
                     byte[] buf = new byte[ChunkLength];
                     
+					count = reader.Read(buf,0,89);
+					
+					if(count < 89)
+						count+=reader.Read(buf,0,89-count);
+					
                     do {
                         count = reader.Read (buf, 0, ChunkLength);
                         writer.Write (buf, 0, count);

Modified: trunk/dpap-sharp/lib/Track.cs
==============================================================================
--- trunk/dpap-sharp/lib/Track.cs	(original)
+++ trunk/dpap-sharp/lib/Track.cs	Thu Jul  3 08:18:49 2008
@@ -32,6 +32,8 @@
         private TimeSpan duration;
         private int id;
         private int size;
+		private int width;
+		private int height;
         private string genre;
         private int trackNumber;
         private int trackCount;
@@ -134,6 +136,22 @@
             }
         }
         
+		public int Width {
+			get { return width; }
+			set {
+				width = value;
+				EmitUpdated ();
+			}
+		}
+		
+		public int Height {
+			get { return height; }
+			set {
+				height = value;
+				EmitUpdated ();
+			}
+		}
+		
         public DateTime DateAdded {
             get { return dateAdded; }
             set {
@@ -315,42 +333,24 @@
                 case "dmap.itemid":
                     track.id = (int) field.Value;
                     break;
-                case "daap.songartist":
-                    track.artist = (string) field.Value;
-                    break;
                 case "dmap.itemname":
                     track.title = (string) field.Value;
                     break;
-                case "daap.songalbum":
-                    track.album = (string) field.Value;
-                    break;
-                case "daap.songtime":
-                    track.duration = TimeSpan.FromMilliseconds ((int) field.Value);
-                    break;
-                case "daap.songformat":
+                case "dpap.imageformat":
                     track.format = (string) field.Value;
                     break;
-                case "daap.songgenre":
-                    track.genre = (string) field.Value;
-                    break;
-                case "daap.songsize":
+                case "dpap.imagefilename":
+					track.fileName = (string) field.Value;
+					break;
+                case "dpap.imagefilesize":
                     track.size = (int) field.Value;
                     break;
-                case "daap.songtrackcount":
-                    track.trackCount = (short) field.Value;
-                    break;
-                case "daap.songtracknumber":
-                    track.trackNumber = (short) field.Value;
-                    break;
-                case "daap.bitrate":
-                    track.bitrate = (short) field.Value;
-                    break;
-                case "daap.songdateadded":
-                    track.dateAdded = (DateTime) field.Value;
-                    break;
-                case "daap.songdatemodified":
-                    track.dateModified = (DateTime) field.Value;
-                    break;
+                case "dpap.imagepixelwidth":
+					track.width = (int) field.Value;
+					break;
+				case "dpap.imagepixelheight":
+					track.height = (int) field.Value;
+					break;
                 default:
                     break;
                 }



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