# HG changeset patch # User William Pitcock # Date 1186753379 18000 # Node ID 654aa79e43ef2cf84a930e3fdee5d267320c4ed2 # Parent 60305596b899aa848ffd73371204d4c4547aad0c flacng: new tuple API diff -r 60305596b899 -r 654aa79e43ef src/flacng/flacng.h --- a/src/flacng/flacng.h Fri Aug 10 08:19:51 2007 -0500 +++ b/src/flacng/flacng.h Fri Aug 10 08:42:59 2007 -0500 @@ -21,6 +21,7 @@ #include #include +#include #include #include # include "config.h" diff -r 60305596b899 -r 654aa79e43ef src/flacng/plugin.c --- a/src/flacng/plugin.c Fri Aug 10 08:19:51 2007 -0500 +++ b/src/flacng/plugin.c Fri Aug 10 08:42:59 2007 -0500 @@ -687,10 +687,10 @@ /* --- */ -TitleInput *flac_get_song_tuple(gchar* filename) { +Tuple *flac_get_song_tuple(gchar* filename) { VFSFile *fd; - TitleInput *tuple; + Tuple *tuple; _ENTER; diff -r 60305596b899 -r 654aa79e43ef src/flacng/plugin.h --- a/src/flacng/plugin.h Fri Aug 10 08:19:51 2007 -0500 +++ b/src/flacng/plugin.h Fri Aug 10 08:42:59 2007 -0500 @@ -10,6 +10,6 @@ void flac_pause(InputPlayback* input, gshort p); void flac_seek(InputPlayback* input, gint time); void flac_get_song_info(gchar* filename, gchar** title, gint* length); -TitleInput *flac_get_song_tuple(gchar* filename); +Tuple *flac_get_song_tuple(gchar* filename); #endif diff -r 60305596b899 -r 654aa79e43ef src/flacng/tools.c --- a/src/flacng/tools.c Fri Aug 10 08:19:51 2007 -0500 +++ b/src/flacng/tools.c Fri Aug 10 08:42:59 2007 -0500 @@ -231,48 +231,36 @@ /* --- */ -static const gchar* get_extension(const gchar* filename) { - - _ENTER; +Tuple* get_tuple(const gchar* filename, callback_info* info) { - const gchar *ext = strrchr(filename, '.'); - _LEAVE ext ? ext + 1 : NULL; -} - -/* --- */ - -TitleInput* get_tuple(const gchar* filename, callback_info* info) { - - TitleInput *out; + Tuple *out; _ENTER; _DEBUG("Using callback_info %s", info->name); - out = bmp_title_input_new(); - - out->file_name = g_path_get_basename(filename); - out->file_ext = get_extension(filename); - out->file_path = g_path_get_dirname(filename); + out = tuple_new_from_filename(filename); - out->performer = g_strdup(info->comment.artist); - out->track_name = g_strdup(info->comment.title); - out->album_name = g_strdup(info->comment.album); - out->genre = g_strdup(info->comment.genre); + tuple_associate_string(out, "artist", info->comment.artist); + tuple_associate_string(out, "title", info->comment.title); + tuple_associate_string(out, "album", info->comment.album); + tuple_associate_string(out, "genre", info->comment.genre); + if (info->comment.tracknumber != NULL) - out->track_number = atoi(info->comment.tracknumber); + tuple_associate_int(out, "track-number", atoi(info->comment.tracknumber)); + if (info->comment.date != NULL) - out->year = atoi(info->comment.date); + tuple_associate_int(out, "year", atoi(info->comment.date)); /* * Calculate the stream length (milliseconds) */ if (0 == info->stream.samplerate) { _ERROR("Invalid sample rate for stream!"); - out->length = -1; + tuple_associate_int(out, "length", -1); } else { - out->length = (info->stream.samples / info->stream.samplerate) * 1000; - _DEBUG("Stream length: %d seconds", out->length / 1000); + tuple_associate_int(out, "length", (info->stream.samples / info->stream.samplerate) * 1000); + _DEBUG("Stream length: %d seconds", tuple_get_int(out, "length")); } _DEBUG("Tuple created: [%p]", out); @@ -284,7 +272,7 @@ gchar* get_title(const gchar* filename, callback_info* info) { - TitleInput *input; + Tuple *input; gchar *title; _ENTER; @@ -293,10 +281,9 @@ input = get_tuple(filename, info); - if (!(title = xmms_get_titlestring(xmms_get_gentitle_format(), input))) - title = g_strdup(input->file_name); + title = tuple_formatter_process_string(input, cfg.gentitle_format); - bmp_title_input_free(input); + mowgli_object_unref(input); _DEBUG("Title created: <%s>", title); diff -r 60305596b899 -r 654aa79e43ef src/flacng/tools.h --- a/src/flacng/tools.h Fri Aug 10 08:19:51 2007 -0500 +++ b/src/flacng/tools.h Fri Aug 10 08:42:59 2007 -0500 @@ -42,7 +42,7 @@ callback_info* init_callback_info(gchar* name); void reset_info(callback_info* info, gboolean close_fd); gchar* get_title(const gchar* filename, callback_info* info); -TitleInput *get_tuple(const gchar *filename, callback_info* info); +Tuple *get_tuple(const gchar *filename, callback_info* info); void add_comment(callback_info* info, gchar* key, gchar* value); gboolean read_metadata(VFSFile* fd, FLAC__StreamDecoder* decoder, callback_info* info);