The top-level interface header for libcdio_cdda. Applications include this for paranoia access.
More...
Data Structures |
struct | TOC_s |
| Structure for cdparanoia's CD Table of Contents. More...
|
struct | cdrom_drive_s |
| Structure for cdparanoia's CD-ROM access. More...
|
Defines |
#define | MAXTRK (CDIO_CD_MAX_TRACKS+1) |
#define | TOC TOC_t |
#define | CDDA_TEST_ALWAYS_JITTER 4 |
#define | CDDA_TEST_FRAG_SMALL (1<<3) |
#define | CDDA_TEST_FRAG_LARGE (2<<3) |
#define | CDDA_TEST_FRAG_MASSIVE (3<<3) |
#define | CDDA_TEST_UNDERRUN 64 |
#define | cdda_find_a_cdrom cdio_cddap_find_a_cdrom |
#define | cdda_identify cdio_cddap_identify |
#define | cdda_speed_set cdio_cddap_speed_set |
#define | cdda_verbose_set cdio_cddap_verbose_set |
#define | cdda_messages cdio_cddap_messages |
#define | cdda_errors cdio_cddap_errors |
#define | cdda_close cdio_cddap_close |
#define | cdda_open cdio_cddap_open |
#define | cdda_read cdio_cddap_read |
#define | cdda_track_firstsector cdio_cddap_track_firstsector |
#define | cdda_track_lastsector cdio_cddap_track_lastsector |
#define | cdda_tracks cdio_cddap_tracks |
#define | cdda_sector_gettrack cdio_cddap_sector_gettrack |
#define | cdda_track_channels cdio_cddap_track_channels |
#define | cdda_track_audiop cdio_cddap_track_audiop |
#define | cdda_track_copyp cdio_cddap_track_copyp |
#define | cdda_track_preemp cdio_cddap_track_preemp |
#define | cdda_disc_firstsector cdio_cddap_disc_firstsector |
#define | cdda_disc_lastsector cdio_cddap_disc_lastsector |
#define | cdrom_drive cdrom_drive_t |
Typedefs |
typedef struct cdrom_paranoia_s | cdrom_paranoia_t |
typedef struct cdrom_drive_s | cdrom_drive_t |
typedef struct TOC_s | TOC_t |
| Structure for cdparanoia's CD Table of Contents.
|
Enumerations |
enum | paranoia_cdda_enums_t {
CDDA_MESSAGE_FORGETIT = 0,
CDDA_MESSAGE_PRINTIT = 1,
CDDA_MESSAGE_LOGIT = 2,
CD_FRAMESAMPLES = CDIO_CD_FRAMESIZE_RAW / 4,
MAXTRK = (CDIO_CD_MAX_TRACKS+1)
} |
enum | paranoia_jitter_t {
CDDA_TEST_JITTER_SMALL = 1,
CDDA_TEST_JITTER_LARGE = 2,
CDDA_TEST_JITTER_MASSIVE = 3,
CDDA_TEST_FRAG_SMALL = (1<<3),
CDDA_TEST_FRAG_LARGE = (2<<3),
CDDA_TEST_FRAG_MASSIVE = (3<<3),
CDDA_TEST_UNDERRUN = 64
} |
enum | transport_error_t {
TR_OK = 0,
TR_EWRITE = 1,
TR_EREAD = 2,
TR_UNDERRUN = 3,
TR_OVERRUN = 4,
TR_ILLEGAL = 5,
TR_MEDIUM = 6,
TR_BUSY = 7,
TR_NOTREADY = 8,
TR_FAULT = 9,
TR_UNKNOWN = 10,
TR_STREAMING = 11
} |
Functions |
cdrom_drive_t * | cdio_cddap_find_a_cdrom (int messagedest, char **ppsz_message) |
cdrom_drive_t * | cdio_cddap_identify (const char *psz_device, int messagedest, char **ppsz_message) |
cdrom_drive_t * | cdio_cddap_identify_cdio (CdIo_t *p_cdio, int messagedest, char **ppsz_messages) |
int | cdio_cddap_speed_set (cdrom_drive_t *d, int speed) |
void | cdio_cddap_verbose_set (cdrom_drive_t *d, int err_action, int mes_action) |
char * | cdio_cddap_messages (cdrom_drive_t *d) |
char * | cdio_cddap_errors (cdrom_drive_t *d) |
bool | cdio_cddap_close_no_free_cdio (cdrom_drive_t *d) |
int | cdio_cddap_close (cdrom_drive_t *d) |
int | cdio_cddap_open (cdrom_drive_t *d) |
long | cdio_cddap_read (cdrom_drive_t *d, void *p_buffer, lsn_t beginsector, long sectors) |
lsn_t | cdio_cddap_track_firstsector (cdrom_drive_t *d, track_t i_track) |
lsn_t | cdio_cddap_track_lastsector (cdrom_drive_t *d, track_t i_track) |
track_t | cdio_cddap_tracks (cdrom_drive_t *d) |
int | cdio_cddap_sector_gettrack (cdrom_drive_t *d, lsn_t lsn) |
int | cdio_cddap_track_channels (cdrom_drive_t *d, track_t i_track) |
int | cdio_cddap_track_audiop (cdrom_drive_t *d, track_t i_track) |
int | cdio_cddap_track_copyp (cdrom_drive_t *d, track_t i_track) |
int | cdio_cddap_track_preemp (cdrom_drive_t *d, track_t i_track) |
lsn_t | cdio_cddap_disc_firstsector (cdrom_drive_t *d) |
lsn_t | cdio_cddap_disc_lastsector (cdrom_drive_t *d) |
int | data_bigendianp (cdrom_drive_t *d) |
Variables |
paranoia_jitter_t | debug_paranoia_jitter |
paranoia_cdda_enums_t | debug_paranoia_cdda_enums |
The top-level interface header for libcdio_cdda. Applications include this for paranoia access.
Determine Endian-ness of the CD-drive based on reading data from it. Some drives return audio data Big Endian while some (most) return data Little Endian. Drives known to return data bigendian are SCSI drives from Kodak, Ricoh, HP, Philips, Plasmon, Grundig CDR100IPW, and Mitsumi CD-R. ATAPI and MMC drives are little endian.
rocky: As someone who didn't write the code, I have to say this is nothing less than brilliant. An FFT is done both ways and the the transform is looked at to see which has data in the FFT (or audible) portion. (Or so that's how I understand it.)
- Returns:
- 1 if big-endian, 0 if little-endian, -1 if we couldn't figure things out or some error.