libcdio.texi: More sectioning with respect to the libraries

glossary.texi: Add Thomas Schmitt's DVD Blu-Ray and media information.
This commit is contained in:
R. Bernstein
2010-01-22 08:52:36 -05:00
parent 0c1024abfc
commit 2f5509c68e
2 changed files with 139 additions and 26 deletions

View File

@@ -12,7 +12,7 @@
@set txicodequotebacktick
@copying
This manual documents @code{libcdio}, the GNU CD Input, Output and Control
This manual documents @code{libcdio}, the GNU CD Input, Output, and Control
Library.
Copyright @copyright{} 2003, 2004, 2005, 2006, 2007, 2008, 2010 Rocky
@@ -47,7 +47,7 @@ Texts. A copy of the license is included in the section entitled
@titlepage
@title GNU @code{libcdio}
@subtitle GNU Compact Disc Input, Output and Control Library
@subtitle GNU Compact Disc Input, Output, and Control Library
@subtitle for version @value{VERSION}, @value{UPDATED}
@author Rocky Bernstein et al. (@email{bug-libcdio@@gnu.org})
@page
@@ -287,7 +287,7 @@ There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
__________________________________
ISO 9660 image: ../test/joliet.iso
Application: K3B THE CD KREATOR VERSION 0.11.12 (C) 2003 SEBASTIAN TRUEG AND THE K3B TEAM
Application: K3B THE CD KREATOR VERSION 0.11.12 (C) 2003 SEBASTIAN TRUEG AND...
Preparer : K3b - Version 0.11.12
Publisher : Rocky Bernstein
System : LINUX
@@ -322,17 +322,13 @@ extracts files from an ISO-9660 image.
Historically, @code{libcdio} did not support write access to
drives. In conjunction with additional work in a separate project
@code{libburn}, Thomas Schmitt has modified @code{libcdio} to add
write support; @code{libburn} write audio and data CD's and reads data
CD's. It reads and write DVD's and Blu-Ray discs.
@code{libburn}, Thomas Schmitt has modified @code{libcdio} to enable
sending SCSI write commands on some of the drivers. This enables other
programs like @code{libburn} to write to CD's, DVD's and Blu-Ray
discs.
Other writing libraries include (e.g. @code{libdi}, @code{libscg}, or
@code{libdvdread}) may be helpful.
I'm not theoretically opposed to putting support like this into
libcdio. However at present there are already many gaps in this
package, so narrowing its scope in order to focus on these things I
think is a good idea.
For the OS drivers which are lacking write access, volunteers are
welcome.
@node CD Formats
@chapter CD Formats
@@ -2040,19 +2036,19 @@ MMC (Multimedia commands) is a specification which adds special SCSI
commands for CD, DVD, Blu-Ray devices.
If your optical drive understands MMC commands as most do nowadays,
this is probably gives the most flexibility in control. SCSI and ATAPI
this probably gives the most flexibility in control. SCSI and ATAPI
CD-ROM devices generally support a fairly large set of MMC
commands. Unfortunately on most Operating Systems, one may need to do
additional steps to allow access in this manner.
commands. Unfortunately, on most Operating Systems one may need to do
some additional setup, such as install drivers or modules, to allow
access in this manner.
The name ``SCSI MMC'' is often found in the literature in
specifications and on the Internet. The ``SCSI'' part is probably a
little bit misleading because a drive can understand ``SCSI MMC''
commands but not use a SCSI bus protocol---ATAPI CD-ROMs are one such
broad class of examples. In fact there are drivers to ``encapsulate''
non-SCSI drives on non-MMC-compliant drives and make them act like MMC
drives. I believe that many Operating System SCSI ``pass-through''
mechanisms do roughly the same thing.
non-SCSI drives to make them act like more like SCSI drives, such as
by adding SCSI address naming.
For clarity and precision we will use the term ``MMC'' rather than
``SCSI MMC''.
@@ -2067,7 +2063,6 @@ One of the problems with MMC is that there are so many different
@item MMC 5 --- @url{ftp://ftp.t10.org/t10/drafts/mmc5/}
@end itemize
along with the several ``drafts'' of these.
for each standard.
Another problem with the MMC commands related to the variations in
standards is the variation in the commands themselves and there are
@@ -2100,9 +2095,8 @@ find a little bit of this for example via the routine
@code{scsi_mmc_get_drive_cap()}. However much more work is needed.
Finally, in @code{libcdio} there is a driver access mode (not a
driver) called ``MMC''. It indicates to the specific drivers to in
issue MMC commands instead of other OS-specific or native drive
commands.
driver) called ``MMC''. It tells the specific drivers to use MMC
commands instead of other OS-specific mechanisms.
@node Access Modes
@section Access Modes
@@ -2220,7 +2214,14 @@ More work on this driver is needed. Volunteers?
@node Internal Program Organization
@chapter Internal Program Organization
@subsection file organization
@menu
* File Organization::
* Library Organization::
* Programming Conventions::
@end menu
@node File Organization
@section File Organization
Here is a list of @value{libcdio} directories.
@@ -2296,6 +2297,18 @@ location @code{lib/driver}
@end itemize
@node Library Organization
@section Library Organization
@menu
* libcdio::
* libcdio_cdda:: Access to CD-DA via the CD Paranoia library
* libcdio_paranoia:: Access to the CD Paranoia library
* libiso9660:: Access to ISO 9660 file systems and structures
* libudf:: Access to UDF file systems and structures
@end menu
@node libcdio
@subsection @samp{libcdio}
@value{libcdio} exports one opaque type @code{CdIo_t}. Internally this
@@ -2328,6 +2341,7 @@ one CD-image format to another. Basically the first image format is
``parsed'' into the common internal format and then from this
structure it is not parsed.
@node libcdio_cdda
@subsection @samp{libcdio_cdda}
This library is intended to give access CD-DA disks using Monty's
@@ -2335,6 +2349,7 @@ cd-paranoia library underneath.
To be completed....
@node libcdio_paranoia
@subsection @samp{libcdio_paranoia}
This library is intended to give access Monty's cd-paranoia
@@ -2342,6 +2357,8 @@ library. It is the gap detection and jitter correction part without
the part dealing with CD-DA reading.
To be completed....
@node libiso9660
@subsection @samp{libiso9660}
This library is intended to give access and manipulate a ISO-9600 file
@@ -2352,6 +2369,7 @@ structures and fields that go into such an image.
To be completed....
@node libudf
@subsection @samp{libudf}
This library is intended to give access and manipulate a UDF file
@@ -2359,13 +2377,23 @@ image.
To be completed....
@node Programming Conventions
@section Programming Conventions
@menu
* Coding Conventions::
* Namespace Conventions::
@end menu
@node Coding Conventions
@subsection Coding Conventions
In @value{libcdio} there are a number of conventions used. If you
understand some of these conventions it may facilitate understanding
the code a little.
@subsubsection namespace names
@node Namespace Conventions
@subsection Namespace Conventions
For the most part, the visible external @value{libcdio} names follow
conventions so as not to be confused with other applications or