Compare commits
6 Commits
ZeroTwoSix
...
ZeroTwoSix
Author | SHA1 | Date | |
---|---|---|---|
8c82e3c437 | |||
de02cc26f9 | |||
35a1a1f7d7 | |||
54d3702513 | |||
c3f9764e0a | |||
ab4096e720 |
@ -103,7 +103,7 @@ test_structest_SOURCES = test/structest.c
|
|||||||
|
|
||||||
## cdrskin construction site - ts A60816
|
## cdrskin construction site - ts A60816
|
||||||
cdrskin_cdrskin_CPPFLAGS = -Ilibburn
|
cdrskin_cdrskin_CPPFLAGS = -Ilibburn
|
||||||
cdrskin_cdrskin_CFLAGS = -DCdrskin_libburn_0_2_3
|
cdrskin_cdrskin_CFLAGS = -DCdrskin_libburn_0_2_6
|
||||||
cdrskin_cdrskin_LDADD = $(libburn_libburn_la_OBJECTS) $(THREAD_LIBS)
|
cdrskin_cdrskin_LDADD = $(libburn_libburn_la_OBJECTS) $(THREAD_LIBS)
|
||||||
cdrskin_cdrskin_SOURCES = cdrskin/cdrskin.c cdrskin/cdrfifo.c cdrskin/cdrfifo.h cdrskin/cdrskin_timestamp.h
|
cdrskin_cdrskin_SOURCES = cdrskin/cdrskin.c cdrskin/cdrfifo.c cdrskin/cdrfifo.h cdrskin/cdrskin_timestamp.h
|
||||||
##
|
##
|
||||||
|
@ -26,12 +26,12 @@ following possible.
|
|||||||
cdrskin. By Thomas Schmitt <scdbackup@gmx.net>
|
cdrskin. By Thomas Schmitt <scdbackup@gmx.net>
|
||||||
Integrated sub project of libburn.pykix.org but also published via:
|
Integrated sub project of libburn.pykix.org but also published via:
|
||||||
http://scdbackup.sourceforge.net/cdrskin_eng.html
|
http://scdbackup.sourceforge.net/cdrskin_eng.html
|
||||||
http://scdbackup.sourceforge.net/cdrskin-0.2.5.tar.gz
|
http://scdbackup.sourceforge.net/cdrskin-0.2.6.pl01.tar.gz
|
||||||
Copyright (C) 2006 Thomas Schmitt
|
Copyright (C) 2006 Thomas Schmitt
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
On top of libburn there is implemented cdrskin 0.2.5, a limited cdrecord
|
On top of libburn there is implemented cdrskin 0.2.6, a limited cdrecord
|
||||||
compatibility wrapper which allows to use some libburn features from
|
compatibility wrapper which allows to use some libburn features from
|
||||||
the command line.
|
the command line.
|
||||||
Interested users of cdrecord are invited to participate in the development
|
Interested users of cdrecord are invited to participate in the development
|
||||||
@ -59,16 +59,16 @@ systems, including 64 bit systems. (Further reports are welcome.)
|
|||||||
|
|
||||||
Compilation, First Glimpse, Installation
|
Compilation, First Glimpse, Installation
|
||||||
|
|
||||||
Obtain cdrskin-0.2.5.tar.gz , take it to a directory of your choice and do:
|
Obtain cdrskin-0.2.6.pl01.tar.gz, take it to a directory of your choice and do:
|
||||||
|
|
||||||
tar xzf cdrskin-0.2.5.tar.gz
|
tar xzf cdrskin-0.2.6.pl01.tar.gz
|
||||||
cd cdrskin-0.2.5
|
cd cdrskin-0.2.6
|
||||||
|
|
||||||
Or obtain a libburn.pykix.org SVN snapshot,
|
Or obtain a libburn.pykix.org SVN snapshot,
|
||||||
go into the toplevel directory of the snapshot (e.g. cd libburn_pykix ),
|
go into the toplevel directory of the snapshot (e.g. cd libburn_pykix ),
|
||||||
and execute the autotools script ./bootstrap . Use autools version >= 1.7 .
|
and execute the autotools script ./bootstrap . Use autools version >= 1.7 .
|
||||||
|
|
||||||
Within that toplevel directory of either cdrskin-0.2.5 or libburn then execute:
|
Within that toplevel directory of either cdrskin-0.2.6 or libburn then execute:
|
||||||
|
|
||||||
./configure
|
./configure
|
||||||
make
|
make
|
||||||
|
@ -36,10 +36,13 @@ intermediate="./libburn_pykix"
|
|||||||
# My changes are in libburn-0.2.3.ts.develop , mainly in ./cdrskin
|
# My changes are in libburn-0.2.3.ts.develop , mainly in ./cdrskin
|
||||||
|
|
||||||
changes="./libburn-0.2.3.ts.develop"
|
changes="./libburn-0.2.3.ts.develop"
|
||||||
skin_rev="0.2.4"
|
skin_release="0.2.6"
|
||||||
|
patch_level=".pl01"
|
||||||
|
skin_rev="$skin_release""$patch_level"
|
||||||
|
|
||||||
|
|
||||||
# The result directory and the name of the result tarballs
|
# The result directory and the name of the result tarballs
|
||||||
target="./cdrskin-${skin_rev}"
|
target="./cdrskin-${skin_release}"
|
||||||
cdrskin_tarball="./cdrskin-${skin_rev}.tar.gz"
|
cdrskin_tarball="./cdrskin-${skin_rev}.tar.gz"
|
||||||
cdrskin_tarball_svn="./cdrskin-${skin_rev}.svn.tar.gz"
|
cdrskin_tarball_svn="./cdrskin-${skin_rev}.svn.tar.gz"
|
||||||
|
|
@ -36,7 +36,7 @@ intermediate="./libburn_pykix"
|
|||||||
# My changes are in libburn-0.2.3.ts.develop , mainly in ./cdrskin
|
# My changes are in libburn-0.2.3.ts.develop , mainly in ./cdrskin
|
||||||
|
|
||||||
changes="./libburn-0.2.3.ts.develop"
|
changes="./libburn-0.2.3.ts.develop"
|
||||||
skin_rev="0.2.5"
|
skin_rev="0.2.7"
|
||||||
|
|
||||||
# The result directory and the name of the result tarballs
|
# The result directory and the name of the result tarballs
|
||||||
target="./cdrskin-${skin_rev}"
|
target="./cdrskin-${skin_rev}"
|
@ -123,7 +123,7 @@ or
|
|||||||
|
|
||||||
/** The official program version */
|
/** The official program version */
|
||||||
#ifndef Cdrskin_prog_versioN
|
#ifndef Cdrskin_prog_versioN
|
||||||
#define Cdrskin_prog_versioN "0.2.5"
|
#define Cdrskin_prog_versioN "0.2.6"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/** The source code release timestamp */
|
/** The source code release timestamp */
|
||||||
@ -156,14 +156,25 @@ or
|
|||||||
#endif /* Cdrskin_libburn_cvs_A60220_tS */
|
#endif /* Cdrskin_libburn_cvs_A60220_tS */
|
||||||
|
|
||||||
|
|
||||||
#ifdef Cdrskin_libburn_0_2_2
|
#ifdef Cdrskin_libburn_0_2_6
|
||||||
#define Cdrskin_libburn_versioN "0.2.2"
|
#define Cdrskin_libburn_versioN "0.2.6"
|
||||||
|
#define Cdrskin_libburn_from_pykix_svN 1
|
||||||
|
#endif /* Cdrskin_libburn_0_2_6 */
|
||||||
|
|
||||||
|
#ifndef Cdrskin_libburn_versioN
|
||||||
|
#define Cdrskin_libburn_versioN "0.2.6"
|
||||||
#define Cdrskin_libburn_from_pykix_svN 1
|
#define Cdrskin_libburn_from_pykix_svN 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef Cdrskin_libburn_0_2_3
|
#ifdef Cdrskin_libburn_from_pykix_svN
|
||||||
#define Cdrskin_libburn_versioN "0.2.3"
|
#ifndef Cdrskin_oldfashioned_api_usE
|
||||||
#define Cdrskin_libburn_from_pykix_svN 1
|
|
||||||
|
#define Cdrskin_libburn_does_ejecT 1
|
||||||
|
#define Cdrskin_libburn_has_drive_get_adR 1
|
||||||
|
#define Cdrskin_progress_track_does_worK 1
|
||||||
|
#define Cdrskin_is_erasable_on_load_does_worK 1
|
||||||
|
#define Cdrskin_grab_abort_does_worK 1
|
||||||
|
#define Cdrskin_allow_libburn_taO 1
|
||||||
#define Cdrskin_libburn_has_is_enumerablE 1
|
#define Cdrskin_libburn_has_is_enumerablE 1
|
||||||
#define Cdrskin_libburn_has_convert_fs_adR 1
|
#define Cdrskin_libburn_has_convert_fs_adR 1
|
||||||
#define Cdrskin_libburn_has_convert_scsi_adR 1
|
#define Cdrskin_libburn_has_convert_scsi_adR 1
|
||||||
@ -178,21 +189,6 @@ or
|
|||||||
#define Cdrskin_libburn_has_pretend_fulL 1
|
#define Cdrskin_libburn_has_pretend_fulL 1
|
||||||
#define Cdrskin_libburn_has_multI 1
|
#define Cdrskin_libburn_has_multI 1
|
||||||
#define Cdrskin_libburn_has_buffer_min_filL 1
|
#define Cdrskin_libburn_has_buffer_min_filL 1
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef Cdrskin_libburn_versioN
|
|
||||||
#define Cdrskin_libburn_versioN "0.2.2"
|
|
||||||
#define Cdrskin_libburn_from_pykix_svN 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef Cdrskin_libburn_from_pykix_svN
|
|
||||||
|
|
||||||
#define Cdrskin_libburn_does_ejecT 1
|
|
||||||
#define Cdrskin_libburn_has_drive_get_adR 1
|
|
||||||
#define Cdrskin_progress_track_does_worK 1
|
|
||||||
#define Cdrskin_is_erasable_on_load_does_worK 1
|
|
||||||
#define Cdrskin_grab_abort_does_worK 1
|
|
||||||
#define Cdrskin_allow_libburn_taO 1
|
|
||||||
|
|
||||||
#ifdef Cdrskin_new_api_tesT
|
#ifdef Cdrskin_new_api_tesT
|
||||||
|
|
||||||
@ -204,14 +200,10 @@ or
|
|||||||
#define Cdrskin_atip_speed_is_oK 1
|
#define Cdrskin_atip_speed_is_oK 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif /* Cdrskin_new_api_tesT */
|
||||||
|
|
||||||
#ifdef Cdrskin_oldfashioned_api_usE
|
|
||||||
|
|
||||||
/* switch back to pre-0.2.2 libburn usage */;
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
#endif /* ! Cdrskin_oldfashioned_api_usE */
|
||||||
#endif /* Cdrskin_libburn_from_pykix_svN */
|
#endif /* Cdrskin_libburn_from_pykix_svN */
|
||||||
|
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ A CD recorder suitable for
|
|||||||
GPL software included:<BR>
|
GPL software included:<BR>
|
||||||
</H2>
|
</H2>
|
||||||
<DL>
|
<DL>
|
||||||
<DT>libburn-0.2.3 stabilized SVN snapshot</DT>
|
<DT>libburn-0.2.6</DT>
|
||||||
<DD>(by Derek Foreman, Ben Jansens, and team of libburn.pykix.org)</DD>
|
<DD>(by Derek Foreman, Ben Jansens, and team of libburn.pykix.org)</DD>
|
||||||
<DD>transfers data to CD</DD>
|
<DD>transfers data to CD</DD>
|
||||||
</DL>
|
</DL>
|
||||||
@ -99,9 +99,7 @@ wishes as well as on the development of libburn.</DT>
|
|||||||
<DD>$ cdrskin -v dev=/dev/dvd blank=fast -eject</DD>
|
<DD>$ cdrskin -v dev=/dev/dvd blank=fast -eject</DD>
|
||||||
<DT>Write ISO-9660 filesystem image:</DT>
|
<DT>Write ISO-9660 filesystem image:</DT>
|
||||||
<DD>$ cdrskin -v dev=/dev/hdc speed=12 fs=8m driveropts=burnfree -sao -eject padsize=300k my_image.iso</DD>
|
<DD>$ cdrskin -v dev=/dev/hdc speed=12 fs=8m driveropts=burnfree -sao -eject padsize=300k my_image.iso</DD>
|
||||||
<DT>Write compressed afio archive on-the-fly via cdrskin-0.2.4 :</DT>
|
<DT>Write compressed afio archive on-the-fly :</DT>
|
||||||
<DD>$ find . | afio -oZ - | cdrskin -v dev=0,1,0 fs=32m speed=8 driveropts=burnfree padsize=300k -sao tsize=650m -</DD>
|
|
||||||
<DT>Write compressed afio archive on-the-fly via cdrskin-0.2.5 :</DT>
|
|
||||||
<DD>$ find . | afio -oZ - | cdrskin -v dev=0,1,0 fs=32m speed=8 driveropts=burnfree padsize=300k -tao -</DD>
|
<DD>$ find . | afio -oZ - | cdrskin -v dev=0,1,0 fs=32m speed=8 driveropts=burnfree padsize=300k -tao -</DD>
|
||||||
<DT>Write audio tracks:</DT>
|
<DT>Write audio tracks:</DT>
|
||||||
<DD>$ cdrskin -v dev=ATA:1,0,0 speed=48 driveropts=burnfree -sao track1.wav track2.au -audio -swab track3.raw
|
<DD>$ cdrskin -v dev=ATA:1,0,0 speed=48 driveropts=burnfree -sao track1.wav track2.au -audio -swab track3.raw
|
||||||
@ -125,13 +123,7 @@ wishes as well as on the development of libburn.</DT>
|
|||||||
<UL>
|
<UL>
|
||||||
<DT></DT>
|
<DT></DT>
|
||||||
<LI>
|
<LI>
|
||||||
Burns only a single closed session. No -multi option yet.
|
Appending sessions to unclosed media is restricted to write mode TAO.
|
||||||
Note: Development version 0.2.5 offers multi-session now. See below.
|
|
||||||
</LI>
|
|
||||||
<LI>
|
|
||||||
No TAO mode in cdrskin-0.2.4 and therefore no writing on-the-fly without
|
|
||||||
a predefined source size.<BR>
|
|
||||||
Note: Development version 0.2.5 offers TAO now. See below.
|
|
||||||
</LI>
|
</LI>
|
||||||
<LI>
|
<LI>
|
||||||
cdrskin -scanbus or --devices hangs for quite a while if there is
|
cdrskin -scanbus or --devices hangs for quite a while if there is
|
||||||
@ -153,7 +145,7 @@ rw-permissions and retry the bus scan as non-superuser.
|
|||||||
<P>
|
<P>
|
||||||
<DL>
|
<DL>
|
||||||
<DT>Download as source code (see README):</DT>
|
<DT>Download as source code (see README):</DT>
|
||||||
<DD><A HREF="cdrskin-0.2.4.pl01.tar.gz">cdrskin-0.2.4.pl01.tar.gz</A>
|
<DD><A HREF="cdrskin-0.2.6.pl01.tar.gz">cdrskin-0.2.6.pl01.tar.gz</A>
|
||||||
(510 KB).
|
(510 KB).
|
||||||
</DD>
|
</DD>
|
||||||
<DD>
|
<DD>
|
||||||
@ -164,14 +156,14 @@ cdrskin is part of libburn - full libburn is provided with cdrskin releases.
|
|||||||
</DD>
|
</DD>
|
||||||
<DD> </DD>
|
<DD> </DD>
|
||||||
<DT>Download as single x86 binaries (untar and move to /usr/bin/cdrskin):</DT>
|
<DT>Download as single x86 binaries (untar and move to /usr/bin/cdrskin):</DT>
|
||||||
<DD><A HREF="cdrskin_0.2.4.pl01-x86-suse9_0.tar.gz">
|
<DD><A HREF="cdrskin_0.2.6.pl01-x86-suse9_0.tar.gz">
|
||||||
cdrskin_0.2.4.pl01-x86-suse9_0.tar.gz</A>, (60 KB),
|
cdrskin_0.2.6.pl01-x86-suse9_0.tar.gz</A>, (60 KB),
|
||||||
<DL>
|
<DL>
|
||||||
<DD>runs on SuSE 9.0 (2.4.21) , RIP-14.4 (2.6.14) ,
|
<DD>runs on SuSE 9.0 (2.4.21) , RIP-14.4 (2.6.14) ,
|
||||||
Gentoo (2.6.15 x86_64 Athlon).</DD>
|
Gentoo (2.6.15 x86_64 Athlon).</DD>
|
||||||
</DL>
|
</DL>
|
||||||
<DD><A HREF="cdrskin_0.2.4.pl01-x86-suse9_0-static.tar.gz">
|
<DD><A HREF="cdrskin_0.2.6.pl01-x86-suse9_0-static.tar.gz">
|
||||||
cdrskin_0.2.4.pl01-x86-suse9_0-static.tar.gz</A>, (260 KB), -static compiled,
|
cdrskin_0.2.6.pl01-x86-suse9_0-static.tar.gz</A>, (260 KB), -static compiled,
|
||||||
<DL>
|
<DL>
|
||||||
<DD>runs on SuSE 7.2 (2.4.4), and on the systems above.</DD>
|
<DD>runs on SuSE 7.2 (2.4.4), and on the systems above.</DD>
|
||||||
</DL>
|
</DL>
|
||||||
@ -195,22 +187,23 @@ cdrskin_0.2.4.pl01-x86-suse9_0-static.tar.gz</A>, (260 KB), -static compiled,
|
|||||||
<HR>
|
<HR>
|
||||||
|
|
||||||
<P>
|
<P>
|
||||||
Enhancements towards previous stable version cdrskin-0.2.2:
|
Enhancements towards previous stable version cdrskin-0.2.4:
|
||||||
<UL>
|
<UL>
|
||||||
<LI>cdrecord compatibility with drive addresses of form [ATA:]Bus,Target,Lun.
|
<LI>Option <KBD><B>-tao</B></KBD> is fully enabled.<BR>
|
||||||
<BR>(use option --old_pseudo_scsi_adr to get back the incompatible
|
SAO is still the preferred default but TAO is default if a track of
|
||||||
Bus,Traget,Lun addressing of version 0.2.2)
|
unpredicted size is present (stdin, named pipe, ...) or if a follow-up
|
||||||
|
session is written to an appendable CD.
|
||||||
|
(This is an intentional deviation from cdrecord defaults which themselves
|
||||||
|
have changed with the newest cdrecord versions.)
|
||||||
</LI>
|
</LI>
|
||||||
<LI>Drives adressable via links and device siblings (/dev/cdrom , /dev/scd0).
|
<LI>Status report during blank, preparation and finalization improved.</LI>
|
||||||
</LI>
|
<LI>Bug fixed: Trailing trash appended to .wav files caused error message
|
||||||
<LI>Automatic -audio extraction with .wav files and .au files.
|
and, if exceeding fifo size, could even stall a burn.
|
||||||
</LI>
|
(Workaround: disable fifo by <KBD><B>fs=0</B></KBD>)</LI>
|
||||||
<LI>Bug fix about failure to eject.</LI>
|
<LI>Bug fixed: False speed with first pacifier cycle. Potential program
|
||||||
<LI>Comments and empty lines allowed in startup files.</LI>
|
abort by floating point exception (NaN).</LI>
|
||||||
<LI>Options -scanbus and --devices print SORRY messages about busy drives.
|
<LI>multi-session CDs: <KBD><B>-multi</B></KBD>, <KBD><B>-msinfo</B></KBD>,
|
||||||
</LI>
|
writing to appendable CDs (for now restricted to write mode TAO).</LI>
|
||||||
<LI>Drive buffer fill indicator reports realistic percentage numbers.</LI>
|
|
||||||
<LI>Option -toc is supported, drive firmware revision gets displayed.</LI>
|
|
||||||
</UL>
|
</UL>
|
||||||
</P>
|
</P>
|
||||||
|
|
||||||
@ -218,30 +211,14 @@ Enhancements towards previous stable version cdrskin-0.2.2:
|
|||||||
|
|
||||||
<P>
|
<P>
|
||||||
<DL>
|
<DL>
|
||||||
<DT><H3>Development snapshot, version 0.2.5 :</H3></DT>
|
<DT><H3>Development snapshot, version 0.2.7 :</H3></DT>
|
||||||
<DD>Enhancements towards stable version 0.2.4:
|
<DD>Enhancements towards stable version 0.2.6:
|
||||||
<UL>
|
(none yet)
|
||||||
<LI>Option <KBD><B>-tao</B></KBD> is fully enabled.<BR>
|
|
||||||
SAO is still the preferred default but TAO is default if a track of
|
|
||||||
unpredicted size is present (stdin, named pipe, ...) or if a follow-up
|
|
||||||
session is written to an appendable CD.
|
|
||||||
(This is an intentional deviation from cdrecord defaults which themselves
|
|
||||||
have changed with the newest cdrecord versions.)
|
|
||||||
</LI>
|
|
||||||
<LI>Status report during blank, preparation and finalization improved.</LI>
|
|
||||||
<LI>Bug fixed: Trailing trash appended to .wav files caused error message
|
|
||||||
and, if exceeding fifo size, could even stall a burn.
|
|
||||||
(Workaround: disable fifo by <KBD><B>fs=0</B></KBD>)</LI>
|
|
||||||
<LI>Bug fixed: False speed with first pacifier cycle. Potential program
|
|
||||||
abort by floating point exception (NaN).</LI>
|
|
||||||
<LI>multi-session CDs: <KBD><B>-multi</B></KBD>, <KBD><B>-msinfo</B></KBD>,
|
|
||||||
writing to appendable CDs (for now restricted to write mode TAO).</LI>
|
|
||||||
</UL>
|
|
||||||
</DD>
|
</DD>
|
||||||
<DD> </DD>
|
<DD> </DD>
|
||||||
<DD><A HREF="README_cdrskin_devel">README 0.2.5</A>
|
<DD><A HREF="README_cdrskin_devel">README 0.2.7</A>
|
||||||
<DD><A HREF="cdrskin__help_devel">cdrskin_0.2.5 --help</A></DD>
|
<DD><A HREF="cdrskin__help_devel">cdrskin_0.2.7 --help</A></DD>
|
||||||
<DD><A HREF="cdrskin_help_devel">cdrskin_0.2.5 -help</A></DD>
|
<DD><A HREF="cdrskin_help_devel">cdrskin_0.2.7 -help</A></DD>
|
||||||
<DD> </DD>
|
<DD> </DD>
|
||||||
<DT>Maintainers of cdrskin unstable packages please use SVN of
|
<DT>Maintainers of cdrskin unstable packages please use SVN of
|
||||||
<A HREF="http://libburn.pykix.org"> libburn.pykix.org</A></DT>
|
<A HREF="http://libburn.pykix.org"> libburn.pykix.org</A></DT>
|
||||||
@ -261,15 +238,15 @@ admins with full system souvereignty.</DT>
|
|||||||
<A HREF="README_cdrskin_devel">upcoming README</A> ):
|
<A HREF="README_cdrskin_devel">upcoming README</A> ):
|
||||||
</DD>
|
</DD>
|
||||||
<DD>
|
<DD>
|
||||||
<A HREF="cdrskin-0.2.5.tar.gz">cdrskin-0.2.5.tar.gz</A>
|
<A HREF="cdrskin-0.2.7.tar.gz">cdrskin-0.2.7.tar.gz</A>
|
||||||
(500 KB).
|
(500 KB).
|
||||||
</DD>
|
</DD>
|
||||||
<DD>Binary (untar and move to /usr/bin/cdrskin):</DD>
|
<DD>Binary (untar and move to /usr/bin/cdrskin):</DD>
|
||||||
<DD><A HREF="cdrskin_0.2.5-x86-suse9_0.tar.gz">
|
<DD><A HREF="cdrskin_0.2.7-x86-suse9_0.tar.gz">
|
||||||
cdrskin_0.2.5-x86-suse9_0.tar.gz</A>, (60 KB).
|
cdrskin_0.2.7-x86-suse9_0.tar.gz</A>, (60 KB).
|
||||||
</DD>
|
</DD>
|
||||||
<DD><A HREF="cdrskin_0.2.5-x86-suse9_0-static.tar.gz">
|
<DD><A HREF="cdrskin_0.2.7-x86-suse9_0-static.tar.gz">
|
||||||
cdrskin_0.2.5-x86-suse9_0-static.tar.gz</A>, (260 KB)
|
cdrskin_0.2.7-x86-suse9_0-static.tar.gz</A>, (260 KB)
|
||||||
</DD>
|
</DD>
|
||||||
</DL>
|
</DL>
|
||||||
</P>
|
</P>
|
||||||
@ -322,14 +299,6 @@ is a GUI frontend which uses cdrecord for CD burning.)
|
|||||||
<DT>Example for a test session with a cdrecord based scdbackup installation:</DT>
|
<DT>Example for a test session with a cdrecord based scdbackup installation:</DT>
|
||||||
<DD>$ <KBD><B>cdrskin -scanbus</B></KBD></DD>
|
<DD>$ <KBD><B>cdrskin -scanbus</B></KBD></DD>
|
||||||
<DD><KBD>...</KBD></DD>
|
<DD><KBD>...</KBD></DD>
|
||||||
</DL>
|
|
||||||
If your system is stricken with some ill CD device then this can stall
|
|
||||||
and you will have to press <KBD>Ctrl+C</KBD> to abort.
|
|
||||||
In this case, you may execute
|
|
||||||
<KBD>export SCDBACKUP_NO_SCANBUS=1</KBD>
|
|
||||||
and try again.
|
|
||||||
<DL>
|
|
||||||
<DT></DT>
|
|
||||||
<DD><KBD> 2,0,0 0) 'TEAC' 'CD-ROM CD-532S' '?' Removable CD-ROM</KBD></DD>
|
<DD><KBD> 2,0,0 0) 'TEAC' 'CD-ROM CD-532S' '?' Removable CD-ROM</KBD></DD>
|
||||||
<DD>$ <KBD><B>cdrskin -scanbus dev=ATA</B></KBD></DD>
|
<DD>$ <KBD><B>cdrskin -scanbus dev=ATA</B></KBD></DD>
|
||||||
<DD><KBD>...</KBD></DD>
|
<DD><KBD>...</KBD></DD>
|
||||||
@ -344,8 +313,15 @@ and try again.
|
|||||||
<DD>$ <KBD><B>export SCDBACKUP_USE_CDRSKIN=1</B></KBD></DD>
|
<DD>$ <KBD><B>export SCDBACKUP_USE_CDRSKIN=1</B></KBD></DD>
|
||||||
<DD>$ <KBD><B>./CONFIGURE_CD</B></KBD></DD>
|
<DD>$ <KBD><B>./CONFIGURE_CD</B></KBD></DD>
|
||||||
<DD><KBD>...</KBD></DD>
|
<DD><KBD>...</KBD></DD>
|
||||||
<DD><KBD>cdrskin 0.2.4 : limited cdrecord compatibility wrapper for libburn</KBD></DD>
|
<DD><KBD>cdrskin 0.2.6 : limited cdrecord compatibility wrapper for libburn</KBD></DD>
|
||||||
<DD><KBD>...</KBD></DD>
|
</DL>
|
||||||
|
If your system is stricken with some ill CD device then this can stall
|
||||||
|
and you will have to press <KBD>Ctrl+C</KBD> to abort.
|
||||||
|
In this case, you may execute
|
||||||
|
<KBD>export SCDBACKUP_NO_SCANBUS=1</KBD>
|
||||||
|
and try again.
|
||||||
|
<DL>
|
||||||
|
<DT></DT>
|
||||||
<DD><KBD> ------------------- SCSI devices. To be used like 0,0,0</KBD></DD>
|
<DD><KBD> ------------------- SCSI devices. To be used like 0,0,0</KBD></DD>
|
||||||
<DD><KBD> 2,0,0 0) 'TEAC' 'CD-ROM CD-532S' '?' Removable CD-ROM</KBD></DD>
|
<DD><KBD> 2,0,0 0) 'TEAC' 'CD-ROM CD-532S' '?' Removable CD-ROM</KBD></DD>
|
||||||
<DD><KBD> ------------------- end of SCSI device list</KBD></DD>
|
<DD><KBD> ------------------- end of SCSI device list</KBD></DD>
|
||||||
|
@ -1 +1 @@
|
|||||||
#define Cdrskin_timestamP "2006.11.22.122228"
|
#define Cdrskin_timestamP "2006.11.23.102340"
|
||||||
|
@ -1687,22 +1687,39 @@ Removed a redundant d->start_unit() of revision 419
|
|||||||
* libisofs unbundled from libburn+cdrskin
|
* libisofs unbundled from libburn+cdrskin
|
||||||
* Hints for porting to other operating systems are now in sg-*.c
|
* Hints for porting to other operating systems are now in sg-*.c
|
||||||
|
|
||||||
|
20 Nov 2006 [425]
|
||||||
|
cdrskin/changelog.txt
|
||||||
|
Next cdrskin-0.2.5 cycle
|
||||||
|
|
||||||
|
2006.11.20.132717 [426]
|
||||||
[]
|
|
||||||
cdrskin/cdrskin.c
|
cdrskin/cdrskin.c
|
||||||
cdrskin/cdrfifo.h
|
cdrskin/cdrfifo.h
|
||||||
cdrskin/cdrfifo.c
|
cdrskin/cdrfifo.c
|
||||||
cdrskin/wiki_plain.txt
|
cdrskin/wiki_plain.txt
|
||||||
Implemented new option fifo_start_at=
|
Implemented new option fifo_start_at=
|
||||||
|
|
||||||
|
20 Nov 2006 [427]
|
||||||
|
cdrskin/wiki_plain.txt
|
||||||
|
Updated in respect to multi-session
|
||||||
|
|
||||||
[]
|
2006.11.22.122228 [428]
|
||||||
Coordinate scsi_notify_error() and scsi_error() about harmless conditions
|
libburn/spc.h
|
||||||
|
libburn/spc.c
|
||||||
|
Coordinated scsi_notify_error() and scsi_error()
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------ cycle - cdrskin-0.2.5 - 2006.11.22.142517
|
||||||
|
|
||||||
|
23 Nov 2006 []
|
||||||
|
cdrskin/changelog.txt
|
||||||
|
Last cdrskin-0.2.5 cycle
|
||||||
|
|
||||||
|
|
||||||
----------------------------------------- long term intentions:
|
----------------------------------------- long term intentions:
|
||||||
|
|
||||||
|
[]
|
||||||
|
Truely recognize media type
|
||||||
|
|
||||||
[]
|
[]
|
||||||
-reset: ioctl(fd,CDROMRESET) ioctl(fd,SG_SCSI_RESET,SG_SCSI_RESET_DEVICE)
|
-reset: ioctl(fd,CDROMRESET) ioctl(fd,SG_SCSI_RESET,SG_SCSI_RESET_DEVICE)
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
debug_opts=
|
debug_opts=
|
||||||
def_opts=
|
def_opts=
|
||||||
largefile_opts="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1"
|
largefile_opts="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1"
|
||||||
libvers="-DCdrskin_libburn_0_2_3"
|
libvers="-DCdrskin_libburn_0_2_6"
|
||||||
cleanup_src_or_obj="libburn/cleanup.o"
|
cleanup_src_or_obj="libburn/cleanup.o"
|
||||||
libdax_msgs_o="libburn/libdax_msgs.o"
|
libdax_msgs_o="libburn/libdax_msgs.o"
|
||||||
libdax_audioxtr_o="libburn/libdax_audioxtr.o"
|
libdax_audioxtr_o="libburn/libdax_audioxtr.o"
|
||||||
@ -33,15 +33,15 @@ do
|
|||||||
libdax_audioxtr_o=
|
libdax_audioxtr_o=
|
||||||
libdax_msgs_o="libburn/message.o"
|
libdax_msgs_o="libburn/message.o"
|
||||||
cleanup_src_or_obj="-DCleanup_has_no_libburn_os_H cdrskin/cleanup.c"
|
cleanup_src_or_obj="-DCleanup_has_no_libburn_os_H cdrskin/cleanup.c"
|
||||||
elif test "$i" = "-libburn_0_2_2"
|
elif test "$i" = "-libburn_0_2_6"
|
||||||
then
|
then
|
||||||
libvers="-DCdrskin_libburn_0_2_2"
|
libvers="-DCdrskin_libburn_0_2_6"
|
||||||
libdax_audioxtr_o=
|
libdax_audioxtr_o="libburn/libdax_audioxtr.o"
|
||||||
libdax_msgs_o="libburn/message.o"
|
libdax_msgs_o="libburn/libdax_msgs.o"
|
||||||
cleanup_src_or_obj="-DCleanup_has_no_libburn_os_H cdrskin/cleanup.c"
|
cleanup_src_or_obj="libburn/cleanup.o"
|
||||||
elif test "$i" = "-libburn_0_2_3"
|
elif test "$i" = "-libburn_svn"
|
||||||
then
|
then
|
||||||
libvers="-DCdrskin_libburn_0_2_3"
|
libvers="-DCdrskin_libburn_0_2_6"
|
||||||
libdax_audioxtr_o="libburn/libdax_audioxtr.o"
|
libdax_audioxtr_o="libburn/libdax_audioxtr.o"
|
||||||
libdax_msgs_o="libburn/libdax_msgs.o"
|
libdax_msgs_o="libburn/libdax_msgs.o"
|
||||||
cleanup_src_or_obj="libburn/cleanup.o"
|
cleanup_src_or_obj="libburn/cleanup.o"
|
||||||
@ -79,8 +79,8 @@ do
|
|||||||
echo " -compile_cdrfifo compile program cdrskin/cdrfifo."
|
echo " -compile_cdrfifo compile program cdrskin/cdrfifo."
|
||||||
echo " -compile_dewav compile program test/dewav without libburn."
|
echo " -compile_dewav compile program test/dewav without libburn."
|
||||||
echo " -cvs_A60220 set macro to match libburn-CVS of 20 Feb 2006."
|
echo " -cvs_A60220 set macro to match libburn-CVS of 20 Feb 2006."
|
||||||
echo " -libburn_0_2_2 set macro to match libburn-0.2.2."
|
echo " -libburn_0_2_6 set macro to match libburn-0.2.6."
|
||||||
echo " -libburn_0_2_3 set macro to match current libburn-SVN."
|
echo " -libburn_svn set macro to match current libburn-SVN."
|
||||||
echo " -no_largefile do not use 64 bit off_t (must match libburn)."
|
echo " -no_largefile do not use 64 bit off_t (must match libburn)."
|
||||||
echo " -do_not_compile_cdrskin omit compilation of cdrskin/cdrskin."
|
echo " -do_not_compile_cdrskin omit compilation of cdrskin/cdrskin."
|
||||||
echo " -experimental use newly introduced libburn features."
|
echo " -experimental use newly introduced libburn features."
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
cdrskin Wiki - plain text copy
|
cdrskin Wiki - plain text copy
|
||||||
--------------------------------------------------------------------------
|
--------------------------------------------------------------------------
|
||||||
|
|
||||||
cdrskin-0.2.5 is the cdrecord compatibility middleware of libburn.
|
cdrskin is the cdrecord compatibility middleware of libburn.
|
||||||
|
|
||||||
Its paragon, cdrecord, is a powerful GPL'ed burn program included in Joerg
|
Its paragon, cdrecord, is a powerful GPL'ed burn program included in Joerg
|
||||||
Schilling's cdrtools. cdrskin strives to be a second source for the services
|
Schilling's cdrtools. cdrskin strives to be a second source for the services
|
||||||
@ -19,10 +19,9 @@ About libburn API for burning CD: http://libburn-api.pykix.org
|
|||||||
|
|
||||||
--------------------------------------------------------------------------
|
--------------------------------------------------------------------------
|
||||||
|
|
||||||
Convenient TAO burn mode is provided in development version 0.2.5 but not in
|
Appending sessions to an unclosed CD is restricted to write mode TAO.
|
||||||
current "stable" release 0.2.4. The same is true for multi-session, where
|
(Users who have a burner which succeeds with a follow-up session via
|
||||||
follow-up sessions must be done in TAO mode. (Users who have a burner which
|
cdrecord -sao : please contact us.)
|
||||||
succeeds with a follow-up session via cdrecord -sao : please contact us.)
|
|
||||||
|
|
||||||
cdrskin does not provide DVD burning yet. See advise to use dvd+rw-tools
|
cdrskin does not provide DVD burning yet. See advise to use dvd+rw-tools
|
||||||
at the end of this text.
|
at the end of this text.
|
||||||
@ -135,8 +134,8 @@ tao_to_sao_tsize=<num> allows the - actually unsupported - cdrecord option
|
|||||||
-tao and defines a default track size to be used if - as custom with -tao -
|
-tao and defines a default track size to be used if - as custom with -tao -
|
||||||
no option tsize=# is given.
|
no option tsize=# is given.
|
||||||
|
|
||||||
Since -tao is supported in cdrskin-0.2.5 the TAO-to-SAO workaround on its way
|
Since -tao is supported in cdrskin-0.2.6 the TAO-to-SAO workaround has become
|
||||||
to obsolescence. Nevertheless, tao_to_sao_tsize= allows to preset a default
|
quite obsolete. Nevertheless, tao_to_sao_tsize= allows to preset a default
|
||||||
size for SAO mode which is in effect only if no track size is available.
|
size for SAO mode which is in effect only if no track size is available.
|
||||||
|
|
||||||
As in general with cdrskin tsize=# the data source does not have to provide
|
As in general with cdrskin tsize=# the data source does not have to provide
|
||||||
|
@ -56,8 +56,8 @@ WARN_LOGFILE =
|
|||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the input files
|
# configuration options related to the input files
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
INPUT = libburn libisofs doc test
|
INPUT = libburn doc test
|
||||||
FILE_PATTERNS = libburn.h libisofs.h comments libburner.c
|
FILE_PATTERNS = libburn.h comments libburner.c
|
||||||
RECURSIVE = NO
|
RECURSIVE = NO
|
||||||
EXCLUDE =
|
EXCLUDE =
|
||||||
EXCLUDE_SYMLINKS = NO
|
EXCLUDE_SYMLINKS = NO
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
int main()
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
126
test/master.c
126
test/master.c
@ -1,126 +0,0 @@
|
|||||||
/* -*- indent-tabs-mode: t; tab-width: 8; c-basic-offset: 8; -*- */
|
|
||||||
#include <libburn/libburn.h>
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <assert.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
static struct burn_drive_info *drives;
|
|
||||||
static unsigned int n_drives;
|
|
||||||
|
|
||||||
void burn_files(struct burn_drive *drive, struct burn_disc *disc)
|
|
||||||
{
|
|
||||||
struct burn_write_opts *o;
|
|
||||||
enum burn_disc_status s;
|
|
||||||
|
|
||||||
if (!burn_drive_grab(drive, 1)) {
|
|
||||||
printf("Unable to open the drive!\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
while (burn_drive_get_status(drive, NULL))
|
|
||||||
usleep(1000);
|
|
||||||
|
|
||||||
while ((s = burn_disc_get_status(drive)) == BURN_DISC_UNREADY)
|
|
||||||
usleep(1000);
|
|
||||||
|
|
||||||
if (s != BURN_DISC_BLANK) {
|
|
||||||
burn_drive_release(drive, 0);
|
|
||||||
printf("Please insert blank media in the drive\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
o = burn_write_opts_new(drive);
|
|
||||||
burn_drive_set_speed(drive, 0, 2816);
|
|
||||||
burn_write_opts_set_perform_opc(o, 0);
|
|
||||||
burn_write_opts_set_write_type(o, BURN_WRITE_TAO, BURN_BLOCK_MODE1);
|
|
||||||
burn_write_opts_set_simulate(o, 1);
|
|
||||||
/* want failure on seggy while debugging :) */
|
|
||||||
burn_write_opts_set_underrun_proof(o, 0);
|
|
||||||
burn_structure_print_disc(disc);
|
|
||||||
burn_disc_write(o, disc);
|
|
||||||
burn_write_opts_free(o);
|
|
||||||
|
|
||||||
while (burn_drive_get_status(drive, NULL)) {
|
|
||||||
sleep(1);
|
|
||||||
}
|
|
||||||
printf("\n");
|
|
||||||
burn_drive_release(drive, 0);
|
|
||||||
burn_disc_free(disc);
|
|
||||||
}
|
|
||||||
|
|
||||||
void parse_args(int argc, char **argv, int *drive, struct burn_disc **disc)
|
|
||||||
{
|
|
||||||
int i, tmode = BURN_AUDIO;
|
|
||||||
int help = 1;
|
|
||||||
struct burn_session *session;
|
|
||||||
struct burn_track *tr;
|
|
||||||
struct burn_source *src;
|
|
||||||
|
|
||||||
*disc = burn_disc_create();
|
|
||||||
session = burn_session_create();
|
|
||||||
burn_disc_add_session(*disc, session, BURN_POS_END);
|
|
||||||
for (i = 1; i < argc; ++i) {
|
|
||||||
if (!strcmp(argv[i], "--drive")) {
|
|
||||||
++i;
|
|
||||||
if (i >= argc)
|
|
||||||
printf("--drive requires an argument\n");
|
|
||||||
else
|
|
||||||
*drive = atoi(argv[i]);
|
|
||||||
} else if (!strcmp(argv[i], "--audio")) {
|
|
||||||
tmode = BURN_AUDIO;
|
|
||||||
} else if (!strcmp(argv[i], "--data")) {
|
|
||||||
tmode = BURN_MODE1;
|
|
||||||
} else if (!strcmp(argv[i], "--verbose")) {
|
|
||||||
++i;
|
|
||||||
if (i >= argc)
|
|
||||||
printf("--verbose requires an argument\n");
|
|
||||||
else
|
|
||||||
burn_set_verbosity(atoi(argv[i]));
|
|
||||||
} else if (!strcmp(argv[i], "--help")) {
|
|
||||||
help = 1; /* who cares */
|
|
||||||
} else {
|
|
||||||
help = 0;
|
|
||||||
printf("%s is a track\n", argv[i]);
|
|
||||||
|
|
||||||
tr = burn_track_create();
|
|
||||||
src = burn_file_source_new(argv[i], NULL);
|
|
||||||
burn_track_set_source(tr, src);
|
|
||||||
burn_source_free(src);
|
|
||||||
burn_track_define_data(tr, 0, 0, 1, tmode);
|
|
||||||
burn_session_add_track(session, tr, BURN_POS_END);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (help) {
|
|
||||||
printf("Usage: %s [--drive <num>] [--verbose <level>] files\n",
|
|
||||||
argv[0]);
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
int drive = 0;
|
|
||||||
struct burn_disc *disc;
|
|
||||||
|
|
||||||
parse_args(argc, argv, &drive, &disc);
|
|
||||||
printf("Initializing library...");
|
|
||||||
if (burn_initialize())
|
|
||||||
printf("Success\n");
|
|
||||||
else {
|
|
||||||
printf("Failed\n");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
printf("Scanning for devices...");
|
|
||||||
while (!burn_drive_scan(&drives, &n_drives)) ;
|
|
||||||
printf("Done\n");
|
|
||||||
|
|
||||||
burn_files(drives[drive].drive, disc);
|
|
||||||
burn_drive_info_free(drives);
|
|
||||||
burn_finish();
|
|
||||||
return 0;
|
|
||||||
}
|
|
54
test/rip.c
54
test/rip.c
@ -1,54 +0,0 @@
|
|||||||
/* THIS IS NOT A PROPER EXAMPLE */
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
#include <libburn/libburn.h>
|
|
||||||
|
|
||||||
static struct burn_drive_info *drives;
|
|
||||||
static unsigned int n_drives;
|
|
||||||
|
|
||||||
#warning this example is totally fried
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
#if 0
|
|
||||||
struct burn_drive *drive;
|
|
||||||
struct burn_read_opts o;
|
|
||||||
|
|
||||||
burn_initialize();
|
|
||||||
o.datafd =
|
|
||||||
open("/xp/burn/blah.data", O_CREAT | O_WRONLY,
|
|
||||||
S_IRUSR | S_IWUSR);
|
|
||||||
o.subfd =
|
|
||||||
open("/xp/burn/blah.sub", O_CREAT | O_WRONLY,
|
|
||||||
S_IRUSR | S_IWUSR);
|
|
||||||
o.raw = 1;
|
|
||||||
o.c2errors = 0;
|
|
||||||
o.subcodes_audio = 1;
|
|
||||||
o.subcodes_data = 1;
|
|
||||||
o.hardware_error_recovery = 1;
|
|
||||||
o.report_recovered_errors = 0;
|
|
||||||
o.transfer_damaged_blocks = 1;
|
|
||||||
o.hardware_error_retries = 1;
|
|
||||||
|
|
||||||
printf("Scanning for devices...");
|
|
||||||
while (!burn_drive_scan(&drives, &n_drives)) ;
|
|
||||||
printf("Done\n");
|
|
||||||
drive = drives[0].drive;
|
|
||||||
burn_drive_set_speed(drive, 0, 0);
|
|
||||||
|
|
||||||
if (!burn_drive_grab(drive, 1)) {
|
|
||||||
printf("Unable to open the drive!\n");
|
|
||||||
return EXIT_FAILURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
while (burn_drive_get_status(drive, NULL))
|
|
||||||
usleep(1000);
|
|
||||||
|
|
||||||
burn_disc_read(drive, &o);
|
|
||||||
#endif
|
|
||||||
return EXIT_SUCCESS;
|
|
||||||
}
|
|
77
test/tree.py
77
test/tree.py
@ -1,77 +0,0 @@
|
|||||||
# a module to help with handling of filenames, directory trees, etc.
|
|
||||||
|
|
||||||
import os
|
|
||||||
import os.path
|
|
||||||
import stat
|
|
||||||
|
|
||||||
def pathsubtract(a, b):
|
|
||||||
index = a.find(b)
|
|
||||||
if index == -1:
|
|
||||||
return None
|
|
||||||
res = a[ (index + len(b)): ]
|
|
||||||
|
|
||||||
if res.find("/") == 0:
|
|
||||||
res = res[1:]
|
|
||||||
return res
|
|
||||||
|
|
||||||
# same as C strcmp()
|
|
||||||
def strcmp(a, b):
|
|
||||||
if a < b:
|
|
||||||
return -1
|
|
||||||
if a > b:
|
|
||||||
return 1
|
|
||||||
return 0
|
|
||||||
|
|
||||||
class TreeNode:
|
|
||||||
|
|
||||||
# path is the location of the file/directory. It is either a full path or
|
|
||||||
# a path relative to $PWD
|
|
||||||
def __init__(self, parent, path=".", root=".", isofile=None):
|
|
||||||
if isofile:
|
|
||||||
self.root = os.path.abspath(isofile)
|
|
||||||
self.path = ""
|
|
||||||
else:
|
|
||||||
fullpath = os.path.abspath( path )
|
|
||||||
fullroot = os.path.abspath( root )
|
|
||||||
self.root = fullroot
|
|
||||||
self.path = pathsubtract( fullpath, fullroot )
|
|
||||||
self.parent = parent
|
|
||||||
self.children = []
|
|
||||||
|
|
||||||
if self.path == None:
|
|
||||||
raise NameError, "Invalid paths %s and %s" % (fullpath, fullroot)
|
|
||||||
|
|
||||||
# if this is a directory, add its children recursively
|
|
||||||
def addchildren(self):
|
|
||||||
if not stat.S_ISDIR( os.lstat(self.root + "/" + self.path).st_mode ):
|
|
||||||
return
|
|
||||||
|
|
||||||
children = os.listdir( self.root + "/" + self.path )
|
|
||||||
for child in children:
|
|
||||||
if self.path:
|
|
||||||
child = self.path + "/" + child
|
|
||||||
self.children.append( TreeNode(self, child, self.root) )
|
|
||||||
for child in self.children:
|
|
||||||
child.addchildren()
|
|
||||||
|
|
||||||
def printAll(self, spaces=0):
|
|
||||||
print " "*spaces + self.root + "/" + self.path
|
|
||||||
for child in self.children:
|
|
||||||
child.printAll(spaces + 2)
|
|
||||||
|
|
||||||
def isValidISO1(self):
|
|
||||||
pass
|
|
||||||
|
|
||||||
class Tree:
|
|
||||||
def __init__(self, root=None, isofile=None):
|
|
||||||
if isofile:
|
|
||||||
self.root = TreeNode(parent=None, isofile=isofile)
|
|
||||||
else:
|
|
||||||
self.root = TreeNode(parent=None, path=root, root=root)
|
|
||||||
self.root.addchildren()
|
|
||||||
|
|
||||||
def isValidISO1(self):
|
|
||||||
return root.isValidISO1();
|
|
||||||
|
|
||||||
#t = Tree(root=".")
|
|
||||||
#t.root.printAll()
|
|
BIN
test/tree.pyc
BIN
test/tree.pyc
Binary file not shown.
Reference in New Issue
Block a user