Package: eroaster Version: 2.2.0-0.8-2 Severity: normal Followup-For: Bug #254122
tags 254122 +patch I hope this would satisfy both sides. This patch adds 2 preference options: transport layer indicators (TLI) for reader and recorder. Instead of using of USE_ATAPI variable in the code there is GUI options now for user interaction. One who wish to use "experimental" ATAPI feature can set they to "ATAPI". In fact, only cdrecord accepts TLI, but no other eroaster's backends: cdda2wav, cdrdao, readcd (please fix me if i'm wrong). Thus, the value of setting TLI to "ATAPI" for the reader device is under question. Both TLI options are "" by default, cdrecord will operate on SCSI bus, in an old style fashion (experimental feature disabled). -- System Information: Debian Release: testing/unstable APT prefers testing APT policy: (500, 'testing') Architecture: i386 (i686) Kernel: Linux 2.6.8-2-686 Locale: LANG=ru_RU.KOI8-R, LC_CTYPE=ru_RU.KOI8-R Versions of packages eroaster depends on: ii cdda2wav 4:2.01+01a01-2 Creates WAV files from audio CDs ii cdrecord 4:2.01+01a01-2 command line CD writing tool ii mkisofs 4:2.01+01a01-2 Creates ISO-9660 CD-ROM filesystem ii python 2.3.3-7 An interactive high-level object-o ii python-gtk2 2.2.0-1 Python bindings for the GTK+ widge -- no debconf information
diff -ru ../tmp.orig/eroaster-2.2.0-0.8/Application.py ./Application.py --- ../tmp.orig/eroaster-2.2.0-0.8/Application.py 2004-03-28 13:16:26.000000000 +0400 +++ ./Application.py 2005-04-19 21:54:05.000000000 +0400 @@ -818,6 +818,7 @@ else: speed = self.speedRW.get_value_as_int() + tli = self.tli.get_text() channel = self.channel.get_text() id = self.id.get_text() lun = self.lun.get_text() @@ -826,7 +827,7 @@ gnome.tools.ErrorDialog(_("Invalid recorder settings !")) return gtk.FALSE - cdrecord = cdrtools.cdrecord(channel, id, lun, self.devWriter.get_text(), self.cat.get_loglevel()) + cdrecord = cdrtools.cdrecord(tli, channel, id, lun, self.devWriter.get_text(), self.cat.get_loglevel()) cdrecord.verbose_mode = gtk.TRUE cdrecord.burnfree = self.burnproof.get_active() cdrecord.dummy_mode = self.dummy.get_active() @@ -1459,6 +1460,9 @@ recordbox.show() # Create a table containing the SCSI-options (Select CD-Writer) + tli = gtk.Label(_("TLI:")) + tli.set_alignment(1.0, 0.5) + tli.show() channel = gtk.Label(_("Channel:")) channel.set_alignment(1.0, 0.5) channel.show() @@ -1469,6 +1473,9 @@ lun.set_alignment(1.0, 0.5) lun.show() + self.tli = gtk.Entry() + self.tli.set_size_request(35, -1) + self.tli.show() self.channel = gtk.Entry() self.channel.set_size_request(35, -1) self.channel.show() @@ -1483,6 +1490,9 @@ autobutton.connect('clicked', self.DetectRecorder) autobutton.show() + tliReader = gtk.Label(_("TLI:")) + tliReader.set_alignment(1.0, 0.5) + tliReader.show() channelReader = gtk.Label(_("Channel:")) channelReader.set_alignment(1.0, 0.5) channelReader.show() @@ -1493,6 +1503,9 @@ lunReader.set_alignment(1.0, 0.5) lunReader.show() + self.tliReader = gtk.Entry() + self.tliReader.set_size_request(35, -1) + self.tliReader.show() self.channelReader = gtk.Entry() self.channelReader.set_size_request(35, -1) self.channelReader.show() @@ -1548,23 +1561,27 @@ devWriter.set_alignment(1.0, 0.5) devWriter.show() - recordtab = gtk.Table(3, 9) - recordtab.attach(channel, 0, 1, 0, 1, gtk.FILL, 0, 5) - recordtab.attach(self.channel, 1, 2, 0, 1, 0, 0, 5) - recordtab.attach(id, 0, 1, 1, 2, gtk.FILL, 0, 5) - recordtab.attach(self.id, 1, 2, 1, 2, 0, 0, 5) - recordtab.attach(lun, 0, 1, 2, 3, gtk.FILL, 0, 5) - recordtab.attach(self.lun, 1, 2, 2, 3, 0, 0, 5) + recordtab = gtk.Table(4, 9) + recordtab.attach(tli, 0, 1, 0, 1, gtk.FILL, 0, 5) + recordtab.attach(self.tli, 1, 2, 0, 1, 0, 0, 5) + recordtab.attach(channel, 0, 1, 1, 2, gtk.FILL, 0, 5) + recordtab.attach(self.channel, 1, 2, 1, 2, 0, 0, 5) + recordtab.attach(id, 0, 1, 2, 3, gtk.FILL, 0, 5) + recordtab.attach(self.id, 1, 2, 2, 3, 0, 0, 5) + recordtab.attach(lun, 0, 1, 3, 4, gtk.FILL, 0, 5) + recordtab.attach(self.lun, 1, 2, 3, 4, 0, 0, 5) recordtab.attach(autobutton, 2, 4, 0, 2, gtk.SHRINK, 0, 5) recordtab.attach(devWriter, 2, 3, 2, 3, 0, 0, 5) recordtab.attach(self.devWriter, 3, 4, 2, 3, 0, 0, 5) - recordtab.attach(channelReader, 4, 5, 0, 1, gtk.FILL, 0, 5) - recordtab.attach(self.channelReader, 5, 6, 0, 1, 0, 0, 5) - recordtab.attach(idReader, 4, 5, 1, 2, gtk.FILL, 0, 5) - recordtab.attach(self.idReader, 5, 6, 1, 2, 0, 0, 5) - recordtab.attach(lunReader, 4, 5, 2, 3, gtk.FILL, 0, 5) - recordtab.attach(self.lunReader, 5, 6, 2, 3, 0, 0, 5) + recordtab.attach(tliReader, 4, 5, 0, 1, gtk.FILL, 0, 5) + recordtab.attach(self.tliReader, 5, 6, 0, 1, 0, 0, 5) + recordtab.attach(channelReader, 4, 5, 1, 2, gtk.FILL, 0, 5) + recordtab.attach(self.channelReader, 5, 6, 1, 2, 0, 0, 5) + recordtab.attach(idReader, 4, 5, 2, 3, gtk.FILL, 0, 5) + recordtab.attach(self.idReader, 5, 6, 2, 3, 0, 0, 5) + recordtab.attach(lunReader, 4, 5, 3, 4, gtk.FILL, 0, 5) + recordtab.attach(self.lunReader, 5, 6, 3, 4, 0, 0, 5) recordtab.attach(btnAutoReader, 6, 8, 0, 2, gtk.SHRINK, 0, 5) recordtab.attach(devReader, 6, 7, 2, 3, 0, 0, 5) recordtab.attach(self.devReader, 7, 8, 2, 3, 0, 0, 5) @@ -1678,6 +1695,7 @@ file.write("\n[Recorder]\n") file.write("Speed: %d\n" % self.speed.get_value_as_int()) file.write("SpeedRW: %d\n" % self.speedRW.get_value_as_int()) + file.write("TLI: %s\n" % self.tli.get_text()) file.write("Channel: %s\n" % self.channel.get_text()) file.write("ID: %s\n" % self.id.get_text()) file.write("LUN: %s\n" % self.lun.get_text()) @@ -1687,6 +1705,7 @@ # Reader options file.write("\n[Reader]\n") + file.write("TLI: %s\n" % self.tliReader.get_text()) file.write("Channel: %s\n" % self.channelReader.get_text()) file.write("ID: %s\n" % self.idReader.get_text()) file.write("LUN: %s\n" % self.lunReader.get_text()) @@ -1750,6 +1769,7 @@ # Recorder options self.speed.set_value(atoi(self.parser.get("Recorder", "Speed"))) self.speedRW.set_value(atoi(self.parser.get("Recorder", "SpeedRW"))) + self.tli.set_text(self.parser.get("Recorder", "TLI")) self.channel.set_text(self.parser.get("Recorder", "Channel")) self.id.set_text(self.parser.get("Recorder", "ID")) self.lun.set_text(self.parser.get("Recorder", "LUN")) @@ -1758,6 +1778,7 @@ self.eject.set_active(str2bool(self.parser.get("Recorder", "Eject"))) # Reader options + self.tliReader.set_text(self.parser.get("Reader", "TLI")) self.channelReader.set_text(self.parser.get("Reader", "Channel")) self.idReader.set_text(self.parser.get("Reader", "ID")) self.lunReader.set_text(self.parser.get("Reader", "LUN")) @@ -1814,6 +1835,7 @@ # Recorder options self.speed.set_value(8) self.speedRW.set_value(4) + self.tli.set_text("") self.channel.set_text("00") self.id.set_text("00") self.lun.set_text("00") @@ -1821,6 +1843,7 @@ self.eject.set_active(1) # Reader options + self.tliReader.set_text("") self.channelReader.set_text("00") self.idReader.set_text("00") self.lunReader.set_text("00") @@ -1847,7 +1870,11 @@ def DetectSCSIDevice(self, device): """ Detect SCSI device. """ - devicelist = cdrtools.cdrtools(self.cat.get_loglevel()).devices() + if (device == deviceReader): + tli = self.tliReader.get_text() + elif (device == deviceRecorder): + tli = self.tli.get_text() + devicelist = cdrtools.cdrtools(tli, self.cat.get_loglevel()).devices() if (len(devicelist) == 0): gnome.tools.ErrorDialog(_("Couldn't detect your reader / recorder !\nPlease make sure that you are root or that you're allowed to read /dev/sg* !")) elif len(devicelist) == 1: @@ -1862,7 +1889,7 @@ self.lun.set_text(devicelist[0][2]) self.devWriter.set_text("/dev/scd0") # Detect maximum write speed - cdrecord = cdrtools.cdrecord(devicelist[0][0], devicelist[0][1], devicelist[0][2], "/dev/scd0") + cdrecord = cdrtools.cdrecord(tli, devicelist[0][0], devicelist[0][1], devicelist[0][2], "/dev/scd0") (cd_speed, dvd_speed) = cdrecord.get_write_speed() self.speed.set_value(cd_speed) else: diff -ru ../tmp.orig/eroaster-2.2.0-0.8/cdrtools.py ./cdrtools.py --- ../tmp.orig/eroaster-2.2.0-0.8/cdrtools.py 2004-03-28 13:21:34.000000000 +0400 +++ ./cdrtools.py 2005-04-19 21:42:40.000000000 +0400 @@ -12,9 +12,6 @@ import os -# Change this for experimental ATAPI support -USE_ATAPI = TRUE # TRUE or FALSE - TRACK_MODE_DATA = "data" TRACK_MODE_MODE2 = "mode2" TRACK_MODE_AUDIO = "audio" @@ -31,13 +28,13 @@ class cdrtools: - def __init__(self, loglevel = LOGLEVEL_NORMAL, scan_atapi = USE_ATAPI): + def __init__(self, tli, loglevel = LOGLEVEL_NORMAL): self.__cdrtools_logger = Logger().get_instance(self) self.__cdrtools_logger.set_loglevel(loglevel) self.__cdrtools_devices = [] self.__cdrtools_cdrecord_command = which("cdrecord") self.__cdrtools_mkisofs_command = which("mkisofs") - self.__cdrtools_scanbus(scan_atapi) + self.__cdrtools_scanbus(tli) def devices(self): """ Returns the devices found by cdrecord. """ @@ -60,11 +57,11 @@ jolietCharsets.sort() return jolietCharsets - def __cdrtools_scanbus(self, scan_atapi): + def __cdrtools_scanbus(self, tli): """ Gets the list of available devices by executing "cdrecord -scanbus". """ device = "" - if (scan_atapi == TRUE): - device = "dev=ATAPI" + if (tli != ""): + device = "dev=%s" % tli command_line = "%s %s -scanbus 2>&1" % (self.__cdrtools_cdrecord_command, device) self.__cdrtools_logger.debug("Searching for devices: %s" % command_line) output = cmdoutput(command_line) @@ -101,7 +98,7 @@ blank_mode = None tsize = "" - def __init__(self, bus, target, lun, device, loglevel = LOGLEVEL_NORMAL, use_atapi = USE_ATAPI): + def __init__(self, tli, bus, target, lun, device, loglevel = LOGLEVEL_NORMAL): self.__cdrecord_logger = Logger().get_instance(self) self.__cdrecord_logger.set_loglevel(loglevel) self.__cdrecord_command = which("cdrecord") @@ -117,8 +114,8 @@ self.__cdrecord_version_extra = "" self.__cdrecord_device_string = "dev=" - if (use_atapi == TRUE): - self.__cdrecord_device_string = "%sATAPI:" % self.__cdrecord_device_string + if (tli != ""): + self.__cdrecord_device_string = "%s%s:" % (self.__cdrecord_device_string, tli) self.__cdrecord_device_string = "%s%d,%d,%d" % (self.__cdrecord_device_string, bus, target, lun) self.__cdrecord_read_version()