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.