I am finally getting around to sending in this patch which adds the enhancement I suggested. It will also fix bug#301136.
Lorenzo -- The mind is its own place, and in itself Can make a Heav'n of Hell, a Hell of Heav'n. -- John Milton
diff -uprN burn-0.4.3/burn burn-0.4.3-patched/burn --- burn-0.4.3/burn 2005-03-21 17:07:32.000000000 -0500 +++ burn-0.4.3-patched/burn 2006-08-15 13:02:02.000000000 -0400 @@ -404,6 +404,8 @@ class CDROM: driver = config.get('CD-writer','driver') source_driver = config.get('CD-reader','driver') burnfree = config.get('CD-writer','burnfree') + sao = config.get('CD-writer','sao') + gracetime = config.get('CD-writer','gracetime') def compute_media_size(self): if config.get('Media','media-check') == 'yes': @@ -479,6 +481,14 @@ class CDROM: #for the ones who have buffer underrun protection if self.burnfree: self.cdrecord_line_append('driveropts=burnfree ') + #set write mode: TAO (track at once) or SAO (session at once) + if self.sao: + self.cdrecord_line_append('-sao ') + else: + self.cdrecord_line_append('-tao ') + #the amount of time cdrecord waits before burning + if self.gracetime: + self.cdrecord_line_append('gracetime=' + self.gracetime + ' ') #enable multisession if options.multisession: self.cdrecord_line_append('-multi ') diff -uprN burn-0.4.3/burn-configure burn-0.4.3-patched/burn-configure --- burn-0.4.3/burn-configure 2004-12-13 13:51:08.000000000 -0500 +++ burn-0.4.3-patched/burn-configure 2006-08-15 13:32:17.000000000 -0400 @@ -279,6 +279,34 @@ if 'CD-writer' in cs: if brnfr in no: config.set(section, 'burnfree', brnfr) break + if 'sao' in options: + print + current = config.get(section, 'sao') + print _('Do you want cdrecord to burn in session-at-once mode (sao)?') + print _('\tThis allows gapless recording of audio tracks and works around the readahead') + print _('\tbug on GNU/Linux systems.') + while 1: + sssntnc = ask_value('yes/no', current) + if sssntnc == '': + break + if sssntnc in yes: + config.set(section, 'sao', sssntnc) + break + if sssntnc in no: + config.set(section, 'sao', sssntnc) + break + if 'gracetime' in options: + print + current = config.get(section, 'gracetime') + print _('How long should cdrecord wait before burning?') + print _('\tNote that cdrecord always waits at least 2 to 3 seconds.') + while 1: + grctm = ask_value('gracetime', current) + if grctm == '': + break + else: + config.set(section, 'gracetime', grctm) + break if 'CD-reader' in cs: section = 'CD-reader' print diff -uprN burn-0.4.3/burn.conf burn-0.4.3-patched/burn.conf --- burn-0.4.3/burn.conf 2005-03-16 14:39:07.000000000 -0500 +++ burn-0.4.3-patched/burn.conf 2006-08-15 13:40:01.000000000 -0400 @@ -42,6 +42,10 @@ driver: generic-mmc #Buffer Underrun Free writing support (yes/no) #If your unit supports Buffer Underrun Free writing support say yes. burnfree: yes +# Enable this if you want to burn in session-at-once (also called disc-at-once) mode +sao: yes +# the amount of time in seconds cdrecord should display the `last chance to quit' message +gracetime: 3 [CD-reader] # this device should have the same CD-writer value if you only have one CD unit. diff -uprN burn-0.4.3/burn.conf-dist burn-0.4.3-patched/burn.conf-dist --- burn-0.4.3/burn.conf-dist 2004-04-26 17:08:38.000000000 -0400 +++ burn-0.4.3-patched/burn.conf-dist 2006-08-15 13:56:50.000000000 -0400 @@ -42,6 +42,10 @@ driver: generic-mmc #Buffer Underrun Free writing support (yes/no) #If your unit supports Buffer Underrun Free writing support say yes. burnfree: yes +# Enable this if you want cdrecord to burn in session-at-once (also called disc-at-once) mode +sao: no +# The amount of time in seconds cdrecord should display the `last chance to quit' message +gracetime: 10 [CD-reader] # this device should have the same CD-writer value if you only have one CD unit.