libcdio
2.1.0
|
The top-level header for sector (block, frame)-related libcdio calls. More...
#include <cdio/types.h>
Go to the source code of this file.
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) |
The top-level header for sector (block, frame)-related libcdio calls.
enum cdio_read_mode_t |
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()
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. |
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).
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 |
driver_return_code_t cdio_read_audio_sector | ( | const CdIo_t * | p_cdio, |
void * | p_buf, | ||
lsn_t | i_lsn | ||
) |
Read an audio sector
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 |
driver_return_code_t cdio_read_audio_sectors | ( | const CdIo_t * | p_cdio, |
void * | p_buf, | ||
lsn_t | i_lsn, | ||
uint32_t | i_blocks | ||
) |
Reads audio sectors
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 |
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 | ||
) |
Read data sectors
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 |
driver_return_code_t cdio_read_mode1_sector | ( | const CdIo_t * | p_cdio, |
void * | p_buf, | ||
lsn_t | i_lsn, | ||
bool | b_form2 | ||
) |
Reads a mode 1 sector
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. |
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 | ||
) |
Reads mode 1 sectors
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 |
driver_return_code_t cdio_read_mode2_sector | ( | const CdIo_t * | p_cdio, |
void * | p_buf, | ||
lsn_t | i_lsn, | ||
bool | b_form2 | ||
) |
Reads a mode 2 sector
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. |
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 | ||
) |
Reads mode 2 sectors
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 |
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 | ||
) |
The special case of reading a single block is a common one so we provide a routine for that as a convenience.
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 | ||
) |
Reads a number of sectors (AKA blocks).
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 |
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.