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