solid: analyze all optical disc tracks content

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2021-06-09 04:26:01 +03:00
parent e948b64fb1
commit 474be71ece

View file

@ -145,10 +145,12 @@ Solid::OpticalDisc::ContentTypes OpticalDisc::availableContent() const
}
// not implemented by libcdio: VideoDvd, VideoBluRay
// TODO: analyze all tracks
const track_t firsttrack = cdio_get_first_track_num(p_cdio);
const track_t totaltracks = cdio_get_num_tracks(p_cdio);
for (track_t tcount = firsttrack; tcount < totaltracks; tcount++) {
cdio_iso_analysis_t analysis;
::memset(&analysis, 0, sizeof(analysis));
const cdio_fs_anal_t guessresult = cdio_guess_cd_type(p_cdio, 0, 0, &analysis);
const cdio_fs_anal_t guessresult = cdio_guess_cd_type(p_cdio, 0, tcount, &analysis);
switch(CDIO_FSTYPE(guessresult)) {
case CDIO_FS_AUDIO: {
result |= Solid::OpticalDisc::Audio;
@ -167,6 +169,7 @@ Solid::OpticalDisc::ContentTypes OpticalDisc::availableContent() const
break;
}
}
}
return result;
}