Beispiel #1
0
int mb_disc_read_unportable(mb_disc_private *disc, const char *device,
                            unsigned int features) {
    mb_disc_toc toc;
    int fd;
    int i;

    fd = mb_disc_unix_open(disc, device);
    if (fd < 0)
        return 0;


    if ( !mb_disc_unix_read_toc(fd, disc, &toc) )
        return 0;

    if ( !mb_disc_load_toc(disc, &toc) )
        return 0;

    /* Read in the media catalog number */
    if (features & DISCID_FEATURE_MCN
            && mb_disc_has_feature_unportable(DISCID_FEATURE_MCN)) {
        mb_disc_unix_read_mcn(fd, disc);
    }

    /* Read the ISRC for the track */
    if (features & DISCID_FEATURE_ISRC
            && mb_disc_has_feature_unportable(DISCID_FEATURE_ISRC)) {
        for (i = disc->first_track_num; i <= disc->last_track_num; i++) {
            mb_disc_unix_read_isrc(fd, disc, i);
        }
    }

    close(fd);

    return 1;
}
Beispiel #2
0
int discid_has_feature(enum discid_feature feature) {
	return mb_disc_has_feature_unportable(feature);
}