Blob Blame History Raw
This directory contains some simple examples of the use of the libcdio
library.

One might also possibly find useful C code among the regression tests
(directory test), e.g. testbincue.c, testdefault.c, testiso9660.c,
testparanoia.c, or testtoc.c

Larger more-complicated examples are the cd-drive, cd-info, cd-read,
cdda-player, iso-info and iso-read programs in the src directory. 

And going further there's the cd-paranoia program (in
src/cd-paranoia), and "real-world' code in the xine VCD plugin, or the
vlc CD-DA plugin which are part of those distributions.

In some cases you may have to make small changes to compile these
programs. For example, compiling using Solaris's C compiler with
largefile support on a 64-bit system, may require changing C headers.

Descriptions of the programs in this example directory are as
follows...

audio.c:     Sample program to show audio controls.

cdchange.c:  A program to test if a CD has been changed since the last
	     change test.

cdio-eject.c: a stripped-down "eject" command to open or close a CDROM
             tray

cdtext.c:    A program to show CD-Text and CD disc mode info.

cdtext-raw.c:    A program to show CD-Text parsing from binary files.

device.c:    A program to show drivers installed and what the default
             CD-ROM drive is. See also corresponding C++ programs of similar
             names.

discid.c:    http://sourceforge.net/projects/discid/ using libcdio:
	     a small program to calculate the disc-ID for audio
	     compact discs. The disc-ID can be used to query info
	     (tracks, title, interpret) about compact audio discs from
	     a CDDB-Server.

drives.c:    A program to show drivers installed and what the default
	     CD-ROM drive is and what CD drives are available.

eject.c:     A program eject a CD from a CD-ROM drive and then close the door
	     again.

extract.c:   Extract the full contents of either an UDF or ISO9660 image file.

isofile.c:   A program to show using libiso9660 to extract a file from an
	     ISO-9660 image.

isofile2.c:  A program to show using libiso9660 to extract a file
	     from a CDRWIN cue/bin CD image.

isofuzzy.c : A program showing fuzzy ISO-9660 detection/reading.

isolist.c:   A program to show using libiso9660 to list files in a
	     directory of an ISO-9660 image and give basic iso9660 
	     information.

isolsn.c:    A program to show using libiso9660 to get the file 
	     path for a given LSN.

mmc1.c:      A program to show issuing a simple MMC command (INQUIRY).

mmc2.c:      A more involved MMC command to list features from 
	     a MMC GET_CONFIGURATION command.

mmc2a.c:     Show MODE_SENSE page 2A paramaters:
	     CD/DVD Capabilities and Mechanical Status Page

mmc3.c       Another simple program to show use of SCSI MMC interface. 
             Is basically the the libdio scsi_mmc_get_hwinfo() routine.

paranoia:    A program to show using CD-DA paranoia (a library for jitter
	     detection and audio-read error correction). This program uses
	     an interface compatible (mostly) with cdparanoia. It looks for
	     a CD-ROM with an audio CD in it and rips up to the first 300 
             sectors of track 1 to file track01s.wav.

paranoia2:   Another program to show using CD-DA paranoia using a more
	     libcdio-oriented initialization. Probably more suited to
	     things that otherwise use libcdio such as media players 
	     (e.g. for getting CDDB or CD-Text info)

sample3.c:   A simple program to show the use of cdio_guess_cd_type().
             Figure out the kind of CD image we've got.

sample4.c:   A slightly improved sample3 program: we handle cdio logging
             and take an optional CD-location.

tracks.c:    A program to list track numbers and logical sector
	     numbers of a Compact Disc using libcdio.

udf1.c:      A program to show using libudf to list files in a directory of
	     an UDF image.

udf2.c:      A program to show using libudf to extract a file from
	     an UDF image.

udffile.c    A program to show using libudf to extract a file.

Many of the above programs can be compiled in C++. See that directory
for C++ examples which include some of the above.

Some of these programs are also used in testing. When this occurs,
output is prepended with -- so it can be filtered out by Ruby program
make-check-filter.rb when running "make check-short".