[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Libcdio-devel] first round of cd-paranoia via libcdio and design though

From: R. Bernstein
Subject: [Libcdio-devel] first round of cd-paranoia via libcdio and design thoughts
Date: Thu, 6 Jan 2005 22:19:30 -0500

I've now got cdparanoia something working (for some definition of
working) and I suppose I should note some thoughts I have about the
overall organization.

It is a goal to keep the API similar to have this be library
source-code compatible. The cdparanoia program (now called cd-paranoia
so both can coexist and not get confused) I am also trying to keep the

The API though has to change at least a little, because the file
descriptors are irrelevant now. If source code uses that, it's going
to be broken because libcdio drivers might not use them. 

Also I need to store somewhere a cdio pointer. Since there may be a
small disruption, I thought I'd take the opportunity to make some
small type changes. Generally the old type will be compatible for
reasonable uses. (Again for the other reasons I have to give up on
being ABI comptible). So "int" for a cdparanoia track can become a
uint8_t and I doubt there will generally be problems in source
code. But if someone uses -1 for an invalid track, there will be a
compiler warning, perhaps "expression always evaluates to true due to
limited range of type". CDIO_INVALID_TRACK is the right thing to use
(which when converted is -1 converted to a uint8_t or 0xff). I'm not
sure it's documented what "invalid track" is in paranoia although -1
seems to be used. You have something similar for sectors (lsn's).

Now onto the filesystem and library naming. Again I think I want to
use different names so cdparanoia and libcdio's version can
co-exist. The include will live in .../include/cdio which means source
code using cdparnoia will probably have to be changed to use libcdio's

The paranoia name for the application header is cdda_interface.h. I
now have this as cdio/cdda.h.  The cdparanoia library name for the
user API is and I'm now using Right now the directory in the source code for this
is called lib/cdda_interface, but I think I'll raenme that just to
lib/cdda. For the machine independent paranoia part cdparanoia uses
libcdda_paranoia and I use libcdio_paranoia.

I guess that's enough for now.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]