Mercurial > audlegacy-plugins
diff src/cdaudio/cdinfo.c @ 399:597c89a37d07 trunk
[svn] - add DYEAR and DGENRE support.
author | yaz |
---|---|
date | Thu, 28 Dec 2006 02:57:42 -0800 |
parents | d58221dfced1 |
children | d124034ebea3 |
line wrap: on
line diff
--- a/src/cdaudio/cdinfo.c Sun Dec 24 07:08:26 2006 -0800 +++ b/src/cdaudio/cdinfo.c Thu Dec 28 02:57:42 2006 -0800 @@ -118,18 +118,23 @@ /* - * Function cdda_cdinfo_cd_set (cdinfo, cdname, cdartist) + * Function cdda_cdinfo_cd_set (cdinfo, cdname, cdartist, discid, + * genre, year) * - * Set name and artist for a cd. If CD is a multiartist disc, the - * `artist' should be set to NULL. + * Set name, artist, discid, genre and year for a cd. If CD is a + * multiartist disc, the `artist' should be set to NULL. * */ void -cdda_cdinfo_cd_set(cdinfo_t * cdinfo, gchar * cdname, gchar * cdartist) +cdda_cdinfo_cd_set(cdinfo_t * cdinfo, gchar * cdname, gchar * cdartist, + gchar * discid, gchar * genre, gchar *year) { + cdinfo->is_valid = TRUE; cdinfo->albname = cdname; cdinfo->artname = cdartist; - cdinfo->is_valid = TRUE; + cdinfo->discid = discid ? atoi(discid) : 0; + cdinfo->genre = genre; + cdinfo->year = year ? atoi(year) : 0; } @@ -188,9 +193,20 @@ cdinfo->albname); else bmp_rcfile_write_string(rcfile, sectionname, "Albumname", ""); + if (cdinfo->artname) bmp_rcfile_write_string(rcfile, sectionname, "Artistname", cdinfo->artname); + if (cdinfo->year) { + gchar *yearstr = g_strdup_printf("%4d", cdinfo->year); + bmp_rcfile_write_string(rcfile, sectionname, "Year", yearstr); + g_free(yearstr); + } + + if (cdinfo->genre) + bmp_rcfile_write_string(rcfile, sectionname, "Genre", cdinfo->genre); + + for (i = 1; i <= numtracks; i++) { if (cdinfo->tracks[i].artist) { sprintf(trackstr, "track_artist%d", i); @@ -224,6 +240,7 @@ gchar sectionname[10], trackstr[16]; gint i, numtracks = cddb_discid & 0xff; gboolean track_found; + gchar *yearstr = NULL; sprintf(sectionname, "%08x", cddb_discid); @@ -242,6 +259,15 @@ bmp_rcfile_read_string(rcfile, sectionname, "Artistname", &cdinfo->artname); + bmp_rcfile_read_string(rcfile, sectionname, "Year", &yearstr); + if (yearstr) { + cdinfo->year = atoi(yearstr); + g_free(yearstr); + yearstr = NULL; + } + + bmp_rcfile_read_string(rcfile, sectionname, "Genre", &cdinfo->genre); + for (i = 1; i <= numtracks; i++) { track_found = FALSE; sprintf(trackstr, "track_artist%d", i);