*BSD News Article 24485


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!munnari.oz.au!constellation!paladin.american.edu!europa.eng.gtefsd.com!uunet!Germany.EU.net!netmbx.de!zrz.TU-Berlin.DE!cs.tu-berlin.de!gmdtub!arg
From: arg@first.gmd.de (Arnulf Guenther)
Newsgroups: comp.os.386bsd.questions
Subject: Q: programming CD audio
Message-ID: <ARG.93Nov28143243@gauss.first.gmd.de>
Date: 28 Nov 93 13:32:43 GMT
Sender: news@bigfoot.first.gmd.de
Organization: GMD-FIRST, Berlin
Lines: 24

My question is: If provided with enough space the CDIOREADTOCENTRYS
ioctl returns two extra bytes of information after the information for
the leadout track and I want to know what those two bytes represents.
My system consists of 486/AHA 1742a/Toshiba XM-3301/FreeBSD 1.0.
Works just fine.

Experimenting with the CD audio interface I stumbled across this
thing: The CDIOREADTOCHEADER and CDIOREADTOCENTRYS ioctls are very
similar--in fact they are mapped onto the same SCSI command.  With
CDIOREADTOCENTRYS one can obtain info about all tracks or only how
many tracks are on this CD.  The field length in ioc_toc_header is
zero after a CDIOREADTOCHEADER ioctl or filled with a value depending
of the size of the requested info after a CDIOREADTOCENTRYS ioctl.

However, if I have a CD with 8 tracks (plus one leadout track) and I
allocate 80 bytes because it's just a round number and also tell
ioctl(CDIOREADTOCENTRYS) I have 80 bytes.  The length field in the
header contains the value dec. 74 and after the leadout track info are
two extra bytes which I cannot relate to any info I can think of.

Any Ideas?

Thanx in Advance, -Arnulf
--