libcdio 2.4.0
device.h
Go to the documentation of this file.
1/* -*- c -*-
2
3 Copyright (C) 2005-2006, 2008-2013, 2025-2026 Rocky Bernstein
4 <rocky@gnu.org>
5
6 This program is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
18*/
19
26#ifndef CDIO_DEVICE_H_
27#define CDIO_DEVICE_H_
28
29#ifdef __cplusplus
30extern "C" {
31#endif /* __cplusplus */
32
33#include <cdio/cdio.h>
34#include <cdio/types.h>
35
37typedef uint32_t cdio_drive_read_cap_t;
38typedef uint32_t cdio_drive_write_cap_t;
39typedef uint32_t cdio_drive_misc_cap_t;
40
45
66
86
111
118
126
134
167
172extern const driver_id_t cdio_drivers[];
173
178extern const driver_id_t cdio_device_drivers[];
179
186extern const driver_id_t cdio_os_driver;
187
227
240 /*in/out*/ driver_id_t *p_driver_id);
241
250
262
270
280void cdio_free_device_list(char *device_list[]);
281
294char *cdio_get_default_device(const CdIo_t *p_cdio);
295
307char *cdio_get_default_device_driver(/*in/out*/ driver_id_t *p_driver_id);
308
321
358char **cdio_get_devices_with_cap(/*in*/ char *ppsz_search_devices[],
359 cdio_fs_anal_t capabilities, bool b_any);
360
367char **cdio_get_devices_with_cap_ret(/*in*/ char *ppsz_search_devices[],
368 cdio_fs_anal_t capabilities, bool b_any,
369 /*out*/ driver_id_t *p_driver_id);
370
378
379char **cdio_get_devices_ret(/*in/out*/ driver_id_t *p_driver_id);
380
393void cdio_get_drive_cap(const CdIo_t *p_cdio, cdio_drive_read_cap_t *p_read_cap,
394 cdio_drive_write_cap_t *p_write_cap,
395 cdio_drive_misc_cap_t *p_misc_cap);
396
406void cdio_get_drive_cap_dev(const char *device,
407 cdio_drive_read_cap_t *p_read_cap,
408 cdio_drive_write_cap_t *p_write_cap,
409 cdio_drive_misc_cap_t *p_misc_cap);
410
419const char *cdio_get_driver_name(const CdIo_t *p_cdio);
420
425
436
441bool cdio_get_hwinfo(const CdIo_t *p_cdio,
442 /*out*/ cdio_hwinfo_t *p_hw_info);
443
452 /*out*/ lsn_t *i_last_session);
453
463
466
469
476void cdio_destroy(CdIo_t *p_cdio);
477
484const char *cdio_driver_describe(driver_id_t driver_id);
485
496CdIo_t *cdio_open(const char *psz_source, driver_id_t driver_id);
497
510CdIo_t *cdio_open_am(const char *psz_source, driver_id_t driver_id,
511 const char *psz_access_mode);
512
519CdIo_t *cdio_open_bincue(const char *psz_cue_name);
520
527CdIo_t *cdio_open_am_bincue(const char *psz_cue_name,
528 const char *psz_access_mode);
529
535CdIo_t *cdio_open_cdrdao(const char *psz_toc_name);
536
542CdIo_t *cdio_open_am_cdrdao(const char *psz_toc_name,
543 const char *psz_access_mode);
544
552
554
561
563
571CdIo_t *cdio_open_cd(const char *device_name);
572
580CdIo_t *cdio_open_am_cd(const char *psz_device, const char *psz_access_mode);
581
588CdIo_t *cdio_open_cue(const char *cue_name);
589
599CdIo_t *cdio_open_am_aix(const char *psz_source, const char *psz_access_mode);
600
610CdIo_t *cdio_open_aix(const char *psz_source);
611
622
632
641CdIo_t *cdio_open_freebsd(const char *paz_psz_source);
642
651CdIo_t *cdio_open_am_freebsd(const char *psz_source,
652 const char *psz_access_mode);
653
661
667
679CdIo_t *cdio_open_linux(const char *psz_source);
680
688CdIo_t *cdio_open_am_linux(const char *psz_source, const char *access_mode);
689
704
710
718CdIo_t *cdio_open_solaris(const char *psz_source);
719
727CdIo_t *cdio_open_am_solaris(const char *psz_source,
728 const char *psz_access_mode);
729
744
750
763CdIo_t *cdio_open_osx(const char *psz_source);
764
773CdIo_t *cdio_open_am_osx(const char *psz_source, const char *psz_access_mode);
774
785
791
800CdIo_t *cdio_open_win32(const char *psz_source);
801
808CdIo_t *cdio_open_am_win32(const char *psz_source, const char *psz_access_mode);
809
822
824
831CdIo_t *cdio_open_nrg(const char *psz_source);
832
839CdIo_t *cdio_open_am_nrg(const char *psz_source, const char *psz_access_mode);
840
850
852
861char *cdio_is_binfile(const char *bin_name);
862
869char *cdio_is_cuefile(const char *cue_name);
870
878bool cdio_is_nrg(const char *psz_nrg);
879
887bool cdio_is_tocfile(const char *psz_toc);
888
898bool cdio_is_device(const char *psz_source, driver_id_t driver_id);
899
903driver_return_code_t cdio_set_blocksize(const CdIo_t *p_cdio, int i_blocksize);
904
921driver_return_code_t cdio_set_speed(const CdIo_t *p_cdio, int i_drive_speed);
922
930const char *cdio_get_arg(const CdIo_t *p_cdio, const char key[]);
931
939driver_return_code_t cdio_set_arg(CdIo_t *p_cdio, const char key[],
940 const char value[]);
941
945bool cdio_init(void);
946
955
956#ifdef __cplusplus
957}
958#endif /* __cplusplus */
959
970
971#endif /* CDIO_DEVICE_H_ */
The top-level header for libcdio: the CD Input and Control library. Applications include this for any...
struct _CdIo CdIo_t
Definition cdio.h:47
driver_return_code_t cdio_set_blocksize(const CdIo_t *p_cdio, int i_blocksize)
char * cdio_get_default_device_driver(driver_id_t *p_driver_id)
Get the default CD device name for a specified driver.
bool cdio_is_tocfile(const char *psz_toc)
CdIo_t * cdio_open_win32(const char *psz_source)
CdIo_t * cdio_open_am_aix(const char *psz_source, const char *psz_access_mode)
CdIo_t * cdio_open_am_freebsd(const char *psz_source, const char *psz_access_mode)
CdIo_t * cdio_open_aix(const char *psz_source)
char * cdio_get_default_device_bincue(void)
const char * cdio_get_driver_name(const CdIo_t *p_cdio)
driver_return_code_t cdio_eject_media_drive(const char *psz_drive)
char ** cdio_get_devices_cdrdao(void)
char * cdio_get_default_device_freebsd(void)
cdio_mmc_hw_len_t debug_cdio_mmc_hw_len
char * cdio_get_default_device_aix(void)
char * cdio_get_default_device_linux(void)
CdIo_t * cdio_open_cue(const char *cue_name)
driver_return_code_t cdio_set_speed(const CdIo_t *p_cdio, int i_drive_speed)
CdIo_t * cdio_open_am(const char *psz_source, driver_id_t driver_id, const char *psz_access_mode)
const driver_id_t cdio_os_driver
CdIo_t * cdio_open_freebsd(const char *paz_psz_source)
int cdio_get_device_fd(CdIo_t *p_cdio)
CdIo_t * cdio_open_bincue(const char *psz_cue_name)
cdio_drive_cap_misc_t
Drive capability bits returned by cdio_get_drive_cap() NOTE: Setting a bit here means the presence of...
Definition device.h:47
@ CDIO_DRIVE_CAP_UNKNOWN
Definition device.h:49
@ CDIO_DRIVE_CAP_MISC_LOCK
Definition device.h:56
@ CDIO_DRIVE_CAP_MISC_MULTI_SESSION
Definition device.h:60
@ CDIO_DRIVE_CAP_MISC_SELECT_DISC
Definition device.h:58
@ CDIO_DRIVE_CAP_MISC_RESET
Definition device.h:62
@ CDIO_DRIVE_CAP_MISC_CLOSE_TRAY
Definition device.h:53
@ CDIO_DRIVE_CAP_MISC_SELECT_SPEED
Definition device.h:57
@ CDIO_DRIVE_CAP_MISC_EJECT
Definition device.h:55
@ CDIO_DRIVE_CAP_ERROR
Definition device.h:48
@ CDIO_DRIVE_CAP_MISC_MEDIA_CHANGED
Definition device.h:61
@ CDIO_DRIVE_CAP_MISC_FILE
Definition device.h:63
CdIo_t * cdio_open_am_cdrdao(const char *psz_toc_name, const char *psz_access_mode)
CdIo_t * cdio_open_nrg(const char *psz_source)
const char * cdio_driver_describe(driver_id_t driver_id)
uint32_t cdio_drive_misc_cap_t
Definition device.h:39
driver_return_code_t cdio_get_last_session(CdIo_t *p_cdio, lsn_t *i_last_session)
cdio_src_category_mask_t debug_cdio_src_category_mask
void cdio_get_drive_cap(const CdIo_t *p_cdio, cdio_drive_read_cap_t *p_read_cap, cdio_drive_write_cap_t *p_write_cap, cdio_drive_misc_cap_t *p_misc_cap)
cdio_drive_cap_write_t debug_drive_cap_write_t
char * cdio_get_default_device_nrg(void)
driver_return_code_t cdio_set_arg(CdIo_t *p_cdio, const char key[], const char value[])
cdio_drive_cap_read_t debug_cdio_drive_cap_read_t
cdio_drive_cap_misc_t debug_cdio_drive_cap_misc
const driver_id_t cdio_device_drivers[]
cdio_mmc_hw_len_t
Definition device.h:113
@ CDIO_MMC_HW_MODEL_LEN
Definition device.h:115
@ CDIO_MMC_HW_REVISION_LEN
Definition device.h:116
@ CDIO_MMC_HW_VENDOR_LEN
Definition device.h:114
char ** cdio_get_devices_ret(driver_id_t *p_driver_id)
char ** cdio_get_devices_solaris(void)
CdIo_t * cdio_open_am_nrg(const char *psz_source, const char *psz_access_mode)
void cdio_free_device_list(char *device_list[])
Free device list returned by device enumeration functions.
CdIo_t * cdio_open_am_solaris(const char *psz_source, const char *psz_access_mode)
char * cdio_is_cuefile(const char *cue_name)
int cdio_get_media_changed(CdIo_t *p_cdio)
char * cdio_get_default_device_win32(void)
CdIo_t * cdio_open_am_cd(const char *psz_device, const char *psz_access_mode)
CdIo_t * cdio_open_solaris(const char *psz_source)
CdIo_t * cdio_open_am_bincue(const char *psz_cue_name, const char *psz_access_mode)
CdIo_t * cdio_open_am_win32(const char *psz_source, const char *psz_access_mode)
cdio_drive_cap_write_t
Definition device.h:88
@ CDIO_DRIVE_CAP_WRITE_BURN_PROOF
Definition device.h:97
@ CDIO_DRIVE_CAP_WRITE_MT_RAINIER
Definition device.h:96
@ CDIO_DRIVE_CAP_WRITE_DVD_RW
Definition device.h:94
@ CDIO_DRIVE_CAP_WRITE_CD_R
Definition device.h:89
@ CDIO_DRIVE_CAP_WRITE_DVD
Definition device.h:102
@ CDIO_DRIVE_CAP_WRITE_DVD_R
Definition device.h:91
@ CDIO_DRIVE_CAP_WRITE
Definition device.h:108
@ CDIO_DRIVE_CAP_WRITE_CD
Definition device.h:98
@ CDIO_DRIVE_CAP_WRITE_CD_RW
Definition device.h:90
@ CDIO_DRIVE_CAP_WRITE_DVD_PR
Definition device.h:92
@ CDIO_DRIVE_CAP_WRITE_DVD_RAM
Definition device.h:93
@ CDIO_DRIVE_CAP_WRITE_DVD_RPW
Definition device.h:95
driver_id_t cdio_get_driver_id(const CdIo_t *p_cdio)
CdIo_t * cdio_open_am_linux(const char *psz_source, const char *access_mode)
CdIo_t * cdio_open_cdrdao(const char *psz_toc_name)
char ** cdio_get_devices_freebsd(void)
driver_return_code_t
Definition device.h:200
@ DRIVER_OP_ERROR
Definition device.h:206
@ DRIVER_OP_UNINIT
Definition device.h:212
@ DRIVER_OP_UNSUPPORTED
Definition device.h:207
@ DRIVER_OP_NOT_PERMITTED
Definition device.h:216
@ DRIVER_OP_BAD_POINTER
Definition device.h:221
@ DRIVER_OP_MMC_SENSE_DATA
Definition device.h:224
@ DRIVER_OP_NO_DRIVER
Definition device.h:222
@ DRIVER_OP_BAD_PARAMETER
Definition device.h:220
@ DRIVER_OP_SUCCESS
Definition device.h:201
char * cdio_get_default_device_osx(void)
CdIo_t * cdio_open_cd(const char *device_name)
char ** cdio_get_devices_win32(void)
const driver_id_t cdio_drivers[]
driver_return_code_t cdio_close_tray(const char *psz_drive, driver_id_t *p_driver_id)
Close media tray in CD drive if there is a routine to do so.
void cdio_get_drive_cap_dev(const char *device, cdio_drive_read_cap_t *p_read_cap, cdio_drive_write_cap_t *p_write_cap, cdio_drive_misc_cap_t *p_misc_cap)
CdIo_t * cdio_open_osx(const char *psz_source)
char ** cdio_get_devices_with_cap_ret(char *ppsz_search_devices[], cdio_fs_anal_t capabilities, bool b_any, driver_id_t *p_driver_id)
bool cdio_have_driver(driver_id_t driver_id)
char ** cdio_get_devices_linux(void)
uint32_t cdio_drive_write_cap_t
Definition device.h:38
CdIo_t * cdio_open_linux(const char *psz_source)
bool cdio_init(void)
char ** cdio_get_devices_bincue(void)
struct cdio_hwinfo cdio_hwinfo_t
Structure to return CD vendor, model, and revision-level strings obtained via the INQUIRY command.
driver_return_code_t cdio_eject_media(CdIo_t **p_cdio)
Eject media from CD drive.
uint32_t cdio_drive_read_cap_t
Definition device.h:37
bool cdio_is_nrg(const char *psz_nrg)
char ** cdio_get_devices_nrg(void)
char ** cdio_get_devices_osx(void)
cdio_src_category_mask_t
Definition device.h:128
@ CDIO_SRC_IS_SCSI_MASK
Definition device.h:131
@ CDIO_SRC_IS_NATIVE_MASK
Definition device.h:132
@ CDIO_SRC_IS_DEVICE_MASK
Definition device.h:130
@ CDIO_SRC_IS_DISK_IMAGE_MASK
Definition device.h:129
char * cdio_get_default_device_solaris(void)
char ** cdio_get_devices(driver_id_t driver_id)
const char * cdio_get_driver_name_from_id(driver_id_t driver_id)
CdIo_t * cdio_open(const char *psz_source, driver_id_t driver_id)
bool cdio_get_hwinfo(const CdIo_t *p_cdio, cdio_hwinfo_t *p_hw_info)
bool_3way_t cdio_have_atapi(CdIo_t *p_cdio)
cdio_drive_cap_read_t
Definition device.h:68
@ CDIO_DRIVE_CAP_READ_DVD_RAM
Definition device.h:76
@ CDIO_DRIVE_CAP_READ_CD_R
Definition device.h:72
@ CDIO_DRIVE_CAP_READ_MODE2_FORM1
Definition device.h:81
@ CDIO_DRIVE_CAP_READ_DVD_ROM
Definition device.h:77
@ CDIO_DRIVE_CAP_READ_DVD_RPW
Definition device.h:79
@ CDIO_DRIVE_CAP_READ_DVD_R
Definition device.h:74
@ CDIO_DRIVE_CAP_READ_ISRC
Definition device.h:84
@ CDIO_DRIVE_CAP_READ_AUDIO
Definition device.h:69
@ CDIO_DRIVE_CAP_READ_C2_ERRS
Definition device.h:80
@ CDIO_DRIVE_CAP_READ_CD_G
Definition device.h:71
@ CDIO_DRIVE_CAP_READ_DVD_PR
Definition device.h:75
@ CDIO_DRIVE_CAP_READ_CD_RW
Definition device.h:73
@ CDIO_DRIVE_CAP_READ_MODE2_FORM2
Definition device.h:82
@ CDIO_DRIVE_CAP_READ_MCN
Definition device.h:83
@ CDIO_DRIVE_CAP_READ_DVD_RW
Definition device.h:78
@ CDIO_DRIVE_CAP_READ_CD_DA
Definition device.h:70
char ** cdio_get_devices_aix(void)
char ** cdio_get_devices_with_cap(char *ppsz_search_devices[], cdio_fs_anal_t capabilities, bool b_any)
const char * cdio_get_arg(const CdIo_t *p_cdio, const char key[])
driver_id_t
Definition device.h:147
@ DRIVER_UNKNOWN
Definition device.h:148
@ DRIVER_LINUX
Definition device.h:153
@ DRIVER_AIX
Definition device.h:150
@ DRIVER_OSX
Definition device.h:155
@ DRIVER_NRG
Definition device.h:164
@ DRIVER_BINCUE
Definition device.h:161
@ DRIVER_CDRDAO
Definition device.h:158
@ DRIVER_DEVICE
Definition device.h:165
@ DRIVER_SOLARIS
Definition device.h:154
@ DRIVER_WIN32
Definition device.h:156
@ DRIVER_FREEBSD
Definition device.h:151
@ DRIVER_NETBSD
Definition device.h:152
char * cdio_is_binfile(const char *bin_name)
const char * cdio_driver_errmsg(driver_return_code_t drc)
Get error message string for a driver return code.
char * cdio_get_default_device(const CdIo_t *p_cdio)
Get the default CD device name.
char * cdio_get_default_device_cdrdao(void)
CdIo_t * cdio_open_am_osx(const char *psz_source, const char *psz_access_mode)
bool cdio_is_device(const char *psz_source, driver_id_t driver_id)
void cdio_destroy(CdIo_t *p_cdio)
Structure to return CD vendor, model, and revision-level strings obtained via the INQUIRY command.
Definition device.h:121
char psz_vendor[CDIO_MMC_HW_VENDOR_LEN+1]
Definition device.h:122
char psz_revision[CDIO_MMC_HW_REVISION_LEN+1]
Definition device.h:124
char psz_model[CDIO_MMC_HW_MODEL_LEN+1]
Definition device.h:123
Common type definitions used pervasively in libcdio.
bool_3way_t
Definition types.h:218
int cdio_fs_anal_t
Definition types.h:304
int32_t lsn_t
Definition types.h:248

Generated for libcdio by doxygen 1.15.0