SOURCES: gnomad2-mtp-0.0.2-to-0.0.4.patch (NEW) - from gnomad2 bug...

paszczus paszczus at pld-linux.org
Sat May 6 18:20:18 CEST 2006


Author: paszczus                     Date: Sat May  6 16:20:18 2006 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- from gnomad2 bug tracker

---- Files affected:
SOURCES:
   gnomad2-mtp-0.0.2-to-0.0.4.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/gnomad2-mtp-0.0.2-to-0.0.4.patch
diff -u /dev/null SOURCES/gnomad2-mtp-0.0.2-to-0.0.4.patch:1.1
--- /dev/null	Sat May  6 18:20:18 2006
+++ SOURCES/gnomad2-mtp-0.0.2-to-0.0.4.patch	Sat May  6 18:20:13 2006
@@ -0,0 +1,170 @@
+diff -ru gnomad2-2.8.3.orig/src/jukebox.c gnomad2-2.8.3/src/jukebox.c
+--- gnomad2-2.8.3.orig/src/jukebox.c	2006-03-21 15:02:15.000000000 +0100
++++ gnomad2-2.8.3/src/jukebox.c	2006-05-06 16:20:38.000000000 +0200
+@@ -86,6 +86,48 @@
+  */
+ static GSList *datafilelist = NULL;
+ 
++#ifdef HAVE_LIBMTP
++/*
++ * MTP FILETYPE <-> INTERNAL CODEC STRING relation
++ */
++typedef struct {
++  LIBMTP_filetype_t  filetype;
++  const gchar       *codec;
++} mtp_filetype_description_t;
++
++static const mtp_filetype_description_t mtp_filetype_descriptions[] = {
++  { LIBMTP_FILETYPE_WAV,     "WAV" },
++  { LIBMTP_FILETYPE_MP3,     "MP3" },
++  { LIBMTP_FILETYPE_WMA,     "WMA" },
++  { LIBMTP_FILETYPE_UNKNOWN, "N/A" },
++};
++
++static const mtp_filetype_description_t*
++get_mtp_filetype_description(LIBMTP_filetype_t type) {
++  const mtp_filetype_description_t *current;
++
++  current = &mtp_filetype_descriptions[0];
++  while (current->filetype != LIBMTP_FILETYPE_UNKNOWN) {
++    if (current->filetype == type) return current;
++    ++current;
++  }
++  return current; /* I.E. type == LIBMTP_FILETYPE_UNKNOWN */
++}
++
++static const mtp_filetype_description_t*
++get_mtp_filetype_description_by_codec(const gchar *name) {
++  const mtp_filetype_description_t *current;
++
++  g_assert(name != NULL);
++  current = &mtp_filetype_descriptions[0];
++  while (current->filetype != LIBMTP_FILETYPE_UNKNOWN) {
++    if (strcmp(current->codec, name) == 0)
++      return current;
++    ++current;
++  }
++  return current; /* I.E. type == LIBMTP_FILETYPE_UNKNOWN */  
++}
++#endif
+ 
+ /***********************************************************************************/
+ /* Public and private functions                                                    */
+@@ -1348,6 +1390,10 @@
+ #ifdef HAVE_LIBMTP
+       LIBMTP_track_t *tmp;
+       gchar *tmpyear;
++      const mtp_filetype_description_t *filetype_d;
++
++      // Retrieve filetype infos.
++      filetype_d = get_mtp_filetype_description(mtptrack->filetype);
+ 
+       // Add to metadata holder
+       meta->path = g_strdup_printf("%lu", mtptrack->item_id);
+@@ -1357,19 +1403,7 @@
+       meta->album = g_strdup(mtptrack->album);
+       meta->length = seconds_to_mmss((guint) (mtptrack->duration/1000));
+       meta->size = (guint32) mtptrack->filesize;
+-      switch (mtptrack->codec) {
+-      case LIBMTP_CODEC_WAV:
+-	meta->codec = g_strdup("WAV");
+-	break;
+-      case LIBMTP_CODEC_MP3:
+-	meta->codec = g_strdup("MP3");
+-	break;
+-      case LIBMTP_CODEC_WMA:
+-	meta->codec = g_strdup("WMA");
+-	break;
+-      default:
+-	meta->codec = g_strdup("N/A");
+-      }
++      meta->codec = g_strdup(filetype_d->codec);
+       meta->trackno = (guint) mtptrack->tracknumber;
+       // TODO: Complicated. Fix later.
+       tmpyear = g_strdup(mtptrack->date);
+@@ -1595,7 +1629,7 @@
+  * Same thing but for MTP.
+  */
+ #ifdef HAVE_LIBMTP
+-static LIBMTP_progressfunc_t mtp_progress;
++static const LIBMTP_progressfunc_t mtp_progress;
+ static int mtp_progress (uint64_t const sent, uint64_t const total,
+ 			 void const * const data)
+ {
+@@ -1833,6 +1867,10 @@
+ #ifdef HAVE_LIBMTP
+ 	LIBMTP_track_t *trackmeta = LIBMTP_new_track_t();
+ 	int ret;
++	const mtp_filetype_description_t *filetype_d;
++
++	// Retrieve filetype infos
++	filetype_d = get_mtp_filetype_description_by_codec(hdmeta->codec);
+ 	
+ 	// This will be filled in, dummy set to 0.
+ 	trackmeta->item_id = 0;
+@@ -1846,19 +1884,11 @@
+ 	// This need to be in milliseconds
+ 	trackmeta->duration = length * 1000;
+ 	trackmeta->filesize = get_64bit_file_size(tmpfname);
+-	if (!strcmp(hdmeta->codec, "WAV")) {
+-	  trackmeta->codec = LIBMTP_CODEC_WAV;
+-	} else if (!strcmp(hdmeta->codec, "MP3")) {
+-	  trackmeta->codec = LIBMTP_CODEC_MP3;
+-	} else if (!strcmp(hdmeta->codec, "WMA")) {
+-	  trackmeta->codec = LIBMTP_CODEC_WMA;
+-	} else {
+-	  trackmeta->codec = LIBMTP_CODEC_UNKNOWN;
+-	}
++	trackmeta->filetype = filetype_d->filetype;
+ 	// TODO: Discarding return value as for now
+ 	g_print("Transferring MTP track...\n");
+ 	ret = LIBMTP_Send_Track_From_File(mtpdevice, tmpfname, trackmeta,
+-					  mtp_progress, NULL);
++					  mtp_progress, NULL, 0);
+ 	if (ret != 0) {
+ 	  g_print("Error sending file \"%s\" to MTP device!\n", tmpfname);
+ 	  goto hd2jb_cleanup;
+@@ -2146,7 +2176,7 @@
+ #ifdef HAVE_LIBMTP
+ 	int ret;
+ 	// TODO: what do we do if the returncode is != 0?
+-	ret = LIBMTP_Delete_Track(mtpdevice, id);
++	ret = LIBMTP_Delete_File(mtpdevice, id);
+ #endif
+       } else {
+ 	if ( NJB_Delete_Track(pdedevice, id) == -1 ) {
+@@ -2199,7 +2229,11 @@
+ #ifdef HAVE_LIBMTP
+     LIBMTP_track_t *trackmeta = LIBMTP_new_track_t();
+     int ret;
++    const mtp_filetype_description_t *filetype_d;
+ 
++    // Retrieve filetype infos.
++    filetype_d = get_mtp_filetype_description_by_codec(meta->codec);
++    
+     trackmeta->item_id = id;
+     trackmeta->title = g_strdup(meta->title);
+     trackmeta->album = g_strdup(meta->album);
+@@ -2208,20 +2242,13 @@
+     trackmeta->date = g_strdup_printf("%4d0101T0000.0", meta->year);
+     // This cannot be set this way but send it anyway
+     trackmeta->filename = g_strdup(meta->filename);
++    trackmeta->filetype = filetype_d->filetype;
+     trackmeta->tracknumber = meta->trackno;
+     // This need to be in milliseconds
+     trackmeta->duration = length * 1000;
+     // This cannot be set this way but send it anyway
+     trackmeta->filesize = (uint64_t) meta->size;
+-    if (!strcmp(meta->codec, "WAV")) {
+-      trackmeta->codec = LIBMTP_CODEC_WAV;
+-    } else if (!strcmp(meta->codec, "MP3")) {
+-      trackmeta->codec = LIBMTP_CODEC_MP3;
+-    } else if (!strcmp(meta->codec, "WMA")) {
+-      trackmeta->codec = LIBMTP_CODEC_WMA;
+-    } else {
+-      trackmeta->codec = LIBMTP_CODEC_UNKNOWN;
+-    }
++    trackmeta->filetype = filetype_d->filetype;
+     // TODO: Discarding return value as for now
+     ret = LIBMTP_Update_Track_Metadata(mtpdevice, trackmeta);
+     LIBMTP_destroy_track_t(trackmeta);
================================================================


More information about the pld-cvs-commit mailing list