00001 /** 00002 @author Mario Danic, Thomas Schmitt 00003 00004 @mainpage Libburn Documentation Index 00005 00006 @section intro Introduction 00007 00008 Libburnia is an open-source project for reading, mastering and writing 00009 optical discs. This page is about its capability to handle optical media. 00010 For now this means CD-R, CD-RW, DVD-RAM, DVD+RW, DVD+R, DVD+R/DL, DVD-RW, 00011 DVD-R, BD-R, BD-RE. 00012 00013 Not supported yet are DVD-R/DL. Testers wanted. 00014 00015 Our scope is currently Linux 2.4 and 2.6, or FreeBSD . For ports to other 00016 systems we would need : login on a development machine resp. a live OS on CD 00017 or DVD, advise from a system person about the equivalent of Linux sg or FreeBSD 00018 CAM, volunteers for testing of realistic use cases. 00019 00020 libburn is the library by which preformatted data get onto optical media. 00021 Its code is independent of cdrecord. Its DVD capabilities are learned from 00022 studying the code of dvd+rw-tools and MMC-5 specs. No code but only the pure 00023 SCSI knowledge has been taken from dvd+rw-tools, though. 00024 00025 cdrskin is a limited cdrecord compatibility wrapper for libburn. 00026 cdrecord is a powerful GPL'ed burn program included in Joerg Schilling's 00027 cdrtools. cdrskin strives to be a second source for the services traditionally 00028 provided by cdrecord. Additionally it provides libburn's DVD/BD capabilities, 00029 where only -sao is compatible with cdrecord. 00030 cdrskin does not contain any bytes copied from cdrecord's sources. 00031 Many bytes have been copied from the message output of cdrecord runs, though. 00032 See cdrskin/README for more. 00033 00034 The burn API example of libburn is named test/libburner.c . The API for media 00035 information inquiry is demonstrated in test/telltoc.c . 00036 Explore these examples if you look for inspiration. 00037 00038 SONAME: 00039 libburn.so.4 (since 0.3.4, March 2007), 00040 00041 00042 @section using Using libburn 00043 00044 Our build system is based on autotools. 00045 User experience tells us that you will need at least autotools version 1.7. 00046 00047 To build libburn and its companion applications go into its toplevel directory 00048 and execute 00049 00050 - ./bootstrap (needed if you downloaded from SVN) 00051 00052 - ./configure 00053 00054 - make 00055 00056 To make the libraries accessible for running resp. developing applications 00057 00058 - make install 00059 00060 00061 @section libburner Libburner 00062 00063 libburner is a minimal demo application for the library libburn 00064 (see: libburn/libburn.h) as provided on http://libburnia-project.org . 00065 It can list the available devices, can burn to recordable CD, DVD, or BD, 00066 can blank a CD-RW or DVD-RW, and can format unformatted DVD-RW, BD-R, or BD-RE. 00067 00068 It's main purpose, nevertheless, is to show you how to use libburn and also 00069 to serve the libburnia team as reference application. libburner does indeed 00070 define the standard way how above gestures can be implemented and stay upward 00071 compatible for a good while. 00072 00073 @subsection libburner-help Libburner --help 00074 <pre> 00075 Usage: test/libburner 00076 [--drive <address>|<driveno>|"-"] [--audio] 00077 [--blank_fast|--blank_full|--format] [--try_to_simulate] 00078 [--multi] [<one or more imagefiles>|"-"] 00079 Examples 00080 A bus scan (needs rw-permissions to see a drive): 00081 test/libburner --drive - 00082 Burn a file to drive chosen by number, leave appendable: 00083 test/libburner --drive 0 --multi my_image_file 00084 Burn a file to drive chosen by persistent address, close: 00085 test/libburner --drive /dev/hdc my_image_file 00086 Blank a used CD-RW (is combinable with burning in one run): 00087 test/libburner --drive /dev/hdc --blank_fast 00088 Blank a used DVD-RW (is combinable with burning in one run): 00089 test/libburner --drive /dev/hdc --blank_full 00090 Format a DVD-RW, BD-RE or BD-R: 00091 test/libburner --drive /dev/hdc --format 00092 Burn two audio tracks (to CD only): 00093 lame --decode -t /path/to/track1.mp3 track1.cd 00094 test/dewav /path/to/track2.wav -o track2.cd 00095 test/libburner --drive /dev/hdc --audio track1.cd track2.cd 00096 Burn a compressed afio archive on-the-fly: 00097 ( cd my_directory ; find . -print | afio -oZ - ) | \ 00098 test/libburner --drive /dev/hdc - 00099 To be read from *not mounted* media via: afio -tvZ /dev/hdc 00100 </pre> 00101 libburner has two companions, telltoc and dewav, which help to perform some 00102 peripheral tasks of burning. 00103 00104 telltoc prints a table of content (sessions, tracks and leadouts), it tells 00105 about type and state of media, and also is able to provide the necessary 00106 multi-session information for program mkisofs option -C. Especially helpful 00107 are its predictions with "Write multi" and "Write modes" where availability 00108 of "TAO" indicates that tracks of unpredicted length can be written. 00109 See: test/telltoc --help. 00110 00111 dewav extracts raw byte-swapped audio data from files of format .wav (MS WAVE) 00112 or .au (SUN Audio). See example in libburner --help. 00113 00114 @subsection libburner-source Sourceode of libburner 00115 00116 Click on blue names of functions, structures, variables, etc in oder to 00117 get to the according specs of libburn API or libburner sourcecode. 00118 00119 @include libburner.c 00120 */