Пример #1
0
static void
parse_cddb (cdda_t *cd)
{
    cddb_disc_t *disc;
    cddb_conn_t *conn;
    int res;

    if (!cd)
        return;

    libcddb_init ();
    conn = cddb_new ();
    disc = cddb_disc_new ();

    cddb_disc_set_category_str (disc, "misc");
    cddb_disc_set_discid (disc, cd->id);

    res = cddb_read (conn, disc);
    if (!res)
        goto err_cddb_read;

    cd_get_metadata (cd, disc);
    cd_get_tracks (cd, disc);

 err_cddb_read:
    cddb_disc_destroy (disc);
    libcddb_shutdown ();
}
Пример #2
0
int main(int argc, char *argv[]) {
	/*initialize the connection to the freedb server */
	cddb_conn_t *conn = NULL;
	cddb_disc_t *disc;
	cddb_track_t *track;
	conn = init_conn();

	/* set track info */
	if (argc != 4) {
		fprintf(stderr, "usage: cddb_query <discid> <category> <track number>\n");
		return -1;
	}
	char *p;
	unsigned long discid = strtoul(argv[1], &p, 16);
	char *cat = argv[2];
	lowercase(cat);
	int tracknum = atoi(argv[3]);

	/* initialize the disc */
	disc = init_disc();
	cddb_disc_set_discid(disc, discid);
	cddb_disc_set_category_str(disc, cat);

	/* query the database to populate the disc info */
	read_db(conn, disc);

	/* extract the track from the disc */
	track = cddb_disc_get_track(disc, tracknum - 1);

	/* format an output track info */
	const char *title = cddb_track_get_title(track);
	const char *artist = cddb_disc_get_artist(disc);
	const char *album = cddb_disc_get_title(disc);
	unsigned int date = cddb_disc_get_year(disc);
	const char *label = "";
	const char *genre = cddb_disc_get_genre(disc);
	printf("%s\t%s\t%s\t%d\t%s\t%s\t", title, artist, album, date, label, genre);

	return 0;
}