# HG changeset patch # User William Pitcock # Date 1186749936 18000 # Node ID b274ac478607f61d2a6c9aa05aae9517ad8cd6a3 # Parent 4993976d7ed07ee4977bbbe721fe2fd16581bd48# Parent 138ea47220e8c18a223904f87b75a3a2ae4a60df Automated merge with ssh://hg.atheme.org//hg/audacious-plugins diff -r 4993976d7ed0 -r b274ac478607 src/aac/src/libmp4.c --- a/src/aac/src/libmp4.c Fri Aug 10 07:45:29 2007 -0500 +++ b/src/aac/src/libmp4.c Fri Aug 10 07:45:36 2007 -0500 @@ -6,13 +6,15 @@ #include "mp4ff.h" #include "tagging.h" -#include -#include -#include -#include -#include -#include -#include +#include "audacious/plugin.h" +#include "audacious/output.h" +#include "audacious/util.h" +#include "audacious/vfs.h" +#include "audacious/i18n.h" +#include "audacious/strings.h" +#include "audacious/main.h" +#include "audacious/tuple.h" +#include "audacious/tuple_formatter.h" #define MP4_VERSION VERSION @@ -41,7 +43,7 @@ static void mp4_seek(InputPlayback *, int); static void mp4_cleanup(void); static void mp4_get_song_title_len(char *filename, char **, int *); -static TitleInput* mp4_get_song_tuple(char *); +static Tuple* mp4_get_song_tuple(char *); static int mp4_is_our_fd(char *, VFSFile *); static gchar *fmts[] = { "m4a", "mp4", "aac", NULL }; @@ -326,13 +328,13 @@ { } -static TitleInput *mp4_get_song_tuple(char *fn) +static Tuple *mp4_get_song_tuple(char *fn) { mp4ff_callback_t *mp4cb = g_malloc0(sizeof(mp4ff_callback_t)); VFSFile *mp4fh; mp4ff_t *mp4file; - TitleInput *input = NULL; - gchar *filename = g_strdup(fn); + Tuple *ti = tuple_new(); + gchar *scratch; gboolean remote = str_has_prefix_nocase(filename, "http:") || str_has_prefix_nocase(filename, "https:"); @@ -343,19 +345,22 @@ { g_free(mp4cb); - input = bmp_title_input_new(); + tuple_associate_string(ti, "title", vfs_get_metadata(mp4fh, "track-name")); + tuple_associate_string(ti, "album", vfs_get_metadata(mp4fh, "stream-name")); - input->track_name = vfs_get_metadata(mp4fh, "track-name"); - input->album_name = vfs_get_metadata(mp4fh, "stream-name"); + scratch = g_path_get_basename(fn); + tuple_associate_string(ti, "file-name", scratch); + g_free(scratch); - input->file_name = g_path_get_basename(filename); - input->file_path = g_path_get_dirname(filename); - input->file_ext = extname(filename); + scratch = g_path_get_dirname(fn); + tuple_associate_string(ti, "file-path", scratch); + g_free(scratch); - input->mtime = 0; - input->length = -1; + tuple_associate_string(ti, "file-ext", extname(fn)); + tuple_associate_string(ti, "codec", "Advanced Audio Coding (AAC)"); + tuple_associate_string(ti, "quality", "lossy"); - return input; + return ti; } vfs_rewind(mp4fh); @@ -409,13 +414,23 @@ msDuration = ((float)numSamples * (float)(framesize - 1.0)/(float)samplerate) * 1000; - input = bmp_title_input_new(); + mp4ff_meta_get_title(mp4file, scratch); + tuple_associate_string(ti, "title", scratch); + g_free(scratch); + + mp4ff_meta_get_album(mp4file, scratch); + tuple_associate_string(ti, "title", scratch); + g_free(scratch); - mp4ff_meta_get_title(mp4file, &input->track_name); - mp4ff_meta_get_album(mp4file, &input->album_name); - mp4ff_meta_get_artist(mp4file, &input->performer); + mp4ff_meta_get_artist(mp4file, scratch); + tuple_associate_string(ti, "artist", scratch); + g_free(scratch); + + mp4ff_meta_get_genre(mp4file, scratch); + tuple_associate_string(ti, "genre", scratch); + g_free(scratch); + mp4ff_meta_get_date(mp4file, &tmpval); - mp4ff_meta_get_genre(mp4file, &input->genre); if (tmpval) { @@ -423,16 +438,23 @@ free(tmpval); } - input->file_name = g_path_get_basename(filename); - input->file_path = g_path_get_dirname(filename); - input->file_ext = extname(filename); - input->length = msDuration; + scratch = g_path_get_basename(fn); + tuple_associate_string(ti, "file-name", scratch); + g_free(scratch); + + scratch = g_path_get_dirname(fn); + tuple_associate_string(ti, "file-path", scratch); + g_free(scratch); + + tuple_associate_string(ti, "file-ext", extname(fn)); + tuple_associate_string(ti, "codec", "Advanced Audio Coding (AAC)"); + tuple_associate_string(ti, "quality", "lossy"); free (mp4cb); vfs_fclose(mp4fh); } - return input; + return ti; } static void mp4_get_song_title_len(char *filename, char **title, int *len) diff -r 4993976d7ed0 -r b274ac478607 src/wma/wma.c --- a/src/wma/wma.c Fri Aug 10 07:45:29 2007 -0500 +++ b/src/wma/wma.c Fri Aug 10 07:45:36 2007 -0500 @@ -32,13 +32,15 @@ #include #include -#include -#include -#include -#include -#include -#include -#include +#include "audacious/plugin.h" +#include "audacious/output.h" +#include "audacious/util.h" +#include "audacious/vfs.h" +#include "audacious/strings.h" +#include "audacious/i18n.h" +#include "audacious/main.h" +#include "audacious/tuple.h" +#include "audacious/tuple_formatter.h" #include "avcodec.h" #include "avformat.h" @@ -82,7 +84,7 @@ static void wma_seek(InputPlayback *data, int time); static void wma_do_pause(InputPlayback *data, short p); static void wma_get_song_info(char *filename, char **title, int *length); -static TitleInput *wma_get_song_tuple(char *filename); +static Tuple *wma_get_song_tuple(char *filename); static char *wsong_title; static int wsong_time; @@ -241,39 +243,45 @@ return ext; } -static TitleInput *wma_get_song_tuple(gchar * filename) +static Tuple *wma_get_song_tuple(gchar * filename) { - TitleInput *tuple = NULL; + Tuple *ti = tuple_new(); AVFormatContext *in = NULL; - gchar *filename_proxy = g_strdup(filename); + gchar *scratch; if (av_open_input_file(&in, str_twenty_to_space(filename), NULL, 0, NULL) < 0) return NULL; - tuple = bmp_title_input_new(); + scratch = g_path_get_basename(filename); + tuple_associate_string(ti, "file-name", scratch); + g_free(scratch); - tuple->file_name = g_path_get_basename(filename_proxy); - tuple->file_path = g_path_get_dirname(filename_proxy); - tuple->file_ext = extname(filename_proxy); - + scratch = g_path_get_dirname(filename); + tuple_associate_string(ti, "file-path", scratch); + g_free(scratch); + + tuple_associate_string(ti, "file-ext", extname(filename)); + tuple_associate_string(ti, "codec", "Windows Media Audio (WMA)"); + tuple_associate_string(ti, "quality", "lossy"); + av_find_stream_info(in); if(strlen(in->title)) - tuple->track_name = strdup(in->title); + tuple_associate_string(ti, "title", in->title); if(strlen(in->author)) - tuple->performer = strdup(in->author); + tuple_associate_string(ti, "artist", in->author); if(strlen(in->album)) - tuple->album_name = strdup(in->album); + tuple_associate_string(ti, "album", in->album); if(strlen(in->comment)) - tuple->comment = strdup(in->comment); + tuple_associate_string(ti, "comment", in->comment); if(strlen(in->genre)) - tuple->genre = strdup(in->genre); + tuple_associate_string(ti, "genre", in->genre); if(in->year > 0) - tuple->year = in->year; + tuple_associate_int(ti, "year", in->year); if(in->track > 0) - tuple->track_number = in->track; + tuple_associate_int(ti, "track", in->track); if (in->duration) - tuple->length = in->duration / 1000; + tuple_associate_int(ti, "length", in->duration / 1000); av_close_input_file(in);