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; }
int discid_has_feature(enum discid_feature feature) { return mb_disc_has_feature_unportable(feature); }