1) cdtext objects are no longer associated with a track but with the disc.

2) - cdio_get_cdtext no longer takes track as an argument
- cdtext_get, cdtext_get_const, cdtext_set require track argument
3) Language, Genre, Genre Code and Encoding Fields are now properly parsed and stored in the cdtext object
4) Added public function cdio_get_cdtext_raw to extract the binary CD-Text
5) Added CDTEXTFILE keyword logic in cue sheet parser. Parses binary/raw CD-Text files
6) Added cdtext_genre2str to convert genre code
7) altered the example programs, test drivers, cdda-player and cd-info to work with these changes
8) Added test case
9) A few smaller changes
A disc either holds CD-Text for all the tracks or does not hold any. Therefore a CD-Text object for the whole disc seems more natural to me. It also enables us to store global fields, like genre, encoding, language.

Patch was tested on GNU/Linux 32 bit running Gentoo.
This commit is contained in:
R. Bernstein
2011-11-24 20:54:40 -05:00
parent e0b2ee826d
commit dbf6d24765
43 changed files with 639 additions and 417 deletions

View File

@@ -45,9 +45,26 @@ test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}.right
RC=$?
check_result $RC "cd-info TOC test $testnum" "${CD_INFO} $opts"
fname=cdtext
testnum="CD-Text binary parser"
if test -f ${srcdir}/data/${fname}.bin ; then
if test -f ${srcdir}/data/${fname}.cdt ; then
opts="--quiet --no-device-info --cue-file ${srcdir}/data/${fname}.cue --no-cddb"
cp ${srcdir}/data/${fname}.cdt ${srcdir}/${fname}.cdt
test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}.right
rm ${srcdir}/${fname}.cdt
RC=$?
check_result $RC "cd-info CD-Text CUE test $testnum" "${CD_INFO} $opts"
else
echo "Don't see CD-Text file ${srcdir}/data/${fname}.cdt. Test $testnum skipped."
fi
else
echo "Don't see binary file ${srcdir}/data/${fname}.bin. Test $testnum skipped."
fi
fname=isofs-m1
testnum='ISO 9660 mode1 CUE'
if test -f ${srcdir}/${fname}.bin ; then
if test -f ${srcdir}/data/${fname}.bin ; then
if test -n "@HAVE_ROCK@"; then
opts="-q --no-device-info --no-disc-mode --cue-file ${srcdir}/data/${fname}.cue --iso9660"
test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}.right
@@ -83,7 +100,7 @@ else
right=${srcdir}/${fname}_vcdinfo.right
fi
testnum='Video CD'
if test -f ${srcdir}/${fname}.bin ; then
if test -f ${srcdir}/data/${fname}.bin ; then
opts="-q --no-device-info --no-disc-mode -c ${srcdir}/data/${fname}.cue --iso9660"
test_cdinfo "$opts" ${fname}.dump $right
RC=$?
@@ -100,15 +117,15 @@ if test -f ${srcdir}/${fname}.bin ; then
RC=$?
check_result $RC "cd-info TOC test $testnum" "${CD_INFO} $opts"
else
echo "Don't see TOC file ${srcdir}/${fname}.toc. Test $testnum skipped."
echo "Don't see TOC file ${srcdir}/data/${fname}.toc. Test $testnum skipped."
fi
else
echo "Don't see CUE file ${srcdir}/${fname}.cue. Test $testnum skipped."
echo "Don't see BIN file ${srcdir}/data/${fname}.bin. Test $testnum skipped."
fi
fname=svcd_ogt_test_ntsc
testnum='Super Video CD'
if test -f ${srcdir}/${fname}.bin ; then
if test -f ${srcdir}/data/${fname}.bin ; then
opts="-q --no-device-info --no-disc-mode --cue-file ${srcdir}/data/${fname}.cue $vcd_opt --iso9660"
test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}.right
RC=$?