Author: philippr
Date: Mon Feb  4 21:28:26 2008
New Revision: 630
URL: http://svn.gnome.org/viewvc/brasero?rev=630&view=rev

Log:
Add forgotten files

Added:
   branches/brasero_0_7/src/scsi/scsi-read-cd.c
   branches/brasero_0_7/src/scsi/scsi-read-cd.h

Added: branches/brasero_0_7/src/scsi/scsi-read-cd.c
==============================================================================
--- (empty file)
+++ branches/brasero_0_7/src/scsi/scsi-read-cd.c        Mon Feb  4 21:28:26 2008
@@ -0,0 +1,146 @@
+/***************************************************************************
+ *            scsi-read-cd.c
+ *
+ *  Sun Jan 27 20:39:40 2008
+ *  Copyright  2008  Philippe Rouquier
+ *  <[EMAIL PROTECTED]>
+ ****************************************************************************/
+
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Library General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301,  
USA
+ */
+
+#include <fcntl.h>
+
+#include <glib.h>
+
+#include "scsi-error.h"
+#include "scsi-utils.h"
+#include "scsi-base.h"
+#include "scsi-command.h"
+#include "scsi-opcodes.h"
+#include "scsi-read-cd.h"
+
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+
+struct _BraseroReadCDCDB {
+       uchar opcode;
+
+       uchar rel_add           :1;
+       uchar reserved1         :1;
+       uchar sec_type          :3;
+       uchar reserved0         :3;
+
+       uchar start_lba         [4];
+       uchar len               [3];
+
+       uchar reserved2         :1;
+       uchar error             :2;
+       uchar edc               :1;
+       uchar user_data         :1;
+       uchar header            :2;
+       uchar sync              :1;
+
+       uchar subchannel        :3;
+       uchar reserved3         :5;
+
+       uchar ctl;
+};
+
+#else
+
+struct _BraseroReadCDCDB {
+       uchar opcode;
+
+       uchar reserved0         :3;
+       uchar sec_type          :3;
+       uchar reserved1         :1;
+       uchar rel_add           :1;
+
+       uchar start_lba         [4];
+       uchar len               [3];
+
+       uchar sync              :1;
+       uchar header            :2;
+       uchar user_data         :1;
+       uchar edc               :1;
+       uchar error             :2;
+       uchar reserved2         :1;
+
+       uchar reserved3         :5;
+       uchar subchannel        :3;
+
+       uchar ctl;
+};
+
+#endif
+
+typedef struct _BraseroReadCDCDB BraseroReadCDCDB;
+
+BRASERO_SCSI_COMMAND_DEFINE (BraseroReadCDCDB,
+                            READ_CD,
+                            O_RDONLY,
+                            BRASERO_SCSI_READ);
+
+BraseroScsiResult
+brasero_mmc1_read_block (int fd,
+                        gboolean user_data,
+                        BraseroScsiBlockType type,
+                        BraseroScsiBlockHeader header,
+                        BraseroScsiBlockSubChannel channel,
+                        int start,
+                        int size,
+                        unsigned char *buffer,
+                        int buffer_len,
+                        BraseroScsiErrCode *error)
+{
+       BraseroReadCDCDB *cdb;
+       BraseroScsiResult res;
+
+       cdb = brasero_scsi_command_new (&info, fd);
+       BRASERO_SET_32 (cdb->start_lba, start);
+
+       /* NOTE: if we just want to test if block is readable len can be 0 */
+       BRASERO_SET_24 (cdb->len, size);
+
+       /* reladr should be O */
+       /* no sync field included */
+       cdb->sync = 0;
+
+       /* no filtering */
+       cdb->sec_type = type;
+
+       /* header ?*/
+       cdb->header = header;
+
+       /* returns user data ?*/
+       cdb->user_data = user_data;
+
+       /* no EDC */
+       /* no error/C2 error */
+
+       /* subchannel */
+       cdb->subchannel = channel;
+
+       if (buffer)
+               memset (buffer, 0, buffer_len);
+
+       res = brasero_scsi_command_issue_sync (cdb,
+                                              buffer,
+                                              buffer_len,
+                                              error);
+
+       return res;
+}

Added: branches/brasero_0_7/src/scsi/scsi-read-cd.h
==============================================================================
--- (empty file)
+++ branches/brasero_0_7/src/scsi/scsi-read-cd.h        Mon Feb  4 21:28:26 2008
@@ -0,0 +1,59 @@
+/***************************************************************************
+ *            scsi-read-cd.h
+ *
+ *  Sun Jan 27 20:39:17 2008
+ *  Copyright  2008  Philippe Rouquier
+ *  <[EMAIL PROTECTED]>
+ ****************************************************************************/
+
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Library General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301,  
USA
+ */
+ 
+#ifndef _SCSI_READ_CD_H
+#define _SCSI_READ_CD_H
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+
+typedef enum {
+       BRASERO_SCSI_BLOCK_HEADER_NONE          = 0,
+       BRASERO_SCSI_BLOCK_HEADER_MAIN          = 1,
+       BRASERO_SCSI_BLOCK_HEADER_SUB           = 1 << 1
+} BraseroScsiBlockHeader;
+
+typedef enum {
+       BRASERO_SCSI_BLOCK_TYPE_ANY             = 0,
+       BRASERO_SCSI_BLOCK_TYPE_CDDA            = 1,
+       BRASERO_SCSI_BLOCK_TYPE_MODE1           = 2,
+       BRASERO_SCSI_BLOCK_TYPE_MODE2_FORMLESS  = 3,
+       BRASERO_SCSI_BLOCK_TYPE_MODE2_FORM1     = 4,
+       BRASERO_SCSI_BLOCK_TYPE_MODE2_FORM2     = 5
+} BraseroScsiBlockType;
+
+typedef enum {
+       BRASERO_SCSI_BLOCK_NO_SUBCHANNEL        = 0,
+       BRASERO_SCSI_BLOCK_SUB_Q                = 2,
+       BRASERO_SCSI_BLOCK_SUB_R_W              = 4
+} BraseroScsiBlockSubChannel;
+
+
+G_END_DECLS
+
+#endif /* _SCSI_READ_CD_H */
+
+ 
_______________________________________________
SVN-commits-list mailing list (read only)
http://mail.gnome.org/mailman/listinfo/svn-commits-list

Want to limit the commits to a few modules? Go to above URL, log in to edit 
your options and select the modules ('topics') you want.
Module maintainer? It is possible to set the reply-to to your development 
mailing list. Email [EMAIL PROTECTED] if interested.

Reply via email to