f-spot r4203 - in trunk/dpap-sharp: . dpap-client dpap-server lib
- From: apart svn gnome org
- To: svn-commits-list gnome org
- Subject: f-spot r4203 - in trunk/dpap-sharp: . dpap-client dpap-server lib
- Date: Wed, 23 Jul 2008 19:23:20 +0000 (UTC)
Author: apart
Date: Wed Jul 23 19:23:19 2008
New Revision: 4203
URL: http://svn.gnome.org/viewvc/f-spot?rev=4203&view=rev
Log:
Photo streaming work, to accomodate iPhoto 5.0
Modified:
trunk/dpap-sharp/ChangeLog
trunk/dpap-sharp/dpap-client/dpap-client.mdp
trunk/dpap-sharp/dpap-server/Main.cs
trunk/dpap-sharp/dpap-server/dpap-server.mdp
trunk/dpap-sharp/lib/Database.cs
trunk/dpap-sharp/lib/Photo.cs
trunk/dpap-sharp/lib/Server.cs
Modified: trunk/dpap-sharp/dpap-client/dpap-client.mdp
==============================================================================
--- trunk/dpap-sharp/dpap-client/dpap-client.mdp (original)
+++ trunk/dpap-sharp/dpap-client/dpap-client.mdp Wed Jul 23 19:23:19 2008
@@ -25,4 +25,4 @@
<ProjectReference type="Gac" localcopy="True" refto="Banshee.Services, Version=1.0.0.38868, Culture=neutral" />
<ProjectReference type="Project" localcopy="True" refto="dpap-sharp" />
</References>
-</Project>
+</Project>
\ No newline at end of file
Modified: trunk/dpap-sharp/dpap-server/Main.cs
==============================================================================
--- trunk/dpap-sharp/dpap-server/Main.cs (original)
+++ trunk/dpap-sharp/dpap-server/Main.cs Wed Jul 23 19:23:19 2008
@@ -3,10 +3,8 @@
//
// Authors:
// Andrzej Wytyczak-Partyka <iapart gmail com>
-// James Willcox <snorp snorp net>
//
// Copyright (C) 2008 Andrzej Wytyczak-Partyka
-// Copyright (C) 2005 James Willcox <snorp snorp net>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
@@ -60,13 +58,22 @@
};
Photo p = new Photo();
- p.FileName = "/home/andrzej/Obrazy/tesco_droid.jpg";
+ p.FileName = "./podeszczu.jpg";
p.Title = "test";
p.Format = "JPEG";
p.Size = 13946;
database.AddPhoto(p);
+
+ Photo p1 = new Photo();
+ p1.FileName = "./Grill.jpg";
+ p1.Title = "grill";
+ p1.Format = "JPEG";
+ p1.Size = 35209;
+ database.AddPhoto(p1);
+
Album a = new Album("test album");
- a.AddPhoto(p);
+ a.AddPhoto(p);
+ a.AddPhoto(p1);
database.AddAlbum(a);
Console.WriteLine("Album count is now " + database.Albums.Count);
Console.WriteLine("Photo name is " + database.Photos[0].FileName);
Modified: trunk/dpap-sharp/dpap-server/dpap-server.mdp
==============================================================================
--- trunk/dpap-sharp/dpap-server/dpap-server.mdp (original)
+++ trunk/dpap-sharp/dpap-server/dpap-server.mdp Wed Jul 23 19:23:19 2008
@@ -25,4 +25,4 @@
<ProjectReference type="Gac" localcopy="True" refto="Banshee.Services, Version=1.0.0.38868, Culture=neutral" />
<ProjectReference type="Project" localcopy="True" refto="dpap-sharp" />
</References>
-</Project>
+</Project>
\ No newline at end of file
Modified: trunk/dpap-sharp/lib/Database.cs
==============================================================================
--- trunk/dpap-sharp/lib/Database.cs (original)
+++ trunk/dpap-sharp/lib/Database.cs Wed Jul 23 19:23:19 2008
@@ -270,16 +270,19 @@
ContentNode albumsNode = ContentParser.Parse (client.Bag, albumsData);
// DEBUG data
- //albumsNode.Dump();
- if (IsUpdateResponse (albumsNode))
- return;
+ albumsNode.Dump();
+ Console.WriteLine("after dump!");
+
+ // if (IsUpdateResponse (albumsNode))
+ // return;
// handle album additions/changes
ArrayList plids = new ArrayList ();
foreach (ContentNode albumNode in (ContentNode[]) albumsNode.GetChild ("dmap.listing").Value) {
Album pl = Album.FromNode (albumNode);
-
+ // DEBUG
+ Console.WriteLine("foreach loop");
if (pl != null) {
plids.Add (pl.Id);
Album existing = LookupAlbumById (pl.Id);
@@ -291,7 +294,8 @@
}
}
}
-
+ // DEBUG
+ Console.WriteLine("delete albums that don't exist");
// delete albums that no longer exist
foreach (Album pl in new List<Album> (albums)) {
if (!plids.Contains (pl.Id)) {
@@ -300,7 +304,8 @@
}
plids = null;
-
+ // DEBUG
+ Console.WriteLine("Add/remove photos in the albums");
// add/remove photos in the albums
foreach (Album pl in albums) {
byte[] albumPhotosData = client.Fetcher.Fetch (String.Format ("/databases/{0}/containers/{1}/items",
Modified: trunk/dpap-sharp/lib/Photo.cs
==============================================================================
--- trunk/dpap-sharp/lib/Photo.cs (original)
+++ trunk/dpap-sharp/lib/Photo.cs Wed Jul 23 19:23:19 2008
@@ -177,12 +177,18 @@
this.id = id;
}
internal ContentNode ToFileData () {
- return new ContentNode ("dpap.databasesongs",
- new ContentNode ("dmap.status", 200),
- new ContentNode ("dmap.updatetype", (byte) 0),
- new ContentNode ("dmap.specifiedtotalcount", 1),
- new ContentNode ("dmap.returnedcount", 1),
- new ContentNode ("dmap.listing",
+
+ ArrayList nodes = new ArrayList ();
+
+ nodes.Add (new ContentNode ("dmap.itemid", id));
+ nodes.Add (new ContentNode ("dpap.filedata",
+ new ContentNode ("dpap.imagefilesize", size),
+ new ContentNode ("dpap.imagefilename", fileName)));
+ return (new ContentNode("dmap.listingitem", nodes));
+
+ /*
+
+
new ContentNode ("dmap.listingitem",
new ContentNode ("dmap.itemid", id),
// new ContentNode ("dmap.persistentid", (long) id),
@@ -191,7 +197,7 @@
new ContentNode ("dpap.filedata",
new ContentNode ("dpap.imagefilesize", size),
new ContentNode ("dpap.imagefilename", fileName))))
- );
+ );*/
}
internal ContentNode ToNode (string[] fields) {
Modified: trunk/dpap-sharp/lib/Server.cs
==============================================================================
--- trunk/dpap-sharp/lib/Server.cs (original)
+++ trunk/dpap-sharp/lib/Server.cs Wed Jul 23 19:23:19 2008
@@ -763,18 +763,39 @@
ws.WriteResponse (client, node);
} else if (dbPhotoRegex.IsMatch (photoQuery)) {
Console.WriteLine("dbPhotoRegex");
- Match match = dbPhotoRegex0.Match (path);
- int dbid = Int32.Parse (match.Groups[1].Value);
- match = dbPhotoRegex.Match(photoQuery);
- int photoid = Int32.Parse (match.Groups[1].Value);
-
+ Console.WriteLine("dbItemsRegex, query=" + query["query"] + " meta=" + query["meta"]);
+ string[] photoIds = query["query"].Split (',');
+ Match match = dbPhotoRegex0.Match(path);
+ int dbid = Int32.Parse (match.Groups[1].Value);
+ int photoid = 0;
+
+
+ //match = dbPhotoRegex.Match(photoQuery);
+
Database db = revmgr.GetDatabase (clientRev, dbid);
if (db == null) {
ws.WriteResponse (client, HttpStatusCode.BadRequest, "invalid database id");
return true;
}
-
- Photo photo = db.LookupPhotoById (photoid);
+ ArrayList photoNodes = new ArrayList();
+ Photo photo = db.LookupPhotoById (1);
+ foreach (string photoId in photoIds)
+ {
+ match = dbPhotoRegex.Match (photoId);
+ photoid = Int32.Parse (match.Groups[1].Value);
+ Console.WriteLine("Requested photo id=" + photoid);
+ photo = db.LookupPhotoById (photoid);
+ photoNodes.Add(photo.ToFileData());
+ }
+
+ ArrayList children = new ArrayList ();
+ children.Add (new ContentNode ("dmap.status", 200));
+ children.Add (new ContentNode ("dmap.updatetype", (byte) 0));
+ children.Add (new ContentNode ("dmap.specifiedtotalcount", 2));
+ children.Add (new ContentNode ("dmap.returnedcount", 2));
+ children.Add (new ContentNode ("dmap.listing", photoNodes));
+ ContentNode dbsongs = new ContentNode ("dpap.databasesongs", children);
+
Console.WriteLine(photo.ToString());
if (photo == null) {
ws.WriteResponse (client, HttpStatusCode.BadRequest, "invalid photo id");
@@ -791,10 +812,10 @@
if (photo.FileName != null) {
Console.WriteLine("photo.Filename != null" + query["meta"].Split (',')[0]);
- ContentNode node = photo.ToFileData();
- node.Dump();
- ws.WriteResponse (client, node);
- ws.WriteResponseFile (client, photo.FileName, range);
+ //ContentNode node = photo.ToFileData();
+ //node.Dump();
+ ws.WriteResponse (client, dbsongs);
+ // ws.WriteResponseFile (client, photo.FileName, range);
} else if (db.Client != null) {
Console.WriteLine("db.Client != null");
long photoLength = 0;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]