aboutsummaryrefslogtreecommitdiff
path: root/sysutils/nautilus-cd-burner/files/patch-cd-drive.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysutils/nautilus-cd-burner/files/patch-cd-drive.c')
-rw-r--r--sysutils/nautilus-cd-burner/files/patch-cd-drive.c221
1 files changed, 0 insertions, 221 deletions
diff --git a/sysutils/nautilus-cd-burner/files/patch-cd-drive.c b/sysutils/nautilus-cd-burner/files/patch-cd-drive.c
deleted file mode 100644
index aea6a2e1289f..000000000000
--- a/sysutils/nautilus-cd-burner/files/patch-cd-drive.c
+++ /dev/null
@@ -1,221 +0,0 @@
---- cd-drive.c.orig Mon Sep 8 15:24:07 2003
-+++ cd-drive.c Tue Dec 30 12:46:59 2003
-@@ -693,28 +693,133 @@
- #endif /* __linux__ */
-
- #ifdef __FreeBSD__
-+static void
-+get_cd_properties (char *id, int *max_rd_speed, int *max_wr_speed,
-+ CDDriveType *type)
-+{
-+ int i;
-+ const char *argv[20];
-+ char *dev_str, *stdout_data, *rd_speed, *wr_speed, *drive_cap;
-+
-+ *max_rd_speed = -1;
-+ *max_wr_speed = -1;
-+ *type = 0;
-+
-+ i = 0;
-+ argv[i++] = "cdrecord";
-+ argv[i++] = "-prcap";
-+ dev_str = g_strdup_printf ("dev=%s", id);
-+ argv[i++] = dev_str;
-+ argv[i++] = NULL;
-+
-+ if (g_spawn_sync (NULL,
-+ (char **)argv,
-+ NULL,
-+ G_SPAWN_SEARCH_PATH | G_SPAWN_STDERR_TO_DEV_NULL,
-+ NULL, NULL,
-+ &stdout_data,
-+ NULL,
-+ NULL,
-+ NULL)) {
-+ wr_speed = strstr (stdout_data, "Maximum write speed:");
-+ if (wr_speed != NULL) {
-+ char *tok;
-+ wr_speed += strlen ("Maximum write speed:");
-+ for (tok = strtok (wr_speed, " (),\t\n");
-+ tok && strcmp (tok, "CD");
-+ tok = strtok (NULL, " (),\t\n")) {}
-+ tok = strtok (NULL, " (),\t\n"); /* Get the CD speed. */
-+ *max_wr_speed = atol (tok);
-+ }
-+ else {
-+ wr_speed = strstr (stdout_data, "Maximum write speed in kB/s:");
-+ if (wr_speed != NULL) {
-+ char *tok;
-+ wr_speed += strlen ("Maximum write speed in kB/s:");
-+ for (tok = strtok (wr_speed, " (),\t\n");
-+ tok && strcmp (tok, "CD");
-+ tok = strtok (NULL, " (),\t\n")) {}
-+ tok = strtok (NULL, " (),\t\n"); /* Get the CD speed. */
-+ *max_wr_speed = atol (tok);
-+ }
-+ }
-+
-+ rd_speed = strstr (stdout_data, "Maximum read speed:");
-+ if (rd_speed != NULL) {
-+ char *tok;
-+ rd_speed += strlen ("Maximum read speed:");
-+ for (tok = strtok (rd_speed, " (),\t\n");
-+ tok && strcmp (tok, "CD");
-+ tok = strtok (NULL, " (),\t\n")) {}
-+ tok = strtok (NULL, " (),\t\n"); /* Get the CD speed. */
-+ *max_rd_speed = atol (tok);
-+ }
-+ else {
-+ rd_speed = strstr (stdout_data, "Maximum read speed in kB/s:");
-+ if (rd_speed != NULL) {
-+ char *tok;
-+ rd_speed += strlen ("Maximum read speed in kB/s:");
-+ for (tok = strtok (rd_speed, " (),\t\n");
-+ tok && strcmp (tok, "CD");
-+ tok = strtok (NULL, " (),\t\n")) {}
-+ tok = strtok (NULL, " (),\t\n"); /* Get the CD speed. */
-+ *max_rd_speed = atol (tok);
-+ }
-+ }
-+ drive_cap = strstr (stdout_data, "Does write DVD-RAM media");
-+ if (drive_cap != NULL) {
-+ *type |= CDDRIVE_TYPE_DVD_RAM_RECORDER;
-+ }
-+ drive_cap = strstr (stdout_data, "Does read DVD-R media");
-+ if (drive_cap != NULL) {
-+ *type |= CDDRIVE_TYPE_DVD_RW_RECORDER;
-+ }
-+ drive_cap = strstr (stdout_data, "Does read DVD-ROM media");
-+ if (drive_cap != NULL) {
-+ *type |= CDDRIVE_TYPE_DVD_DRIVE;
-+ }
-+ drive_cap = strstr (stdout_data, "Does write CD-RW media");
-+ if (drive_cap != NULL) {
-+ *type |= CDDRIVE_TYPE_CDRW_RECORDER;
-+ }
-+ drive_cap = strstr (stdout_data, "Does write CD-R media");
-+ if (drive_cap != NULL) {
-+ *type |= CDDRIVE_TYPE_CD_RECORDER;
-+ }
-+ drive_cap = strstr (stdout_data, "Does read CD-R media");
-+ if (drive_cap != NULL) {
-+ *type |= CDDRIVE_TYPE_CD_DRIVE;
-+ }
-+ g_free (stdout_data);
-+ }
-+
-+ g_free (dev_str);
-+}
-+
- static GList *
- freebsd_scan (gboolean recorder_only)
- {
- GList *cdroms_list = NULL;
- const char *dev_type = "cd";
-- int fd;
- int speed = 16; /* XXX Hardcode the write speed for now. */
-- int max_speed = CDR_MAX_SPEED;
- int i = 0;
-+ int cnode = 1; /* Use the CD device's 'c' node. */
-
- while (1) {
-- CDDriveType type;
- CDDrive *cdrom;
-- gchar *cam_path, *dev;
-+ gchar *cam_path;
- struct cam_device *cam_dev;
-
-- type = 0;
- cam_path = g_strdup_printf ("/dev/%s%dc", dev_type, i);
-
- if (!g_file_test (cam_path, G_FILE_TEST_EXISTS)) {
- g_free (cam_path);
-- break;
-+ cam_path = g_strdup_printf ("/dev/%s%d", dev_type, i);
-+ cnode = 0;
-+ if (!g_file_test (cam_path, G_FILE_TEST_EXISTS)) {
-+ g_free (cam_path);
-+ break;
-+ }
- }
-
- if ((cam_dev = cam_open_spec_device (dev_type, i, O_RDWR, NULL)) == NULL) {
-@@ -723,47 +828,41 @@
- continue;
- }
-
-- /* XXX Other controllers might need to be added. */
-- if ((strncmp (cam_dev->sim_name, "ata", 3)) == 0) {
-- dev = g_strdup_printf ("/dev/a%s%dc", dev_type, i);
-- } else {
-- dev = g_strdup (cam_path);
-- }
--
-- g_free (cam_path);
--
-- if ((fd = open (dev, O_RDWR, 0)) < 0) {
-- g_free (dev);
-- free (cam_dev);
-- i++;
-- continue;
-- }
--
-- type |= CDDRIVE_TYPE_CD_DRIVE;
-- if (ioctl (fd, CDRIOCWRITESPEED, &max_speed) >= 0) {
-- /* XXX is it CD-R or CD-RW ? */
-- type |= CDDRIVE_TYPE_CD_RECORDER;
-- }
--
-- close (fd);
--
-- if (type & CDDRIVE_TYPE_CD_RECORDER
-- || type & CDDRIVE_TYPE_CDRW_RECORDER
-- || recorder_only == FALSE) {
-- cdrom = g_new0 (CDDrive, 1);
-- cdrom->display_name = g_strdup_printf ("%s %s", cam_dev->inq_data.vendor, cam_dev->inq_data.revision);
-- cdrom->device = g_strdup (dev);
-- cdrom->max_speed_read = speed;
-- cdrom->max_speed_write = speed;
-- cdrom->cdrecord_id = g_strdup_printf ("%d,%d,%d", cam_dev->path_id, cam_dev->target_id, cam_dev->target_lun);
-- cdrom->type = type;
--
-- add_dvd_plus (cdrom);
-+ cdrom = g_new0 (CDDrive, 1);
-+ cdrom->display_name = g_strdup_printf ("%s %s", cam_dev->inq_data.vendor, cam_dev->inq_data.revision);
-+ cdrom->device = g_strdup (cam_path);
-+ cdrom->cdrecord_id = g_strdup_printf ("%d,%d,%d", cam_dev->path_id, cam_dev->target_id, cam_dev->target_lun);
-+ /* Attempt to get more specific information from
-+ * this drive by using cdrecord.
-+ */
-+ get_cd_properties (cdrom->cdrecord_id,
-+ &(cdrom->max_speed_read),
-+ &(cdrom->max_speed_write),
-+ &(cdrom->type));
-+ if (cdrom->type & CDDRIVE_TYPE_CD_RECORDER
-+ || cdrom->type & CDDRIVE_TYPE_CDRW_RECORDER
-+ || cdrom->type & CDDRIVE_TYPE_DVD_RAM_RECORDER
-+ || cdrom->type & CDDRIVE_TYPE_DVD_RW_RECORDER
-+ || !recorder_only) {
-+
-+ if (cdrom->max_speed_read == -1) {
-+ cdrom->max_speed_read = speed;
-+ }
-+ if (cdrom->max_speed_write == -1) {
-+ cdrom->max_speed_write = speed;
-+ }
-+
-+ if (cdrom->type & CDDRIVE_TYPE_DVD_DRIVE) {
-+ add_dvd_plus (cdrom);
-+ }
-
- cdroms_list = g_list_append (cdroms_list, cdrom);
- }
-+ else {
-+ cd_drive_free (cdrom);
-+ }
-
-- g_free (dev);
-+ g_free (cam_path);
- free (cam_dev);
-
- i++;