Update of /cvsroot/gtkpod/libgpod/src
In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv21447/src

Modified Files:
        itdb.h itdb_itunesdb.c 
Log Message:
        * src/itdb.h
          src/itdb_itunesdb.c: added tvshow, tvepisode, tvnetwork,
          albumartist, keywords, reseved to Itdb_Track. 'reserved' can
          later be used to support 'Artist, The'.



Index: itdb.h
===================================================================
RCS file: /cvsroot/gtkpod/libgpod/src/itdb.h,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -d -r1.54 -r1.55
--- itdb.h      8 Jan 2007 13:01:52 -0000       1.54
+++ itdb.h      9 Jan 2007 14:49:00 -0000       1.55
@@ -1,4 +1,4 @@
-/* Time-stamp: <2007-01-08 21:59:10 jcs>
+/* Time-stamp: <2007-01-09 23:44:56 jcs>
 |
 |  Copyright (C) 2002-2006 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -651,6 +651,14 @@
   gchar   *podcastrss;       /* see note for MHOD_ID in itdb_itunesdb.c */
   gchar   *chapterdata;      /* see note for MHOD_ID in itdb_itunesdb.c */
   gchar   *subtitle;         /* see note for MHOD_ID in itdb_itunesdb.c */
+/* the following 6 are new in libgpod 0.4.2... */
+  gchar   *tvshow;           /* see note for MHOD_ID in itdb_itunesdb.c */
+  gchar   *tvepisode;        /* see note for MHOD_ID in itdb_itunesdb.c */
+  gchar   *tvnetwork;        /* see note for MHOD_ID in itdb_itunesdb.c */
+  gchar   *albumartist;      /* see note for MHOD_ID in itdb_itunesdb.c */
+  gchar   *keywords;         /* see note for MHOD_ID in itdb_itunesdb.c */
+  gchar   *reserved;         /* will probably be used for artistthe     */
+/* ... to here */
   guint32 id;                /* unique ID of track     */
   gint32  size;              /* size of file in bytes  */
   gint32  tracklen;          /* Length of track in ms  */

Index: itdb_itunesdb.c
===================================================================
RCS file: /cvsroot/gtkpod/libgpod/src/itdb_itunesdb.c,v
retrieving revision 1.71
retrieving revision 1.72
diff -u -d -r1.71 -r1.72
--- itdb_itunesdb.c     8 Jan 2007 10:23:15 -0000       1.71
+++ itdb_itunesdb.c     9 Jan 2007 14:49:00 -0000       1.72
@@ -1,4 +1,4 @@
-/* Time-stamp: <2007-01-06 20:47:47 jcs>
+/* Time-stamp: <2007-01-09 23:46:31 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -169,6 +169,22 @@
 /* Subtitle (usually the same as Description). Introduced in db
    version 0x0d. */
   MHOD_ID_SUBTITLE = 18,
+/* Show (for TV Shows only). Introduced in db version 0x0d? */
+  MHOD_ID_TVSHOW = 19, 
+/* Episode # (for TV Shows only). Introduced in db version 0x0d? */
+  MHOD_ID_TVEPISODE = 20,
+/* TV Network (for TV Shows only). Introduced in db version 0x0d? */
+  MHOD_ID_TVNETWORK = 21,
+/* Album Artist. Introduced in db version 0x13? */
+  MHOD_ID_ALBUMARTIST = 22,
+/* This only seems to appear if the Artist has "The" in front of it
+  (like "The Monkies") in which case it will be in the format "Artist,
+  The" and is followed by 5 0x01 UTF-16 characters. Introduced in db
+  version 0x13? */
+/*  MHOD_ID_ARTISTTHE = 23,   later */
+/* Appears to be a list of keywords pertaining to a track. Introduced
+   in db version 0x13? */
+  MHOD_ID_KEYWORDS = 24,
   MHOD_ID_SPLPREF = 50,  /* settings for smart playlist */
   MHOD_ID_SPLRULES = 51, /* rules for smart playlist     */
   MHOD_ID_LIBPLAYLISTINDEX = 52,  /* Library Playlist Index */
@@ -1468,7 +1484,6 @@
    cts->error is set appropriately. */
 static gchar *get_mhod_string (FContents *cts, glong seek, guint32 *ml, gint32 
*mty)
 {
-    gchar *result = NULL;
     MHODData mhoddata;
 
     *mty = get_mhod_type (cts, seek, ml);
@@ -1490,19 +1505,28 @@
     case MHOD_ID_PODCASTURL:
     case MHOD_ID_PODCASTRSS:
     case MHOD_ID_SUBTITLE:
+    case MHOD_ID_TVSHOW:
+    case MHOD_ID_TVEPISODE:
+    case MHOD_ID_TVNETWORK:
+    case MHOD_ID_ALBUMARTIST:
+    case MHOD_ID_KEYWORDS:
        mhoddata = get_mhod (cts, seek, ml);
        if ((*ml != -1) && mhoddata.valid)
-           result = mhoddata.data.string;
-       break;
+           return mhoddata.data.string;
+       else
+           return NULL;
     case MHOD_ID_SPLPREF:
     case MHOD_ID_SPLRULES:
     case MHOD_ID_LIBPLAYLISTINDEX:
     case MHOD_ID_PLAYLIST:
     case MHOD_ID_CHAPTERDATA:
        /* these do not have a string entry */
-       break;
+       return NULL;
     }
-    return result;
+#if ITUNESDB_MHIT_DEBUG
+    fprintf (stderr, "Ignoring unknown MHOD of type %d at offset %ld\n", *mty, 
seek);
+#endif
+    return NULL;
 }
 
 
@@ -1944,6 +1968,11 @@
          case MHOD_ID_PODCASTURL:
          case MHOD_ID_PODCASTRSS:
          case MHOD_ID_SUBTITLE:
+         case MHOD_ID_TVSHOW:
+         case MHOD_ID_TVEPISODE:
+         case MHOD_ID_TVNETWORK:
+         case MHOD_ID_ALBUMARTIST:
+         case MHOD_ID_KEYWORDS:
          case MHOD_ID_CHAPTERDATA:
              /* these are not expected here */
              break;
@@ -2207,9 +2236,26 @@
          case MHOD_ID_SUBTITLE:
              track->subtitle = entry_utf8;
              break;
-         default: /* unknown entry -- discard */
-             g_warning ("Unknown string mhod type %d at %lx inside mhit 
starting at %lx\n",
-                        type, seek, mhit_seek);
+         case MHOD_ID_TVSHOW:
+             track->tvshow = entry_utf8;
+             break;
+         case MHOD_ID_TVEPISODE:
+             track->tvepisode = entry_utf8;
+             break;
+         case MHOD_ID_TVNETWORK:
+             track->tvnetwork = entry_utf8;
+             break;
+         case MHOD_ID_ALBUMARTIST:
+             track->albumartist = entry_utf8;
+             break;
+         case MHOD_ID_KEYWORDS:
+             track->keywords = entry_utf8;
+             break;
+         case MHOD_ID_SPLPREF:
+         case MHOD_ID_SPLRULES:
+         case MHOD_ID_LIBPLAYLISTINDEX:
+         case MHOD_ID_PLAYLIST:
+         case MHOD_ID_CHAPTERDATA:
              g_free (entry_utf8);
              break;
          }
@@ -3393,6 +3439,11 @@
   case MHOD_ID_GROUPING:
   case MHOD_ID_DESCRIPTION:
   case MHOD_ID_SUBTITLE:
+  case MHOD_ID_TVSHOW:
+  case MHOD_ID_TVEPISODE:
+  case MHOD_ID_TVNETWORK:
+  case MHOD_ID_ALBUMARTIST:
+  case MHOD_ID_KEYWORDS:
       g_return_if_fail (mhod->data.string);
       /* normal iTunesDBs seem to take utf16 strings), endian-inversed
         iTunesDBs seem to take utf8 strings */
@@ -3783,6 +3834,41 @@
            mk_mhod (cts, &mhod);
            ++mhod_num;
        }
+       if (track->tvshow && *track->tvshow)
+       {
+           mhod.type = MHOD_ID_TVSHOW;
+           mhod.data.string = track->tvshow;
+           mk_mhod (cts, &mhod);
+           ++mhod_num;
+       }
+       if (track->tvepisode && *track->tvepisode)
+       {
+           mhod.type = MHOD_ID_TVEPISODE;
+           mhod.data.string = track->tvepisode;
+           mk_mhod (cts, &mhod);
+           ++mhod_num;
+       }
+       if (track->tvnetwork && *track->tvnetwork)
+       {
+           mhod.type = MHOD_ID_TVNETWORK;
+           mhod.data.string = track->tvnetwork;
+           mk_mhod (cts, &mhod);
+           ++mhod_num;
+       }
+       if (track->albumartist && *track->albumartist)
+       {
+           mhod.type = MHOD_ID_ALBUMARTIST;
+           mhod.data.string = track->albumartist;
+           mk_mhod (cts, &mhod);
+           ++mhod_num;
+       }
+       if (track->keywords && *track->keywords)
+       {
+           mhod.type = MHOD_ID_KEYWORDS;
+           mhod.data.string = track->keywords;
+           mk_mhod (cts, &mhod);
+           ++mhod_num;
+       }
        if (track->podcasturl && *track->podcasturl)
        {
            mhod.type = MHOD_ID_PODCASTURL;


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
gtkpod-cvs2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2

Reply via email to