internal ContentNode ToNode(string[] fields)
{
ArrayList nodes = new ArrayList ();
foreach (string field in fields) {
object val = null;
switch (field) {
case "dmap.itemid":
val = id;
break;
case "dmap.itemname":
val = title;
break;
case "dmap.itemkind":
val = (byte) 2;
break;
case "dmap.persistentid":
val = (long) id;
break;
case "daap.songalbum":
val = album;
break;
case "daap.songgrouping":
val = String.Empty;
break;
case "daap.songartist":
val = artist;
break;
case "daap.songbitrate":
val = (short) bitrate;
break;
case "daap.songbeatsperminute":
val = (short) 0;
break;
case "daap.songcomment":
val = String.Empty;
break;
case "daap.songcompilation":
val = (byte) 0;
break;
case "daap.songcomposer":
val = String.Empty;
break;
case "daap.songdateadded":
val = dateAdded;
break;
case "daap.songdatemodified":
val = dateModified;
break;
case "daap.songdisccount":
val = (short) 0;
break;
case "daap.songdiscnumber":
val = (short) 0;
break;
case "daap.songdisabled":
val = (byte) 0;
break;
case "daap.songeqpreset":
val = String.Empty;
break;
case "daap.songformat":
val = format;
break;
case "daap.songgenre":
val = genre;
break;
case "daap.songdescription":
val = String.Empty;
break;
case "daap.songrelativevolume":
val = (int) 0;
break;
case "daap.songsamplerate":
val = 0;
break;
case "daap.songsize":
val = size;
break;
case "daap.songstarttime":
val = 0;
break;
case "daap.songstoptime":
val = 0;
break;
case "daap.songtime":
val = (int) duration.TotalMilliseconds;
break;
case "daap.songtrackcount":
val = (short) trackCount;
break;
case "daap.songtracknumber":
val = (short) trackNumber;
break;
case "daap.songuserrating":
val = (byte) 0;
break;
case "daap.songyear":
val = (short) year;
break;
case "daap.songdatakind":
val = (byte) 0;
break;
case "daap.songdataurl":
val = String.Empty;
break;
default:
break;
}
if (val != null) {
// iTunes wants this to go first, sigh
if (field == "dmap.itemkind")
nodes.Insert (0, new ContentNode (field, val));
else
nodes.Add (new ContentNode (field, val));
}
}
return new ContentNode ("dmap.listingitem", nodes);
}