Compare commits

..

4 Commits

19 changed files with 100 additions and 440 deletions

View File

@ -109,7 +109,7 @@ test_structest_SOURCES = test/structest.c
## cdrskin construction site - ts A60816 - A90507
cdrskin_cdrskin_CPPFLAGS = -Ilibburn
cdrskin_cdrskin_CFLAGS = -DCdrskin_libburn_0_7_0
cdrskin_cdrskin_CFLAGS = -DCdrskin_libburn_0_6_8
# cdrskin_cdrskin_LDADD = $(libburn_libburn_la_OBJECTS) $(LIBBURN_EXTRALIBS)
# ts A80123, change proposed by Simon Huggins to cause dynamic libburn linking

24
README
View File

@ -11,7 +11,7 @@ Still containing parts of Libburn. By Derek Foreman <derek@signalmarketing.com>
and Ben Jansens <xor@orodu.net>
Copyright (C) 2002-2006 Derek Foreman and Ben Jansens
http://files.libburnia-project.org/releases/libburn-0.7.0.pl00.tar.gz
http://files.libburnia-project.org/releases/libburn-0.6.8.pl00.tar.gz
------------------------------------------------------------------------------
@ -19,10 +19,10 @@ Copyright (C) 2002-2006 Derek Foreman and Ben Jansens
From tarball
Obtain libburn-0.7.0.pl00.tar.gz, take it to a directory of your choice and do:
Obtain libburn-0.6.8.pl00.tar.gz, take it to a directory of your choice and do:
tar xzf libburn-0.7.0.pl00.tar.gz
cd libburn-0.7.0
tar xzf libburn-0.6.8.pl00.tar.gz
cd libburn-0.6.8
./configure --prefix=/usr
make
@ -47,8 +47,8 @@ Our build system is based on autotools. For preparing the build of a SVN
snapshot you will need autotools of at least version 1.7.
Do in a directory of your choice:
svn co http://svn.libburnia-project.org/libburn/trunk libburn-svn
cd libburn-svn
svn co http://svn.libburnia-project.org/libburn/trunk libburn-0.6.3
cd libburn-0.6.3
./bootstrap
./configure --prefix=/usr
make
@ -413,18 +413,6 @@ Project history as far as known to me:
- 14 Jul 2009 libburn-0.6.8 fixes bugs and shortcommings with old MMC-1 drives
and with large SCSI bus numbers as handed out by Linux for USB drives.
- 20 Jul 2009 libisoburn-0.4.0.pl01 fixes a regression in xorriso which caused
data loss in older sessions if xorriso was used underneath growisofs.
Affected are releases since libisoburn-0.3.2 in january 2009.
- 25 Aug 2009 libisofs-0.6.22 can record MD5 checksums for the whole session
and for each single data file. Checksum tags allow to verify superblock and
directory tree before importing them.
- 27 Aug 2009 libburn-0.7.0 allows to calm down a drive and to inquire its
supported profiles. It works around some pitfalls with U3 enhanced memory
sticks which emulate a CD-ROM.
------------------------------------------------------------------------------

View File

@ -4,7 +4,7 @@
cdrskin. By Thomas Schmitt <scdbackup@gmx.net>
Integrated sub project of libburnia-project.org but also published via:
http://scdbackup.sourceforge.net/cdrskin_eng.html
http://scdbackup.sourceforge.net/cdrskin-0.7.0.pl00.tar.gz
http://scdbackup.sourceforge.net/cdrskin-0.6.8.pl00.tar.gz
Copyright (C) 2006-2009 Thomas Schmitt, provided under GPL version 2.
------------------------------------------------------------------------------
@ -24,10 +24,10 @@ By using this software you agree to the disclaimer at the end of this text
Compilation, First Glimpse, Installation
Obtain cdrskin-0.7.0.pl00.tar.gz, take it to a directory of your choice and do:
Obtain cdrskin-0.6.8.pl00.tar.gz, take it to a directory of your choice and do:
tar xzf cdrskin-0.7.0.pl00.tar.gz
cd cdrskin-0.7.0
tar xzf cdrskin-0.6.8.pl00.tar.gz
cd cdrskin-0.6.8
Within that directory execute:

View File

@ -38,7 +38,7 @@ original="./libburn_svn_release.tgz"
# My changes are in $changes , mainly in $changes/cdrskin
changes="./libburn-release"
skin_release="0.7.0"
skin_release="0.6.8"
patch_level=".pl00"
skin_rev="$skin_release""$patch_level"

View File

@ -38,7 +38,7 @@ original="./libburn_svn.tgz"
# My changes are in $changes , mainly in $changes/cdrskin
changes="./libburn-develop"
skin_release="0.7.1"
skin_release="0.6.9"
patch_level=""
skin_rev="$skin_release""$patch_level"

View File

@ -88,7 +88,7 @@ or
/** The official program version */
#ifndef Cdrskin_prog_versioN
#define Cdrskin_prog_versioN "0.7.0"
#define Cdrskin_prog_versioN "0.6.8"
#endif
/** The official libburn interface revision to use.
@ -98,10 +98,10 @@ or
#define Cdrskin_libburn_majoR 0
#endif
#ifndef Cdrskin_libburn_minoR
#define Cdrskin_libburn_minoR 7
#define Cdrskin_libburn_minoR 6
#endif
#ifndef Cdrskin_libburn_micrO
#define Cdrskin_libburn_micrO 0
#define Cdrskin_libburn_micrO 8
#endif
@ -135,43 +135,44 @@ or
#endif /* Cdrskin_libburn_cvs_A60220_tS */
#ifdef Cdrskin_libburn_0_7_0
#define Cdrskin_libburn_versioN "0.7.0"
#ifdef Cdrskin_libburn_0_6_8
#define Cdrskin_libburn_versioN "0.6.8"
#define Cdrskin_libburn_from_pykix_svN 1
#endif /* Cdrskin_libburn_0_7_0 */
#endif /* Cdrskin_libburn_0_6_8 */
#ifdef Cdrskin_libburn_0_7_1
#define Cdrskin_libburn_versioN "0.7.1"
#ifdef Cdrskin_libburn_0_6_9
#define Cdrskin_libburn_versioN "0.6.9"
#define Cdrskin_libburn_from_pykix_svN 1
/* Place novelty switch macros here.
Move them down to Cdrskin_libburn_from_pykix_svN on version leap
*/
/* there are no libburn novelties yet */
#endif /* Cdrskin_libburn_0_7_1 */
#endif /* Cdrskin_libburn_0_6_9 */
#ifndef Cdrskin_libburn_versioN
#define Cdrskin_libburn_0_7_0
#define Cdrskin_libburn_versioN "0.7.0"
#define Cdrskin_libburn_0_6_8
#define Cdrskin_libburn_versioN "0.6.8"
#define Cdrskin_libburn_from_pykix_svN 1
#endif
#ifdef Cdrskin_libburn_0_7_0
#ifdef Cdrskin_libburn_0_6_8
#undef Cdrskin_libburn_majoR
#undef Cdrskin_libburn_minoR
#undef Cdrskin_libburn_micrO
#define Cdrskin_libburn_majoR 0
#define Cdrskin_libburn_minoR 7
#define Cdrskin_libburn_micrO 0
#define Cdrskin_libburn_minoR 6
#define Cdrskin_libburn_micrO 8
#endif
#ifdef Cdrskin_libburn_0_7_1
#ifdef Cdrskin_libburn_0_6_9
#undef Cdrskin_libburn_majoR
#undef Cdrskin_libburn_minoR
#undef Cdrskin_libburn_micrO
#define Cdrskin_libburn_majoR 0
#define Cdrskin_libburn_minoR 7
#define Cdrskin_libburn_micrO 1
#define Cdrskin_libburn_minoR 6
#define Cdrskin_libburn_micrO 9
#endif
@ -4760,23 +4761,6 @@ cannot_read:;
return(0);
}
int Cdrskin_print_all_profiles(struct CdrskiN *skin, struct burn_drive *drive,
int flag)
{
int num_profiles, profiles[64], i, ret;
char is_current[64], profile_name[80];
burn_drive_get_all_profiles(drive, &num_profiles, profiles, is_current);
for(i= 0; i < num_profiles; i++) {
ret= burn_obtain_profile_name(profiles[i], profile_name);
if(ret <= 0)
strcpy(profile_name, "unknown");
printf("Profile: 0x%4.4X (%s)%s\n", (unsigned int) profiles[i],
profile_name, is_current[i] ? " (current)" : "");
}
return(1);
}
/** Perform -atip .
@param flag Bitfield for control purposes:
@ -4802,10 +4786,8 @@ int Cdrskin_atip(struct CdrskiN *skin, int flag)
if(s==BURN_DISC_APPENDABLE && skin->no_blank_appendable) {
is_not_really_erasable= 1;
} else if(s==BURN_DISC_EMPTY) {
if(skin->verbosity>=Cdrskin_verbose_progresS) {
if(skin->verbosity>=Cdrskin_verbose_progresS)
printf("Current: none\n");
Cdrskin_print_all_profiles(skin, drive, 0);
}
ret= 0; goto ex;
}
@ -4915,9 +4897,7 @@ int Cdrskin_atip(struct CdrskiN *skin, int flag)
printf("Current: CD-RW\n");
else
printf("Current: CD-R\n");
Cdrskin_print_all_profiles(skin, drive, 0);
}
if(strstr(profile_name,"DVD")==profile_name) {
/* These are dummy messages for project scdbackup, so its media recognition
gets a hint that the media is suitable and not in need of blanking.

View File

@ -34,12 +34,10 @@ CD-R, DVD-R, DVD+R, DVD+R/DL, BD-R, CD-RW, DVD-RW, DVD-RAM, DVD+RW, BD-RE
<P>
<H2>Hardware requirements:</H2>
About any CD, DVD, or BD recorder produced in the recent ten years.
<BR>
<A HREF="http://libburnia-project.org">libburn</A>
supports recorders which are compliant to standards MMC-1 for CD and
MMC-5 for DVD or BD. Linux and FreeBSD allow to access drives connected
via SCSI, PATA (aka IDE, ATA), USB, or SATA.
A CD/DVD/BD recorder suitable for
<A HREF="http://libburnia-project.org">http://libburnia-project.org</A> <BR>
(SCSI , ATA , USB , or SATA writers compliant to standard MMC-3 for CD
and to MMC-5 for DVD or BD).
<BR>
</P>
@ -61,7 +59,7 @@ via SCSI, PATA (aka IDE, ATA), USB, or SATA.
GPL software included:<BR>
</H2>
<DL>
<DT>libburn-0.7.0</DT>
<DT>libburn-0.6.8</DT>
<DD>(founded by Derek Foreman and Ben Jansens,
developed and maintained since August 2006 by
Thomas Schmitt from team of libburnia-project.org)
@ -193,8 +191,8 @@ Standalone ISO 9660 multi-session CD/DVD/BD tool
<P>
<DL>
<DT>Download as source code (see README):</DT>
<DD><A HREF="cdrskin-0.7.0.pl00.tar.gz">cdrskin-0.7.0.pl00.tar.gz</A>
(820 KB).
<DD><A HREF="cdrskin-0.6.8.pl00.tar.gz">cdrskin-0.6.8.pl00.tar.gz</A>
(750 KB).
</DD>
<DD>
The cdrskin tarballs are source code identical with libburn releases
@ -243,19 +241,19 @@ cdrskin_0.4.2.pl00-x86-suse9_0-static.tar.gz</A>, (310 KB), -static compiled,
<HR>
<P>
Enhancements towards previous stable version cdrskin-0.6.8.pl00:
Enhancements towards previous stable version cdrskin-0.6.6.pl00:
<UL>
<LI>Adapted to pitfalls of U3 memory sticks which appear as CD-ROM drives</LI>
<LI>Listing all supported profiles with option -atip -v</LI>
<LI>Made -scanbus work with high SCSI bus numbers</LI>
<!--
<LI>none</LI>
-->
</UL>
Bug fixes towards cdrskin-0.6.8.pl00:
Bug fixes towards cdrskin-0.6.6.pl00:
<UL>
<LI>none</LI>
<LI>Old MMC-1 drives were rejected</LI>
<!--
<LI>none</LI>
-->
</UL>
@ -263,8 +261,8 @@ Bug fixes towards cdrskin-0.6.8.pl00:
<P>
<DL>
<DT><H3>Development snapshot, version 0.7.1 :</H3></DT>
<DD>Enhancements towards current stable version 0.7.0.pl00:
<DT><H3>Development snapshot, version 0.6.9 :</H3></DT>
<DD>Enhancements towards current stable version 0.6.8.pl00:
<UL>
<LI>none yet</LI>
<!--
@ -273,7 +271,7 @@ Bug fixes towards cdrskin-0.6.8.pl00:
</UL>
</DD>
<DD>Bug fixes towards cdrskin-0.7.0.pl00:
<DD>Bug fixes towards cdrskin-0.6.8.pl00:
<UL>
<LI>none yet</LI>
<!--
@ -282,10 +280,10 @@ Bug fixes towards cdrskin-0.6.8.pl00:
</DD>
<DD>&nbsp;</DD>
<DD><A HREF="README_cdrskin_devel">README 0.7.1</A>
<DD><A HREF="cdrskin__help_devel">cdrskin_0.7.1 --help</A></DD>
<DD><A HREF="cdrskin_help_devel">cdrskin_0.7.1 -help</A></DD>
<DD><A HREF="man_1_cdrskin_devel.html">man cdrskin (as of 0.7.1)</A></DD>
<DD><A HREF="README_cdrskin_devel">README 0.6.9</A>
<DD><A HREF="cdrskin__help_devel">cdrskin_0.6.9 --help</A></DD>
<DD><A HREF="cdrskin_help_devel">cdrskin_0.6.9 -help</A></DD>
<DD><A HREF="man_1_cdrskin_devel.html">man cdrskin (as of 0.6.9)</A></DD>
<DD>&nbsp;</DD>
<DT>Maintainers of cdrskin unstable packages please use SVN of
<A HREF="http://libburnia-project.org"> libburnia-project.org</A></DT>
@ -305,8 +303,8 @@ admins with full system souvereignty.</DT>
<A HREF="README_cdrskin_devel">upcoming README</A> ):
</DD>
<DD>
<A HREF="cdrskin-0.7.1.tar.gz">cdrskin-0.7.1.tar.gz</A>
(820 KB).
<A HREF="cdrskin-0.6.9.tar.gz">cdrskin-0.6.9.tar.gz</A>
(750 KB).
</DD>
<!-- This is not offered any more since spring 2008

View File

@ -1 +1 @@
#define Cdrskin_timestamP "2009.08.27.123001"
#define Cdrskin_timestamP "2009.07.14.100001"

View File

@ -1761,17 +1761,6 @@ Version leap to 0.2.6
Published cdrskin-0.2.6.pl01 on cdrskin home pages
------------------------------- cycle - cdrskin-0.2.6.pl01 - 2006.11.23.114611
* Enabled TAO
* Bug fixed: Trailing trash appended to .wav files caused error message
and, if exceeding fifo size, could even stall a burn.
* Multi-session CDs (for now restricted to write mode TAO), -multi, -msinfo
* Bug fixed: False speed with first pacifier cycle. Potential SIGFPE by NaN.
* Enabled named pipes and other non-plain file types as track sources
(actually already in previous cycle)
* Bug fixed: Default speed was not highest possible but announced as "MAX"
* SAO is preferred default write mode, TAO is default when needed
* libisofs unbundled from libburn+cdrskin
* Hints for porting to other operating systems are now in sg-*.c
2006.11.24.121745 [437]
@ -6731,7 +6720,7 @@ Made number transition and activated development documentation
+ cdrskin/add_ts_changes_to_libburn_0_6_9
Updated cdrskin tarball generator
14 Jul 2009 [2697]
14 Jul 2009 []
cdrskin/changelog.txt
Documented changes and release timestamp
@ -6741,138 +6730,8 @@ Bug fix: Old MMC-1 drives were rejected because of mode page 2Ah length
Bug fix: No usable media was detected with old MMC-1 drives
2009.07.14.133159 [2698]
Makefile.am
configure.ac
README
libburn/libburn.h
cdrskin/cdrskin.c
cdrskin/README
cdrskin/compile_cdrskin.sh
cdrskin/cdrskin_timestamp.h
cdrskin/cdrskin_eng.html
Made number transition and activated development documentation
14 Jul 2009 [2699]
- cdrskin/add_ts_changes_to_libburn_0_6_6
- cdrskin/add_ts_changes_to_libburn_0_6_7
+ cdrskin/add_ts_changes_to_libburn_0_6_8
+ cdrskin/add_ts_changes_to_libburn_0_6_9
Updated cdrskin tarball generator
14 Jul 2009 [2700]
cdrskin/changelog.txt
Documented changes and release timestamp
------------------------------------ cycle - cdrskin-0.6.9 - 2009.07.14.133159
14 Jul 2009 [2702]
svn move -m libburn release 0.6.8 is ready
http://svn.libburnia-project.org/libburn/branches/ZeroSixEight
http://svn.libburnia-project.org/libburn/tags/ZeroSixEight
2009.08.15.133055 [2721]
libburn/write.c
Added test code about output blocks size as comment.
2009.08.15.133332 [2722]
libburn/libburn.h
libburn/transport.h
libburn/drive.c
libburn/mmc.h
libburn/mmc.c
New API calls burn_drive_get_all_profiles(), burn_obtain_profile_name()
2009.08.15.133744 [2723]
cdrskin/cdrskin.c
Listing all profiles with cdrskin -v -atip
2009.08.23.130326 [2735]
libburn/drive.c
libburn/spc.c
libburn/mmc.c
Adapted to pitfalls of U3 memory sticks which appear as CD-ROM drives
------------------------------------ cycle - cdrskin-0.6.9 - 2009.08.23.132942
New API calls burn_drive_get_all_profiles(), burn_obtain_profile_name()
Adapted to pitfalls of U3 memory sticks which appear as CD-ROM drives
2009.08.24.131146 [2736]
libburn/libburn.h
libburn/transport.h
libburn/drive.c
libburn/sbc.c
New API call burn_drive_snooze()
2009.08.24.161646 [2737]
libburn/libburn.h
libburn/drive.c
Made burn_drive_snooze() safe for emulated drives
2009.08.24.202517 [2740]
libburn/transport.h
libburn/sbc.c
libburn/mmc.c
Implemented automatic START UNIT after STOP UNIT before any other SCSI command
2009.08.27.123001 [2746]
Makefile.am
configure.ac
README
libburn/libburn.h
cdrskin/cdrskin.c
cdrskin/README
cdrskin/compile_cdrskin.sh
cdrskin/cdrskin_timestamp.h
cdrskin/cdrskin_eng.html
Made number transition and activated development documentation
27 Aug 2009 [2747]
- cdrskin/add_ts_changes_to_libburn_0_6_8
- cdrskin/add_ts_changes_to_libburn_0_6_9
+ cdrskin/add_ts_changes_to_libburn_0_7_0
+ cdrskin/add_ts_changes_to_libburn_0_7_1
Updated cdrskin tarball generator
27 Aug 2009 []
cdrskin/changelog.txt
Documented changes and release timestamp
------------------------------ release - cdrskin-0.7.0.pl00 - 2009.08.27.123001
New API calls burn_drive_get_all_profiles(), burn_obtain_profile_name()
New API call burn_drive_snooze()
Adapted to pitfalls of U3 memory sticks which appear as CD-ROM drives
Listing all supported profiles with option -atip
[]
Makefile.am
configure.ac
README
libburn/libburn.h
cdrskin/cdrskin.c
cdrskin/README
cdrskin/compile_cdrskin.sh
cdrskin/cdrskin_timestamp.h
cdrskin/cdrskin_eng.html
Made number transition and activated development documentation
27 Aug 2009 []
- cdrskin/add_ts_changes_to_libburn_0_6_8
- cdrskin/add_ts_changes_to_libburn_0_6_9
+ cdrskin/add_ts_changes_to_libburn_0_7_0
+ cdrskin/add_ts_changes_to_libburn_0_7_1
Updated cdrskin tarball generator
[]
cdrskin/changelog.txt
Documented changes and release timestamp
------------------------------------ cycle - cdrskin-0.7.1 -
------------------------------------ cycle - cdrskin-0.7.1 -
------------------------------------ cycle - cdrskin-0.6.9 -
------------------------------------ cycle - cdrskin-0.6.9 -
===============================================================================
TODO
@ -6881,6 +6740,7 @@ Documented changes and release timestamp
--------------------------------- bugs -------------------------------------
- Do something about drive->buffer asynchronous race conditions
and dangerous use of local heap memory.
(The various asynchronous operations use the same buffer

View File

@ -7,7 +7,7 @@
debug_opts="-O2"
def_opts=
largefile_opts="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1"
libvers="-DCdrskin_libburn_0_7_0"
libvers="-DCdrskin_libburn_0_6_8"
cleanup_src_or_obj="libburn/cleanup.o"
libdax_msgs_o="libburn/libdax_msgs.o"
libdax_audioxtr_o="libburn/libdax_audioxtr.o"
@ -33,15 +33,15 @@ do
libdax_audioxtr_o=
libdax_msgs_o="libburn/message.o"
cleanup_src_or_obj="-DCleanup_has_no_libburn_os_H cdrskin/cleanup.c"
elif test "$i" = "-libburn_0_7_0"
elif test "$i" = "-libburn_0_6_8"
then
libvers="-DCdrskin_libburn_0_7_0"
libvers="-DCdrskin_libburn_0_6_8"
libdax_audioxtr_o="libburn/libdax_audioxtr.o"
libdax_msgs_o="libburn/libdax_msgs.o"
cleanup_src_or_obj="libburn/cleanup.o"
elif test "$i" = "-libburn_svn"
then
libvers="-DCdrskin_libburn_0_7_1"
libvers="-DCdrskin_libburn_0_6_9"
libdax_audioxtr_o="libburn/libdax_audioxtr.o"
libdax_msgs_o="libburn/libdax_msgs.o"
cleanup_src_or_obj="libburn/cleanup.o"
@ -75,7 +75,7 @@ do
echo "Options:"
echo " -compile_cdrfifo compile program cdrskin/cdrfifo."
echo " -compile_dewav compile program test/dewav without libburn."
echo " -libburn_0_7_0 set macro to match libburn-0.7.0"
echo " -libburn_0_6_8 set macro to match libburn-0.6.8"
echo " -libburn_svn set macro to match current libburn-SVN."
echo " -do_not_compile_cdrskin omit compilation of cdrskin/cdrskin."
echo " -experimental use newly introduced libburn features."

View File

@ -1,4 +1,4 @@
AC_INIT([libburn], [0.7.0], [http://libburnia-project.org])
AC_INIT([libburn], [0.6.8], [http://libburnia-project.org])
AC_PREREQ([2.50])
dnl AC_CONFIG_HEADER([config.h])
@ -7,7 +7,7 @@ AC_CANONICAL_TARGET
AM_INIT_AUTOMAKE([subdir-objects])
dnl Notes by ts A71207 - A90827 :
dnl Notes by ts A71207 - A90714 :
dnl
dnl Regrettably the meaning of the various version types was misunderstood
dnl before version 0.4.1.
@ -73,7 +73,6 @@ dnl 0.6.2 = libburn.so.4.27.0
dnl 0.6.4 = libburn.so.4.29.0
dnl 0.6.6 = libburn.so.4.31.0
dnl 0.6.8 = libburn.so.4.33.0
dnl 0.7.0 = libburn.so.4.35.0
dnl
dnl So LT_CURRENT, LT_REVISION and LT_AGE get set directly here.
dnl SONAME of the emerging library is LT_CURRENT - LT_AGE.
@ -98,8 +97,8 @@ dnl If BURN_*_VERSION changes, be sure to change AC_INIT above to match.
dnl
dnl As said: Only copies. Original in libburn/libburn.h : burn_header_version_*
BURN_MAJOR_VERSION=0
BURN_MINOR_VERSION=7
BURN_MICRO_VERSION=0
BURN_MINOR_VERSION=6
BURN_MICRO_VERSION=8
BURN_VERSION=$BURN_MAJOR_VERSION.$BURN_MINOR_VERSION.$BURN_MICRO_VERSION
AC_SUBST(BURN_MAJOR_VERSION)
@ -110,15 +109,15 @@ AC_SUBST(BURN_VERSION)
dnl Libtool versioning
LT_RELEASE=$BURN_MAJOR_VERSION.$BURN_MINOR_VERSION.$BURN_MICRO_VERSION
dnl
dnl ts A90827
dnl This is the release version libburn-0.7.0 = libburn.so.4.35.0
dnl ts A90714
dnl This is the release version libburn-0.6.8 = libburn.so.4.33.0
dnl ### This is the development version after above release version
dnl LT_CURRENT++, LT_AGE++ has not yet happened.
dnl ### LT_CURRENT++, LT_AGE++ has happened meanwhile.
dnl
dnl SONAME = 39 - 35 = 4 . Linux library name = libburn.so.4.35.0
LT_CURRENT=39
LT_AGE=35
dnl SONAME = 37 - 33 = 4 . Linux library name = libburn.so.4.33.0
LT_CURRENT=37
LT_AGE=33
LT_REVISION=0
LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`

View File

@ -40,9 +40,6 @@
/* A70903 : for burn_scsi_setup_drive() */
#include "spc.h"
/* A90815 : for mmc_obtain_profile_name() */
#include "mmc.h"
#include "libdax_msgs.h"
extern struct libdax_msgs *libdax_messenger;
@ -533,22 +530,6 @@ int burn_drive_release_fl(struct burn_drive *d, int flag)
}
/* API */
/* ts A90824
@param flag bit0= wake up (else start snoozing)
*/
int burn_drive_snooze(struct burn_drive *d, int flag)
{
if (d->drive_role != 1)
return 0;
if (flag & 1)
d->start_unit(d);
else
d->stop_unit(d);
return 1;
}
/* API */
void burn_drive_release(struct burn_drive *d, int le)
{
@ -1908,16 +1889,11 @@ int burn_disc_read_atip(struct burn_drive *d)
}
if(d->drive_role != 1)
return 0;
if ((d->current_profile == -1 || d->current_is_cd_profile)
&& (d->mdata->cdrw_write || d->current_profile != 0x08)) {
if (d->current_profile == -1 || d->current_is_cd_profile) {
d->read_atip(d);
/* >>> some control of success would be nice :) */
} else {
/* mmc5r03c.pdf 6.26.3.6.3 : ATIP is undefined for non-CD
(and it seems meaningless for non-burners).
ts A90823: Pseudo-CD U3 memory stick stalls with ATIP.
It is !cdrw_write and profile is 0x08.
*/
/* mmc5r03c.pdf 6.26.3.6.3 : ATIP is undefined for non-CD */;
return 0;
}
return 1;
@ -2025,30 +2001,6 @@ int burn_disc_get_profile(struct burn_drive *d, int *pno, char name[80])
}
/* ts A90815 : New API function */
int burn_drive_get_all_profiles(struct burn_drive *d, int *num_profiles,
int profiles[64], char is_current[64])
{
int i;
*num_profiles = d->num_profiles;
for (i = 0; i < d->num_profiles; i++) {
profiles[i] = (d->all_profiles[i * 4] << 8) |
d->all_profiles[i * 4 + 1];
is_current[i] = d->all_profiles[i * 4 + 2] & 1;
}
return 1;
}
/* ts A90815 : New API function */
int burn_obtain_profile_name(int profile_number, char name[80])
{
strcpy(name, mmc_obtain_profile_name(profile_number));
return(name[0] != 0);
}
/* ts A61223 : New API function */
int burn_drive_wrote_well(struct burn_drive *d)
{

View File

@ -1029,23 +1029,6 @@ int burn_drive_obtain_scsi_adr(char *path, int *bus_no, int *host_no,
int burn_drive_grab(struct burn_drive *drive, int load);
/* ts A90824 */
/** Calm down or alert a drive. Some drives stay alert after reading for
quite some time. This saves time with the startup for the next read
operation but also causes noise and consumes extra energy. It makes
sense to calm down the drive if no read operation is expected for the
next few seconds. The drive will get alert automatically if operations
are required.
@param drive The drive to influence.
@param flag Bitfield for control purposes
bit0= become alert (else start snoozing)
This is not mandatory to allow further drive operations
@return 1= success , 0= drive role not suitable for calming
@since 0.7.0
*/
int burn_drive_snooze(struct burn_drive *d, int flag);
/** Release a drive. This should not be done until the drive is no longer
busy (see burn_drive_get_status).
Linux: The drive device file is not reserved afterwards. (O_EXCL, F_SETLK).
@ -2015,34 +1998,6 @@ void burn_read_opts_transfer_damaged_blocks(struct burn_read_opts *opts,
void burn_read_opts_set_hardware_error_retries(struct burn_read_opts *opts,
unsigned char hardware_error_retries);
/* ts A90815 */
/** Gets the list of profile codes supported by the drive.
Profiles depict the feature sets which constitute media types. For
known profile codes and names see burn_disc_get_profile().
@param d is the drive to query
@param num_profiles returns the number of supported profiles
@param profiles returns the profile codes
@param is_current returns the status of the corresponding profile code:
1= current, i.e. the matching media is loaded
0= not current, i.e. the matching media is not loaded
@return always 1 for now
@since 0.7.0
*/
int burn_drive_get_all_profiles(struct burn_drive *d, int *num_profiles,
int profiles[64], char is_current[64]);
/* ts A90815 */
/** Obtains the profile name associated with a profile code.
@param profile_code the profile code to be translated
@param name returns the profile name (e.g. "DVD+RW")
@return 1= known profile code , 0= unknown profile code
@since 0.7.0
*/
int burn_obtain_profile_name(int profile_code, char name[80]);
/** Gets the maximum write speed for a drive and eventually loaded media.
The return value might change by the media type of already loaded media,
again by call burn_drive_grab() and again by call burn_disc_read_atip().
@ -2304,8 +2259,8 @@ void burn_version(int *major, int *minor, int *micro);
*/
#define burn_header_version_major 0
#define burn_header_version_minor 7
#define burn_header_version_micro 0
#define burn_header_version_minor 6
#define burn_header_version_micro 8
/** Note:
Above version numbers are also recorded in configure.ac because libtool
wants them as parameters at build time.

View File

@ -236,11 +236,6 @@ int mmc_function_spy(struct burn_drive *d, char * text)
d->cancel = 1;
return 0;
}
if (d->is_stopped && strcmp(text, "stop_unit") != 0 &&
strcmp(text, "start_unit") != 0) {
d->start_unit(d);
d->is_stopped = 0;
}
return 1;
}
@ -1164,7 +1159,7 @@ static int mmc_read_toc_al(struct burn_drive *d, int *alloc_len)
struct buffer buf;
struct command c;
int dlen;
int i, bpl= 12, old_alloc_len, t_idx, ret;
int i, bpl= 12, old_alloc_len, t_idx;
unsigned char *tdata;
char msg[321];
@ -1190,16 +1185,6 @@ static int mmc_read_toc_al(struct burn_drive *d, int *alloc_len)
d->status = BURN_DISC_FULL;
return 1;
}
/* ts A90823:
SanDisk Cruzer U3 memory stick stalls on format 2.
Format 0 seems to be more conservative with read-only drives.
*/
if (!(d->mdata->cdrw_write || d->current_profile != 0x08)) {
ret = mmc_read_toc_fmt0(d);
return ret;
}
scsi_init_command(&c, MMC_GET_TOC, sizeof(MMC_GET_TOC));
/*
memcpy(c.opcode, MMC_GET_TOC, sizeof(MMC_GET_TOC));
@ -1482,7 +1467,7 @@ inquire_drive:;
/* ts A61201 */
char *mmc_obtain_profile_name(int profile_number)
static char *mmc_obtain_profile_name(int profile_number)
{
static char *texts[0x53] = {NULL};
int i, max_pno = 0x53;
@ -2265,7 +2250,7 @@ static int mmc_get_configuration_al(struct burn_drive *d, int *alloc_len)
{
struct buffer buf;
int len, cp, descr_len = 0, feature_code, prf_number, only_current = 1;
int old_alloc_len, only_current_profile = 0;
int old_alloc_len;
unsigned char *descr, *prf, *up_to, *prf_end;
struct command c;
int phys_if_std = 0;
@ -2279,7 +2264,6 @@ static int mmc_get_configuration_al(struct burn_drive *d, int *alloc_len)
d->current_is_cd_profile = 0;
d->current_is_supported_profile = 0;
d->current_is_guessed_profile = 0;
d->num_profiles = 0;
d->current_has_feat21h = 0;
d->current_feat21h_link_size = -1;
d->current_feat23h_byte4 = 0;
@ -2288,6 +2272,10 @@ static int mmc_get_configuration_al(struct burn_drive *d, int *alloc_len)
scsi_init_command(&c, MMC_GET_CONFIGURATION,
sizeof(MMC_GET_CONFIGURATION));
/*
memcpy(c.opcode, MMC_GET_CONFIGURATION, sizeof(MMC_GET_CONFIGURATION));
c.oplen = sizeof(MMC_GET_CONFIGURATION);
*/
c.dxfer_len= *alloc_len;
c.retry = 1;
c.opcode[7] = (c.dxfer_len >> 8) & 0xff;
@ -2393,7 +2381,7 @@ static int mmc_get_configuration_al(struct burn_drive *d, int *alloc_len)
#endif
/* Enable this to get loud and repeated reports about the feature set :
#define Libburn_print_feature_descriptorS 1
#define Libburn_print_feature_descriptorS 1
*/
/* ts A70127 : Interpret list of profile and feature descriptors.
see mmc5r03c.pdf 5.2
@ -2407,7 +2395,7 @@ static int mmc_get_configuration_al(struct burn_drive *d, int *alloc_len)
"-----------------------------------------------------------------\n");
fprintf(stderr,
"LIBBURN_EXPERIMENTAL : feature list length = %d , shown = %d\n",
len, (int) (up_to - c.page->data));
len, up_to - c.page->data);
#endif /* Libburn_print_feature_descriptorS */
for (descr = c.page->data + 8; descr + 3 < up_to; descr += descr_len) {
@ -2425,14 +2413,8 @@ static int mmc_get_configuration_al(struct burn_drive *d, int *alloc_len)
if (feature_code == 0x0) {
prf_end = descr + 4 + descr[3];
d->num_profiles = descr[3] / 4;
if (d->num_profiles > 64)
d->num_profiles = 64;
if (d->num_profiles > 0)
memcpy(d->all_profiles, descr + 4,
d->num_profiles * 4);
for (prf = descr + 4; prf + 2 < prf_end; prf += 4) {
if (only_current_profile && !(prf[2] & 1))
if (only_current && !(prf[2] & 1))
continue;
prf_number = (prf[0] << 8) | prf[1];
@ -3883,15 +3865,13 @@ int mmc_setup_drive(struct burn_drive *d)
d->start_lba = -2000000000;
d->end_lba = -2000000000;
/* ts A61201 - A90815*/
/* ts A61201 - A70223*/
d->erasable = 0;
d->current_profile = -1;
d->current_profile_text[0] = 0;
d->current_is_cd_profile = 0;
d->current_is_supported_profile = 0;
d->current_is_guessed_profile = 0;
memset(d->all_profiles, 0, 256);
d->num_profiles = 0;
d->current_has_feat21h = 0;
d->current_feat21h_link_size = -1;
d->current_feat23h_byte4 = 0;

View File

@ -75,9 +75,6 @@ int mmc_read_10(struct burn_drive *d, int start, int amount,
/* ts A81210 : Determine the upper limit of readable data size */
int mmc_read_capacity(struct burn_drive *d);
/* ts A61201 */
char *mmc_obtain_profile_name(int profile_number);
/* mmc5r03c.pdf 4.3.4.4.1 d) "The maximum number of RZones is 2 302." */
#define BURN_MMC_FAKE_TOC_MAX_SIZE 2302

View File

@ -21,7 +21,6 @@ int mmc_function_spy(struct burn_drive *d, char * text);
static unsigned char SBC_LOAD[] = { 0x1b, 0, 0, 0, 3, 0 };
static unsigned char SBC_UNLOAD[] = { 0x1b, 0, 0, 0, 2, 0 };
static unsigned char SBC_START_UNIT[] = { 0x1b, 0, 0, 0, 1, 0 };
static unsigned char SBC_STOP_UNIT[] = { 0x1b, 0, 0, 0, 0, 0 };
void sbc_load(struct burn_drive *d)
{
@ -80,46 +79,28 @@ void sbc_eject(struct burn_drive *d)
int sbc_start_unit(struct burn_drive *d)
{
struct command c;
int ret;
if (mmc_function_spy(d, "start_unit") <= 0)
return 0;
scsi_init_command(&c, SBC_START_UNIT, sizeof(SBC_START_UNIT));
/*
memcpy(c.opcode, SBC_START_UNIT, sizeof(SBC_START_UNIT));
c.oplen = sizeof(SBC_START_UNIT);
c.page = NULL;
*/
c.retry = 1;
c.opcode[1] |= 1; /* ts A70918 : Immed */
c.dir = NO_TRANSFER;
d->issue_command(d, &c);
if (c.error)
return 0;
/* ts A70918 : now asynchronous */
d->is_stopped = 0;
ret = spc_wait_unit_attention(d, 1800, "START UNIT", 0);
return ret;
return spc_wait_unit_attention(d, 1800, "START UNIT", 0);
}
/* ts A90824 : Trying to reduce drive noise */
int sbc_stop_unit(struct burn_drive *d)
{
struct command c;
int ret;
if (mmc_function_spy(d, "stop_unit") <= 0)
return 0;
scsi_init_command(&c, SBC_STOP_UNIT, sizeof(SBC_STOP_UNIT));
c.retry = 1;
c.opcode[1] |= 1; /* Immed */
c.dir = NO_TRANSFER;
d->issue_command(d, &c);
if (c.error)
return 0;
ret = spc_wait_unit_attention(d, 1800, "STOP UNIT", 0);
d->is_stopped = 1;
return ret;
}
/* ts A61021 : the sbc specific part of sg.c:enumerate_common()
*/
@ -128,8 +109,6 @@ int sbc_setup_drive(struct burn_drive *d)
d->eject = sbc_eject;
d->load = sbc_load;
d->start_unit = sbc_start_unit;
d->stop_unit = sbc_stop_unit;
d->is_stopped = 0;
return 1;
}

View File

@ -463,24 +463,12 @@ static int spc_sense_caps_al(struct burn_drive *d, int *alloc_len, int flag)
m->min_write_speed, m->max_write_speed);
try_mmc_get_performance:;
if (m->cdrw_write || page_length >= 32) {
/* ts A90823:
One has to avoid U3 enhanced memory sticks here. On my
SuSE 10.2 a SanDisk Cruzer 4GB stalls at the second occasion
of ACh GET PERFORMANCE. (The first one is obviously called
by the OS at plug time.)
This pseudo drive returns no write capabilities and a page
length of 28. MMC-3 describes page length 32. Regrettably
MMC-2 prescribes a page length of 26. Here i have to trust
m->cdrw_write to reliably indicate any MMC-2 burner.
*/
ret = mmc_get_write_performance(d);
if (ret > 0 && speed_debug)
fprintf(stderr,
"LIBBURN_DEBUG: ACh min_write_speed = %d , max_write_speed = %d\n",
m->min_write_speed, m->max_write_speed);
}
ret = mmc_get_write_performance(d);
if (ret > 0 && speed_debug)
fprintf(stderr,
"LIBBURN_DEBUG: ACh min_write_speed = %d , max_write_speed = %d\n",
m->min_write_speed, m->max_write_speed);
return !was_error;
}

View File

@ -163,9 +163,6 @@ struct burn_drive
int current_is_supported_profile;
/* ts A90603 */
int current_is_guessed_profile;
/* ts A90815 */
unsigned char all_profiles[256];
int num_profiles;
/* ts A70128 : MMC-to-MMC feature info from 46h for DVD-RW.
Quite internal. Regard as opaque :)
@ -317,11 +314,6 @@ struct burn_drive
void (*eject) (struct burn_drive *);
void (*load) (struct burn_drive *);
int (*start_unit) (struct burn_drive *);
/* ts A90824 : Calming down noisy drives */
int (*stop_unit) (struct burn_drive *);
int is_stopped;
void (*read_disc_info) (struct burn_drive *);
void (*read_sectors) (struct burn_drive *,
int start,

View File

@ -1736,14 +1736,6 @@ int burn_dvd_write_sync(struct burn_write_opts *o,
o->obs_pad = 1; /* fill-up track's last 32k buffer */
}
/* <<< test only : Does this increase effective speed with USB ?
ts A90801 : 64kB: speed with 16x DVD-R is 12 rather than 8
>>> next try is 128 kB
o->obs = 128 * 1024;
*/
sprintf(msg, "dvd/bd Profile= %2.2Xh , obs= %d , obs_pad= %d",
d->current_profile, o->obs, o->obs_pad);
libdax_msgs_submit(libdax_messenger, d->global_index, 0x00000002,