libisofs-0.2.4/doc/comments

Go to the documentation of this file.
00001 /**
00002    @author Mario Danic, Thomas Schmitt
00003 
00004    @mainpage Libburn Documentation Index
00005 
00006    @section intro Introduction
00007 
00008 Libburn is an open-source library for reading, mastering and writing
00009 optical discs. For now this means only CD-R and CD-RW.
00010 
00011 The project comprises of several more or less interdependent parts which
00012 together strive to be a usable foundation for application development.
00013 These are libraries, language bindings, and middleware binaries which emulate
00014 classical (and valuable) Linux tools.
00015 
00016 Our scope is currently Linux 2.4 and 2.6 only. For ports to other systems
00017 we would need : login on a development machine resp. a live OS on CD or DVD,
00018 advise from a system person about the equivalent of Linux sg or FreeBSD CAM,
00019 volunteers for testing of realistic use cases.
00020 
00021 We do have a workable code base for burning data CDs, though. The burn API is
00022 quite comprehensively documented and can be used to build a presentable
00023 application.
00024 We do have a functional binary which emulates parts of cdrecord in order to
00025 prove that usability, and in order to allow you to explore libburn's scope
00026 by help of existing cdrecord frontends.
00027 
00028 @subsection components The project components (list subject to growth, hopefully):
00029 
00030 - libburn  is the library by which preformatted data get onto optical media.
00031            It uses either /dev/sgN (e.g. on kernel 2.4 with ide-scsi) or
00032            /dev/hdX (e.g. on kernel 2.6).
00033            libburn is the foundation of our cdrecord emulation.
00034 
00035 - libisofs is the library to pack up hard disk files and directories into a
00036            ISO 9660 disk image. This may then be brought to CD via libburn.
00037            libisofs is to be the foundation of our upcoming mkisofs emulation.
00038 
00039 - cdrskin  is a limited cdrecord compatibility wrapper for libburn.
00040            cdrecord is a powerful GPL'ed burn program included in Joerg
00041            Schilling's cdrtools. cdrskin strives to be a second source for
00042            the services traditionally provided by cdrecord.
00043            cdrskin does not contain any bytes copied from cdrecord's sources.
00044            Many bytes have been copied from the message output of cdrecord
00045            runs, though.
00046            See cdrskin/README for more.
00047 
00048 - "test"   is a collection of application gestures and examples given by the
00049            authors of the library features. The main API example of libburn
00050            is named test/libburner.c .
00051            Explore these examples if you look for inspiration.
00052 
00053 We plan to be a responsive upstream. Bear with us.
00054 
00055 
00056    @section using Using the libraries
00057 
00058 Our build system is based on autotools.
00059 User experience tells us that you will need at least autotools version 1.7.
00060 
00061 To build libburn and its subprojects it should be sufficient to go into
00062 its toplevel directory and execute
00063 
00064 -  ./bootstrap  (needed if you downloaded from SVN)
00065 
00066 -  ./configure
00067 
00068 -  make
00069 
00070 To make the libraries accessible for running resp. developing applications 
00071 
00072 -  make install
00073 
00074 Both libraries are written in C language and get built by autotools.
00075 Thus we expect them to be useable by a wide range of Linux-implemented
00076 languages and development tools.
00077 
00078 
00079 @section libburner Libburner
00080 
00081 libburner is a minimal demo application for the library libburn 
00082 (see: libburn/libburn.h) as provided on  http://libburn.pykix.org .
00083 It can list the available devices, can blank a CD-RW and
00084 can burn to CD-R or CD-RW.
00085 
00086 It's main purpose, nevertheless, is to show you how to use libburn and also
00087 to serve the libburn team as reference application. libburner does indeed
00088 define the standard way how above three gestures can be implemented and
00089 stay upward compatible for a good while.
00090 
00091    @subsection libburner-help Libburner --help
00092 <pre>
00093 Usage: test/libburner
00094        [--drive <address>|<driveno>|"-"]
00095        [--blank_fast|--blank_full] [--audio]
00096        [--try_to_simulate] [--stdin_size <bytes>]
00097        [<one or more imagefiles>|"-"]
00098 Examples
00099 A bus scan (needs rw-permissions to see a drive):
00100   test/libburner --drive -
00101 Burn a file to drive chosen by number:
00102   test/libburner --drive 0 my_image_file
00103 Burn a file to drive chosen by persistent address:
00104   test/libburner --drive /dev/hdc my_image_file
00105 Blank a used CD-RW (is combinable with burning in one run):
00106   test/libburner --drive /dev/hdc --blank_fast
00107 Burn two audio tracks
00108   lame --decode -t /path/to/track1.mp3 track1.cd
00109   test/dewav /path/to/track2.wav -o track2.cd
00110   test/libburner --drive /dev/hdc --audio track1.cd track2.cd
00111 Burn a compressed afio archive on-the-fly, pad up to 700 MB:
00112   ( cd my_directory ; find . -print | afio -oZ - ) | \
00113   test/libburner --drive /dev/hdc --stdin_size 734003200  -
00114 To be read from *not mounted* CD via: afio -tvZ /dev/hdc
00115 Program tar would need a clean EOF which our padded CD cannot deliver.
00116 </pre>
00117 
00118    @subsection libburner-source Sourceode of libburner
00119 
00120 Click on blue names of functions, structures, variables, etc in oder to
00121 get to the according specs of libburn API or libburner sourcecode.
00122  
00123 */

Generated on Tue Jan 9 14:48:36 2007 for libisofs by  doxygen 1.5.1