The top-level header for sector (block, frame)-related libcdio calls.
More...
#include <cdio/cdio_config.h>
#include <sys/types.h>
Go to the source code of this file.
Defines |
#define | EXTERNAL_LIBCDIO_CONFIG_H |
Enumerations |
enum | cdio_read_mode_t {
CDIO_READ_MODE_AUDIO,
CDIO_READ_MODE_M1F1,
CDIO_READ_MODE_M1F2,
CDIO_READ_MODE_M2F1,
CDIO_READ_MODE_M2F2
} |
Functions |
off_t | cdio_lseek (const CdIo_t *p_cdio, off_t offset, int whence) |
ssize_t | cdio_read (const CdIo_t *p_cdio, void *p_buf, size_t i_size) |
driver_return_code_t | cdio_read_audio_sector (const CdIo_t *p_cdio, void *p_buf, lsn_t i_lsn) |
driver_return_code_t | cdio_read_audio_sectors (const CdIo_t *p_cdio, void *p_buf, lsn_t i_lsn, uint32_t i_blocks) |
driver_return_code_t | cdio_read_data_sectors (const CdIo_t *p_cdio, void *p_buf, lsn_t i_lsn, uint16_t i_blocksize, uint32_t i_blocks) |
driver_return_code_t | cdio_read_mode1_sector (const CdIo_t *p_cdio, void *p_buf, lsn_t i_lsn, bool b_form2) |
driver_return_code_t | cdio_read_mode1_sectors (const CdIo_t *p_cdio, void *p_buf, lsn_t i_lsn, bool b_form2, uint32_t i_blocks) |
driver_return_code_t | cdio_read_mode2_sector (const CdIo_t *p_cdio, void *p_buf, lsn_t i_lsn, bool b_form2) |
driver_return_code_t | cdio_read_sector (const CdIo_t *p_cdio, void *p_buf, lsn_t i_lsn, cdio_read_mode_t read_mode) |
driver_return_code_t | cdio_read_mode2_sectors (const CdIo_t *p_cdio, void *p_buf, lsn_t i_lsn, bool b_form2, uint32_t i_blocks) |
driver_return_code_t | cdio_read_sectors (const CdIo_t *p_cdio, void *p_buf, lsn_t i_lsn, cdio_read_mode_t read_mode, uint32_t i_blocks) |
Detailed Description
The top-level header for sector (block, frame)-related libcdio calls.
Define Documentation
#define EXTERNAL_LIBCDIO_CONFIG_H |
Enumeration Type Documentation
All the different ways a block/sector can be read.
- Enumerator:
CDIO_READ_MODE_AUDIO |
CD-DA, audio, Red Book
|
CDIO_READ_MODE_M1F1 |
Mode 1 Form 1
|
CDIO_READ_MODE_M1F2 |
Mode 1 Form 2
|
CDIO_READ_MODE_M2F1 |
Mode 2 Form 1
|
CDIO_READ_MODE_M2F2 |
Mode 2 Form 2
|
Function Documentation
off_t cdio_lseek |
( |
const CdIo_t * |
p_cdio, |
|
|
off_t |
offset, |
|
|
int |
whence | |
|
) |
| | |
Reposition read offset Similar to (if not the same as) libc's fseek()
- Parameters:
-
| p_cdio | object which gets adjusted |
| offset | amount to seek |
| whence | like corresponding parameter in libc's fseek, e.g. SEEK_SET or SEEK_END. |
- Returns:
- (off_t) -1 on error.
ssize_t cdio_read |
( |
const CdIo_t * |
p_cdio, |
|
|
void * |
p_buf, |
|
|
size_t |
i_size | |
|
) |
| | |
Reads into buf the next size bytes. Similar to (if not the same as) libc's read(). This is a "cooked" read, or one handled by the OS. It probably won't work on audio data. For that use cdio_read_audio_sector(s).
- Parameters:
-
| p_cdio | object to read from |
| p_buf | place to read data into. The caller should make sure this location can store at least i_size bytes. |
| i_size | number of bytes to read |
- Returns:
- (ssize_t) -1 on error.
Read an audio sector
- Parameters:
-
| p_cdio | object to read from |
| p_buf | place to read data into. The caller should make sure this location can store at least CDIO_FRAMESIZE_RAW bytes. |
| i_lsn | sector to read |
Reads audio sectors
- Parameters:
-
| p_cdio | object to read from |
| p_buf | place to read data into. The caller should make sure this location can store at least CDIO_FRAMESIZE_RAW i_blocks bytes. |
| i_lsn | sector to read |
| i_blocks | number of sectors to read |
Read data sectors
- Parameters:
-
| p_cdio | object to read from |
| p_buf | place to read data into. The caller should make sure this location can store at least ISO_BLOCKSIZE, M2RAW_SECTOR_SIZE, or M2F2_SECTOR_SIZE depending on the kind of sector getting read. If you don't know whether you have a Mode 1/2, Form 1/ Form 2/Formless sector best to reserve space for the maximum, M2RAW_SECTOR_SIZE. |
| i_lsn | sector to read |
| i_blocksize | size of block. Should be either CDIO_CD_FRAMESIZE, M2RAW_SECTOR_SIZE, or M2F2_SECTOR_SIZE. See comment above under p_buf. |
| i_blocks | number of blocks to read |
Reads a mode 1 sector
- Parameters:
-
| p_cdio | object to read from |
| p_buf | place to read data into. |
| i_lsn | sector to read |
| b_form2 | true for reading mode 1 form 2 sectors or false for mode 1 form 1 sectors. |
Reads mode 1 sectors
- Parameters:
-
| p_cdio | object to read from |
| p_buf | place to read data into |
| i_lsn | sector to read |
| b_form2 | true for reading mode 1 form 2 sectors or false for mode 1 form 1 sectors. |
| i_blocks | number of sectors to read |
Reads a mode 2 sector
- Parameters:
-
| p_cdio | object to read from |
| p_buf | place to read data into. The caller should make sure this location can store at least M2RAW_SECTOR_SIZE (for form 1) or CDIO_CD_FRAMESIZE (for form 2) bytes. |
| i_lsn | sector to read |
| b_form2 | true for reading mode 2 form 2 sectors or false for mode 2 form 1 sectors. |
- Returns:
- 0 if no error, nonzero otherwise.
Reads mode 2 sectors
- Parameters:
-
| p_cdio | object to read from |
| p_buf | place to read data into. The caller should make sure this location can store at least M2RAW_SECTOR_SIZE (for form 1) or CDIO_CD_FRAMESIZE (for form 2) * i_blocks bytes. |
| i_lsn | sector to read |
| b_form2 | true for reading mode2 form 2 sectors or false for mode 2 form 1 sectors. |
| i_blocks | number of sectors to read |
- Returns:
- 0 if no error, nonzero otherwise.
The special case of reading a single block is a common one so we provide a routine for that as a convenience.
Reads a number of sectors (AKA blocks).
- Parameters:
-
| p_cdio | cdio object |
| p_buf | place to read data into. The caller should make sure this location is large enough. See below for size information. |
| read_mode | the kind of "mode" to use in reading. |
| i_lsn | sector to read |
| i_blocks | number of sectors to read |
- Returns:
- DRIVER_OP_SUCCESS (0) if no error, other (negative) enumerations are returned on error.
If read_mode is CDIO_MODE_AUDIO, p_buf should hold at least CDIO_FRAMESIZE_RAW * i_blocks bytes.
If read_mode is CDIO_MODE_DATA, p_buf should hold at least i_blocks times either ISO_BLOCKSIZE, M1RAW_SECTOR_SIZE or M2F2_SECTOR_SIZE depending on the kind of sector getting read. If you don't know whether you have a Mode 1/2, Form 1/ Form 2/Formless sector best to reserve space for the maximum which is M2RAW_SECTOR_SIZE.
If read_mode is CDIO_MODE_M2F1, p_buf should hold at least M2RAW_SECTOR_SIZE * i_blocks bytes.
If read_mode is CDIO_MODE_M2F2, p_buf should hold at least CDIO_CD_FRAMESIZE * i_blocks bytes.