commit 39fd186bb70b1e2650498ccef7aa109f3e0b1818 Author: Joel Smith <jsf-lists.gtk...@jk1.net> Date: Sat Nov 3 22:16:05 2012 -0600
add track sort fields read/write support to AP library libs/atomic-parsley/AtomicParsleyBridge.cpp | 66 +++++++++++++++++++++++++++ 1 files changed, 66 insertions(+), 0 deletions(-) --- diff --git a/libs/atomic-parsley/AtomicParsleyBridge.cpp b/libs/atomic-parsley/AtomicParsleyBridge.cpp index 052f47f..ef1a182 100644 --- a/libs/atomic-parsley/AtomicParsleyBridge.cpp +++ b/libs/atomic-parsley/AtomicParsleyBridge.cpp @@ -72,6 +72,12 @@ extern "C" { #define PODCAST_URL "purl" #define ARTWORK "covr" #define GAPLESS_FLAG "pgap" +#define SORT_TITLE "sonm" +#define SORT_ARTIST "soar" +#define SORT_ALBUM_ARTIST "soaa" +#define SORT_COMPOSER "soco" +#define SORT_ALBUM "soal" +#define SORT_TV_SHOW "sosn" static guint32 mediaTypeTagToMediaType(guint8 media_type) { switch (media_type) { @@ -374,6 +380,48 @@ void AP_read_metadata(const char *filePath, Track *track) { free(value); } + // MP4 Sort Title + value = find_atom_value(SORT_TITLE); + if (value) { + track->sort_title = g_strdup(value); + free(value); + } + + // MP4 Sort Artist + value = find_atom_value(SORT_ARTIST); + if (value) { + track->sort_artist = g_strdup(value); + free(value); + } + + // MP4 Sort Album Artist + value = find_atom_value(SORT_ALBUM_ARTIST); + if (value) { + track->sort_albumartist = g_strdup(value); + free(value); + } + + // MP4 Sort Composer + value = find_atom_value(SORT_COMPOSER); + if (value) { + track->sort_composer = g_strdup(value); + free(value); + } + + // MP4 Sort Album + value = find_atom_value(SORT_ALBUM); + if (value) { + track->sort_album = g_strdup(value); + free(value); + } + + // MP4 Sort TV Show + value = find_atom_value(SORT_TV_SHOW); + if (value) { + track->sort_tvshow = g_strdup(value); + free(value); + } + if (prefs_get_int("coverart_apic")) { gchar *tmp_file_prefix = g_build_filename(g_get_tmp_dir(), "ttt", NULL); gchar *tmp_file; @@ -649,6 +697,24 @@ void AP_write_metadata(Track *track, const char *filePath, GError **error) { } g_free(atom); + // Sort Title + set_limited_text_atom_value(SORT_TITLE, track->sort_title); + + // Sort Artist + set_limited_text_atom_value(SORT_ARTIST, track->sort_artist); + + // Sort Album Artist + set_limited_text_atom_value(SORT_ALBUM_ARTIST, track->sort_albumartist); + + // Sort Composer + set_limited_text_atom_value(SORT_COMPOSER, track->sort_composer); + + // Sort Album + set_limited_text_atom_value(SORT_ALBUM, track->sort_album); + + // Sort TV Show + set_limited_text_atom_value(SORT_TV_SHOW, track->sort_tvshow); + if (prefs_get_int("coverart_apic")) { GdkPixbuf *pixbuf = (GdkPixbuf*) itdb_artwork_get_pixbuf(track->itdb->device, track->artwork, -1, -1); if (!pixbuf) { ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_nov _______________________________________________ gtkpod-cvs2 mailing list gtkpod-cvs2@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2