packages feed

hscdio-0.1.0.0: include/cdio/compat/read.h

#ifndef __CDIO_COMPAT_READ__
#define __CDIO_COMPAT_READ__


#include "cdio/compat/device.h"
#include "cdio/read.h"

#include "unistd.h"


// FFI-compatible wrappings

typedef enum {
    WHENCE_SEEK_START = SEEK_SET,
    WHENCE_SEEK_CURRENT = SEEK_CUR,
    WHENCE_SEEK_END = SEEK_END
} whence_t;


// Marshalling aids

void read_bytes(const CdIo_t*, void**, ssize_t*, size_t);

driver_return_code_t read_sector(const CdIo_t*, void**, uint32_t*, lsn_t, cdio_read_mode_t);
driver_return_code_t read_sectors(const CdIo_t*, void**, uint32_t*, lsn_t, cdio_read_mode_t, uint32_t);

driver_return_code_t read_data_sectors(const CdIo_t*, void**, uint32_t*, lsn_t, uint16_t, uint32_t);

driver_return_code_t read_audio_sector(const CdIo_t*, void**, uint32_t*, lsn_t);
driver_return_code_t read_audio_sectors(const CdIo_t*, void**, uint32_t*, lsn_t, uint32_t);

driver_return_code_t read_mode1_sector(const CdIo_t*, void**, uint32_t*, lsn_t, bool);
driver_return_code_t read_mode1_sectors(const CdIo_t*, void**, uint32_t*, lsn_t, bool, uint32_t);

driver_return_code_t read_mode2_sector(const CdIo_t*, void**, uint32_t*, lsn_t, bool);
driver_return_code_t read_mode2_sectors(const CdIo_t*, void**, uint32_t*, lsn_t, bool, uint32_t);


#endif