Implemented CD Audio de-emphasizing for pre-emphasized tracks, closes #1623.

This commit is contained in:
OBattler
2021-09-02 20:52:30 +02:00
parent 84f4b8cac7
commit 5b972fc477
6 changed files with 78 additions and 4 deletions

View File

@@ -155,12 +155,28 @@ image_is_track_audio(cdrom_t *dev, uint32_t pos, int ismsf)
if (track == -1)
return 0;
else {
cdi_get_audio_track_info(img, 0, cdi_get_track(img, pos), &number, &tmsf, &attr);
cdi_get_audio_track_info(img, 0, track, &number, &tmsf, &attr);
return attr == AUDIO_TRACK;
}
}
static int
image_is_track_pre(cdrom_t *dev, uint32_t lba)
{
cd_img_t *img = (cd_img_t *)dev->image;
int track;
/* GetTrack requires LBA. */
track = cdi_get_track(img, lba);
if (track != -1)
return cdi_get_audio_track_pre(img, track);
return 0;
}
static int
image_sector_size(struct cdrom *dev, uint32_t lba)
{
@@ -231,6 +247,7 @@ static const cdrom_ops_t cdrom_image_ops = {
image_get_tracks,
image_get_track_info,
image_get_subchannel,
image_is_track_pre,
image_sector_size,
image_read_sector,
image_track_type,