Mercurial > audlegacy-plugins
diff src/cdaudio-ng/cdaudio-ng.c @ 1466:a0b4583a5e48
tuple API update.
author | Yoshiki Yazawa <yaz@cc.rim.or.jp> |
---|---|
date | Sat, 11 Aug 2007 20:10:10 +0900 |
parents | 195b5657303e |
children | eb0913bf54c3 |
line wrap: on
line diff
--- a/src/cdaudio-ng/cdaudio-ng.c Sat Aug 11 12:21:30 2007 +0200 +++ b/src/cdaudio-ng/cdaudio-ng.c Sat Aug 11 20:10:10 2007 +0900 @@ -59,9 +59,9 @@ static gint cdaudio_set_volume(gint l, gint r); static void cdaudio_cleanup(); static void cdaudio_get_song_info(gchar *filename, gchar **title, gint *length); -static TitleInput *cdaudio_get_song_tuple(gchar *filename); +static Tuple *cdaudio_get_song_tuple(gchar *filename); -static TitleInput *create_tuple_from_trackinfo(char *filename); +static Tuple *create_tuple_from_trackinfo(char *filename); static void dae_play_loop(dae_params_t *pdae_params); static int calculate_track_length(int startlsn, int endlsn); static int find_trackno_from_filename(char *filename); @@ -447,6 +447,9 @@ void cdaudio_play_file(InputPlayback *pinputplayback) { + Tuple *tuple; + char *title; + if (debug) printf("cdaudio-ng: cdaudio_play_file(\"%s\")\n", pinputplayback->filename); @@ -482,10 +485,12 @@ playing_track = trackno; is_paused = FALSE; - char *title = xmms_get_titlestring(xmms_get_gentitle_format(), create_tuple_from_trackinfo(pinputplayback->filename)); + tuple = create_tuple_from_trackinfo(pinputplayback->filename); + title = tuple_formatter_process_string(tuple, xmms_get_gentitle_format()); inputplugin.set_info(title, calculate_track_length(trackinfo[trackno].startlsn, trackinfo[trackno].endlsn), 1411200, 44100, 2); - free(title); + free(title); title = NULL; + tuple_free(tuple); tuple = NULL; if (use_dae) { if (debug) @@ -728,12 +733,17 @@ printf("cdaudio-ng: cdaudio_get_song_info(\"%s\")\n", filename); int trackno = find_trackno_from_filename(filename); + Tuple *tuple = create_tuple_from_trackinfo(filename); - *title = xmms_get_titlestring(xmms_get_gentitle_format(), create_tuple_from_trackinfo(filename)); + if(tuple) { + *title = tuple_formatter_process_string(tuple, xmms_get_gentitle_format()); + tuple_free(tuple); + tuple = NULL; + } *length = calculate_track_length(trackinfo[trackno].startlsn, trackinfo[trackno].endlsn); } -TitleInput *cdaudio_get_song_tuple(gchar *filename) +Tuple *cdaudio_get_song_tuple(gchar *filename) { if (debug) printf("cdaudio-ng: cdaudio_get_song_tuple(\"%s\")\n", filename); @@ -744,26 +754,33 @@ /* auxiliar functions */ -TitleInput *create_tuple_from_trackinfo(char *filename) +Tuple *create_tuple_from_trackinfo(char *filename) { if (trackinfo == NULL) return NULL; - TitleInput *tuple = bmp_title_input_new(); + Tuple *tuple = tuple_new_from_filename(filename); int trackno = find_trackno_from_filename(filename); if (trackno < firsttrackno || trackno > lasttrackno) return NULL; - tuple->performer = strlen(trackinfo[trackno].performer) > 0 ? g_strdup(trackinfo[trackno].performer) : NULL; - tuple->album_name = strlen(trackinfo[0].name) > 0 ? g_strdup(trackinfo[0].name) : NULL; - tuple->track_name = strlen(trackinfo[trackno].name) > 0 ? g_strdup(trackinfo[trackno].name) : NULL; - tuple->track_number = trackno; - tuple->file_name = g_strdup(basename(filename)); - tuple->file_path = g_strdup(basename(filename)); - tuple->file_ext = g_strdup("cda"); - tuple->length = calculate_track_length(trackinfo[trackno].startlsn, trackinfo[trackno].endlsn); - tuple->genre = strlen(trackinfo[trackno].genre) > 0 ? g_strdup(trackinfo[trackno].genre) : NULL; + if(strlen(trackinfo[trackno].performer)) { + tuple_associate_string(tuple, "artist", trackinfo[trackno].performer); + } + if(strlen(trackinfo[0].name)) { + tuple_associate_string(tuple, "album", trackinfo[0].name); + } + if(strlen(trackinfo[trackno].name)) { + tuple_associate_string(tuple, "title", trackinfo[trackno].name); + } + tuple_associate_int(tuple, "track-number", trackno); + tuple_associate_string(tuple, "ext", "cda"); //XXX should do? --yaz + + tuple_associate_int(tuple, "length", calculate_track_length(trackinfo[trackno].startlsn, trackinfo[trackno].endlsn)); + if(strlen(trackinfo[trackno].genre)) { + tuple_associate_string(tuple, "genre", trackinfo[trackno].genre); + } //tuple->year = 0; todo: set the year return tuple;