[rhythmbox] mtp: add track number to filenames



commit 2332096e09b50b97150d1a607d2c4e821415cb6e
Author: Jonathan Matthew <jonathan d14n org>
Date:   Tue Aug 28 21:51:42 2012 +1000

    mtp: add track number to filenames
    
    This allows me to store things like this:
    http://www.discogs.com/UR-Codebreaker/release/1694
    on MTP devices.

 plugins/mtpdevice/rb-mtp-source.c |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)
---
diff --git a/plugins/mtpdevice/rb-mtp-source.c b/plugins/mtpdevice/rb-mtp-source.c
index fef15a6..abe7281 100644
--- a/plugins/mtpdevice/rb-mtp-source.c
+++ b/plugins/mtpdevice/rb-mtp-source.c
@@ -1199,6 +1199,7 @@ prepare_encoder_sink_cb (RBEncoderFactory *factory,
 	LIBMTP_track_t *track;
 	char **bits;
 	char *extension;
+	char *track_str;
 	LIBMTP_filetype_t filetype;
 	gulong track_id;
 	GDate d;
@@ -1230,10 +1231,21 @@ prepare_encoder_sink_cb (RBEncoderFactory *factory,
 	track->genre = rhythmdb_entry_dup_string (entry, RHYTHMDB_PROP_GENRE);
 
 	/* build up device filename */
-	track->filename = g_strdup_printf ("%s - %s.%s",
+	if (rhythmdb_entry_get_ulong (entry, RHYTHMDB_PROP_DISC_NUMBER) > 0) {
+		track_str = g_strdup_printf ("%.2lu.%.2lu ",
+					     rhythmdb_entry_get_ulong (entry, RHYTHMDB_PROP_DISC_NUMBER),
+					     rhythmdb_entry_get_ulong (entry, RHYTHMDB_PROP_TRACK_NUMBER));
+	} else {
+		track_str = g_strdup_printf ("%.2lu ",
+					     rhythmdb_entry_get_ulong (entry, RHYTHMDB_PROP_TRACK_NUMBER));
+	}
+	
+	track->filename = g_strdup_printf ("%s%s - %s.%s",
+					   track_str,
 					   rhythmdb_entry_get_string (entry, RHYTHMDB_PROP_ARTIST),
 					   rhythmdb_entry_get_string (entry, RHYTHMDB_PROP_TITLE),
 					   extension);
+	g_free (track_str);
 	g_free (extension);
 
 	/* construct folder path: artist/album */



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]