libcdio  0.90
device.h
Go to the documentation of this file.
1 /* -*- c -*-
2 
3  Copyright (C) 2005, 2006, 2008, 2009, 2010, 2011, 2012 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
30 extern "C" {
31 #endif /* __cplusplus */
32 
33 #include <cdio/types.h>
34 #include <cdio/cdio.h>
35 
37  typedef uint32_t cdio_drive_read_cap_t;
38  typedef uint32_t cdio_drive_write_cap_t;
39  typedef uint32_t cdio_drive_misc_cap_t;
40 
47  typedef enum {
66 
68  typedef enum {
86 
88  typedef enum {
112 
114  typedef enum {
119 
120 
123  typedef struct cdio_hwinfo
124  {
128  } cdio_hwinfo_t;
129 
130 
132  typedef enum {
138 
139 
152  typedef enum {
173  } driver_id_t;
174 
179  extern const driver_id_t cdio_drivers[];
180 
185  extern const driver_id_t cdio_device_drivers[];
186 
193  extern const driver_id_t cdio_os_driver;
194 
195 
203 LIBCDIO_DEPRECATED(static const driver_id_t CDIO_MIN_DRIVER, "please use cdio_drivers") = DRIVER_AIX;
204 LIBCDIO_DEPRECATED(static const driver_id_t CDIO_MIN_DEVICE_DRIVER, "please use cdio_device_drivers") = DRIVER_AIX;
205 LIBCDIO_DEPRECATED(static const driver_id_t CDIO_MAX_DRIVER, "please use cdio_drivers") = DRIVER_NRG;
206 LIBCDIO_DEPRECATED(static const driver_id_t CDIO_MAX_DEVICE_DRIVER, "please use cdio_device_drivers") = DRIVER_WIN32;
207 
220  typedef enum {
247 
257  driver_return_code_t cdio_close_tray (const char *psz_drive,
258  /*in/out*/ driver_id_t *p_driver_id);
259 
264  const char *cdio_driver_errmsg(driver_return_code_t drc);
265 
273 
280  driver_return_code_t cdio_eject_media_drive (const char *psz_drive);
281 
292  void cdio_free_device_list (char * device_list[]);
293 
307  char * cdio_get_default_device (const CdIo_t *p_cdio);
308 
316  char * cdio_get_default_device_driver (/*in/out*/ driver_id_t *p_driver_id);
317 
329  char ** cdio_get_devices (driver_id_t driver_id);
330 
367  char ** cdio_get_devices_with_cap (/*in*/ char *ppsz_search_devices[],
368  cdio_fs_anal_t capabilities, bool b_any);
369 
376  char ** cdio_get_devices_with_cap_ret (/*in*/ char* ppsz_search_devices[],
377  cdio_fs_anal_t capabilities,
378  bool b_any,
379  /*out*/ driver_id_t *p_driver_id);
380 
389  char ** cdio_get_devices_ret (/*in/out*/ driver_id_t *p_driver_id);
390 
403  void cdio_get_drive_cap (const CdIo_t *p_cdio,
404  cdio_drive_read_cap_t *p_read_cap,
405  cdio_drive_write_cap_t *p_write_cap,
406  cdio_drive_misc_cap_t *p_misc_cap);
407 
417  void cdio_get_drive_cap_dev (const char *device,
418  cdio_drive_read_cap_t *p_read_cap,
419  cdio_drive_write_cap_t *p_write_cap,
420  cdio_drive_misc_cap_t *p_misc_cap);
421 
428  const char * cdio_get_driver_name (const CdIo_t *p_cdio);
429 
437  driver_id_t cdio_get_driver_id (const CdIo_t *p_cdio);
438 
443  bool cdio_get_hwinfo ( const CdIo_t *p_cdio,
444  /*out*/ cdio_hwinfo_t *p_hw_info );
445 
446 
455  /*out*/ lsn_t *i_last_session);
456 
463  int cdio_get_media_changed(CdIo_t *p_cdio);
464 
467 
469  bool cdio_have_driver (driver_id_t driver_id);
470 
477  void cdio_destroy (CdIo_t *p_cdio);
478 
485  const char *cdio_driver_describe (driver_id_t driver_id);
486 
497  CdIo_t * cdio_open (const char *psz_source, driver_id_t driver_id);
498 
510  CdIo_t * cdio_open_am (const char *psz_source,
511  driver_id_t driver_id, const char *psz_access_mode);
512 
519  CdIo_t * cdio_open_bincue (const char *psz_cue_name);
520 
527  CdIo_t * cdio_open_am_bincue (const char *psz_cue_name,
528  const char *psz_access_mode);
529 
535  CdIo_t * cdio_open_cdrdao (const char *psz_toc_name);
536 
542  CdIo_t * cdio_open_am_cdrdao (const char *psz_toc_name,
543  const char *psz_access_mode);
544 
551  char * cdio_get_default_device_bincue(void);
552 
553  char **cdio_get_devices_bincue(void);
554 
560  char * cdio_get_default_device_cdrdao(void);
561 
562  char **cdio_get_devices_cdrdao(void);
563 
571  CdIo_t * cdio_open_cd (const char *device_name);
572 
580  CdIo_t * cdio_open_am_cd (const char *psz_device,
581  const char *psz_access_mode);
582 
589  CdIo_t * cdio_open_cue (const char *cue_name);
590 
600  CdIo_t * cdio_open_am_aix (const char *psz_source,
601  const char *psz_access_mode);
602 
612  CdIo_t * cdio_open_aix (const char *psz_source);
613 
623  char * cdio_get_default_device_aix(void);
624 
633  char **cdio_get_devices_aix(void);
634 
645  CdIo_t * cdio_open_bsdi (const char *psz_source);
646 
656  CdIo_t * cdio_open_am_bsdi (const char *psz_source,
657  const char *psz_access_mode);
658 
668  char * cdio_get_default_device_bsdi(void);
669 
678  char **cdio_get_devices_bsdi(void);
679 
688  CdIo_t * cdio_open_freebsd (const char *paz_psz_source);
689 
698  CdIo_t * cdio_open_am_freebsd (const char *psz_source,
699  const char *psz_access_mode);
700 
707  char * cdio_get_default_device_freebsd(void);
708 
713  char **cdio_get_devices_freebsd(void);
714 
726  CdIo_t * cdio_open_linux (const char *psz_source);
727 
735  CdIo_t * cdio_open_am_linux (const char *psz_source,
736  const char *access_mode);
737 
751  char * cdio_get_default_device_linux(void);
752 
757  char **cdio_get_devices_linux(void);
758 
766  CdIo_t * cdio_open_solaris (const char *psz_source);
767 
775  CdIo_t * cdio_open_am_solaris (const char *psz_source,
776  const char *psz_access_mode);
777 
791  char * cdio_get_default_device_solaris(void);
792 
797  char **cdio_get_devices_solaris(void);
798 
811  CdIo_t * cdio_open_osx (const char *psz_source);
812 
821  CdIo_t * cdio_open_am_osx (const char *psz_source,
822  const char *psz_access_mode);
823 
833  char * cdio_get_default_device_osx(void);
834 
839  char **cdio_get_devices_osx(void);
840 
849  CdIo_t * cdio_open_win32 (const char *psz_source);
850 
857  CdIo_t * cdio_open_am_win32 (const char *psz_source,
858  const char *psz_access_mode);
859 
871  char * cdio_get_default_device_win32(void);
872 
873  char **cdio_get_devices_win32(void);
874 
887  CdIo_t * cdio_open_os2 (const char *psz_source);
888 
897  CdIo_t * cdio_open_am_os2 (const char *psz_source,
898  const char *psz_access_mode);
899 
909  char * cdio_get_default_device_os2(void);
910 
915  char **cdio_get_devices_os2(void);
916 
923  CdIo_t * cdio_open_nrg (const char *psz_source);
924 
931  CdIo_t * cdio_open_am_nrg (const char *psz_source,
932  const char *psz_access_mode);
933 
942  char * cdio_get_default_device_nrg(void);
943 
944  char **cdio_get_devices_nrg(void);
945 
954  char *cdio_is_binfile(const char *bin_name);
955 
962  char *cdio_is_cuefile(const char *cue_name);
963 
971  bool cdio_is_nrg(const char *psz_nrg);
972 
980  bool cdio_is_tocfile(const char *psz_toc);
981 
991  bool cdio_is_device(const char *psz_source, driver_id_t driver_id);
992 
997  int i_blocksize );
998 
1015  driver_return_code_t cdio_set_speed ( const CdIo_t *p_cdio,
1016  int i_drive_speed );
1017 
1026  const char * cdio_get_arg (const CdIo_t *p_cdio, const char key[]);
1027 
1035  driver_return_code_t cdio_set_arg (CdIo_t *p_cdio, const char key[],
1036  const char value[]);
1037 
1041  bool cdio_init(void);
1042 
1043 #ifdef __cplusplus
1044 }
1045 #endif /* __cplusplus */
1046 
1057 
1058 #endif /* CDIO_DEVICE_H_ */
CdIo_t * cdio_open_am_nrg(const char *psz_source, const char *psz_access_mode)
Definition: device.h:97
CdIo_t * cdio_open_osx(const char *psz_source)
CdIo_t * cdio_open_am_linux(const char *psz_source, const char *access_mode)
cdio_drive_cap_read_t
Definition: device.h:68
Definition: device.h:95
char ** cdio_get_devices_linux(void)
Common type definitions used pervasively in libcdio.
Definition: device.h:83
const driver_id_t cdio_os_driver
CdIo_t * cdio_open_am_cd(const char *psz_device, const char *psz_access_mode)
Definition: device.h:221
int cdio_fs_anal_t
Definition: types.h:321
char * cdio_get_default_device_solaris(void)
cdio_drive_cap_read_t debug_cdio_drive_cap_read_t
Definition: device.h:226
driver_return_code_t
Definition: device.h:220
Definition: device.h:56
Definition: device.h:57
Definition: device.h:133
CdIo_t * cdio_open_cd(const char *device_name)
CdIo_t * cdio_open_linux(const char *psz_source)
Definition: device.h:90
char * cdio_get_default_device_nrg(void)
Definition: device.h:63
Definition: device.h:168
Definition: device.h:98
int32_t lsn_t
Definition: types.h:265
char * cdio_get_default_device_cdrdao(void)
Definition: device.h:92
Definition: device.h:161
char * cdio_get_default_device_bincue(void)
driver_return_code_t cdio_eject_media(CdIo_t **p_cdio)
Definition: device.h:70
char * cdio_get_default_device_aix(void)
CdIo_t * cdio_open_am_solaris(const char *psz_source, const char *psz_access_mode)
Definition: device.h:153
uint32_t cdio_drive_write_cap_t
Definition: device.h:38
CdIo_t * cdio_open_bincue(const char *psz_cue_name)
char psz_revision[CDIO_MMC_HW_REVISION_LEN+1]
Definition: device.h:127
Definition: device.h:80
CdIo_t * cdio_open_am_bsdi(const char *psz_source, const char *psz_access_mode)
char * cdio_is_binfile(const char *bin_name)
char * cdio_get_default_device_os2(void)
Definition: device.h:135
Definition: device.h:240
Definition: device.h:78
Definition: device.h:163
Definition: device.h:74
uint32_t cdio_drive_read_cap_t
Definition: device.h:37
CdIo_t * cdio_open_cue(const char *cue_name)
Definition: device.h:94
driver_return_code_t cdio_set_speed(const CdIo_t *p_cdio, int i_drive_speed)
struct cdio_hwinfo cdio_hwinfo_t
Structure to return CD vendor, model, and revision-level strings obtained via the INQUIRY command...
CdIo_t * cdio_open(const char *psz_source, driver_id_t driver_id)
int cdio_get_media_changed(CdIo_t *p_cdio)
Definition: device.h:84
Definition: device.h:160
Definition: device.h:93
driver_return_code_t cdio_set_arg(CdIo_t *p_cdio, const char key[], const char value[])
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
Definition: device.h:49
Definition: device.h:171
Definition: device.h:162
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)
char * cdio_is_cuefile(const char *cue_name)
Definition: device.h:117
bool cdio_have_driver(driver_id_t driver_id)
void cdio_destroy(CdIo_t *p_cdio)
bool cdio_is_tocfile(const char *psz_toc)
bool cdio_get_hwinfo(const CdIo_t *p_cdio, cdio_hwinfo_t *p_hw_info)
const driver_id_t cdio_drivers[]
cdio_src_category_mask_t debug_cdio_src_category_mask
Definition: device.h:61
void cdio_free_device_list(char *device_list[])
driver_return_code_t cdio_get_last_session(CdIo_t *p_cdio, lsn_t *i_last_session)
Definition: device.h:82
char * cdio_get_default_device(const CdIo_t *p_cdio)
Definition: device.h:236
Definition: device.h:159
char ** cdio_get_devices_solaris(void)
cdio_mmc_hw_len_t
Definition: device.h:114
Definition: device.h:91
bool cdio_is_device(const char *psz_source, driver_id_t driver_id)
CdIo_t * cdio_open_am_bincue(const char *psz_cue_name, const char *psz_access_mode)
Definition: device.h:172
Definition: device.h:241
char * cdio_get_default_device_bsdi(void)
bool cdio_is_nrg(const char *psz_nrg)
cdio_src_category_mask_t
Definition: device.h:132
const char * cdio_driver_describe(driver_id_t driver_id)
CdIo_t * cdio_open_am_os2(const char *psz_source, const char *psz_access_mode)
bool_3way_t cdio_have_atapi(CdIo_t *p_cdio)
const char * cdio_get_arg(const CdIo_t *p_cdio, const char key[])
Definition: device.h:71
char ** cdio_get_devices(driver_id_t driver_id)
Definition: device.h:227
char ** cdio_get_devices_cdrdao(void)
CdIo_t * cdio_open_os2(const char *psz_source)
The top-level header for libcdio: the CD Input and Control library. Applications include this for any...
char ** cdio_get_devices_bincue(void)
char ** cdio_get_devices_bsdi(void)
char ** cdio_get_devices_os2(void)
Definition: device.h:60
char ** cdio_get_devices_osx(void)
Definition: device.h:48
CdIo_t * cdio_open_am_win32(const char *psz_source, const char *psz_access_mode)
const driver_id_t cdio_device_drivers[]
driver_id_t
Definition: device.h:152
CdIo_t * cdio_open_nrg(const char *psz_source)
Definition: device.h:69
Definition: device.h:156
Definition: device.h:232
Definition: device.h:158
char ** cdio_get_devices_win32(void)
Structure to return CD vendor, model, and revision-level strings obtained via the INQUIRY command...
Definition: device.h:123
CdIo_t * cdio_open_bsdi(const char *psz_source)
CdIo_t * cdio_open_win32(const char *psz_source)
struct _CdIo CdIo_t
Definition: cdio.h:46
CdIo_t * cdio_open_am_freebsd(const char *psz_source, const char *psz_access_mode)
Definition: device.h:75
Definition: device.h:89
Definition: device.h:79
CdIo_t * cdio_open_aix(const char *psz_source)
char * cdio_get_default_device_driver(driver_id_t *p_driver_id)
CdIo_t * cdio_open_am(const char *psz_source, driver_id_t driver_id, const char *psz_access_mode)
CdIo_t * cdio_open_solaris(const char *psz_source)
Definition: device.h:96
Definition: device.h:242
char * cdio_get_default_device_linux(void)
Definition: device.h:157
Definition: device.h:73
Definition: device.h:115
Definition: device.h:81
char psz_model[CDIO_MMC_HW_MODEL_LEN+1]
Definition: device.h:126
CdIo_t * cdio_open_am_osx(const char *psz_source, const char *psz_access_mode)
Definition: device.h:76
Definition: device.h:102
bool_3way_t
Definition: types.h:235
Definition: device.h:58
CdIo_t * cdio_open_freebsd(const char *paz_psz_source)
const char * cdio_get_driver_name(const CdIo_t *p_cdio)
char ** cdio_get_devices_freebsd(void)
Definition: device.h:53
Definition: device.h:77
LIBCDIO_DEPRECATED(static const driver_id_t CDIO_MIN_DRIVER, "please use cdio_drivers")
char ** cdio_get_devices_nrg(void)
CdIo_t * cdio_open_am_aix(const char *psz_source, const char *psz_access_mode)
char ** cdio_get_devices_aix(void)
cdio_drive_cap_write_t
Definition: device.h:88
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)
char * cdio_get_default_device_win32(void)
driver_return_code_t cdio_close_tray(const char *psz_drive, driver_id_t *p_driver_id)
Definition: device.h:62
Definition: device.h:55
cdio_drive_cap_misc_t debug_cdio_drive_cap_misc
char ** cdio_get_devices_ret(driver_id_t *p_driver_id)
char psz_vendor[CDIO_MMC_HW_VENDOR_LEN+1]
Definition: device.h:125
driver_return_code_t cdio_eject_media_drive(const char *psz_drive)
Definition: device.h:244
Definition: device.h:134
driver_id_t cdio_get_driver_id(const CdIo_t *p_cdio)
bool cdio_init(void)
uint32_t cdio_drive_misc_cap_t
Definition: device.h:39
Definition: device.h:165
CdIo_t * cdio_open_cdrdao(const char *psz_toc_name)
driver_return_code_t cdio_set_blocksize(const CdIo_t *p_cdio, int i_blocksize)
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)
Definition: device.h:155
Definition: device.h:72
const char * cdio_driver_errmsg(driver_return_code_t drc)
char ** cdio_get_devices_with_cap(char *ppsz_search_devices[], cdio_fs_anal_t capabilities, bool b_any)
char * cdio_get_default_device_freebsd(void)
cdio_mmc_hw_len_t debug_cdio_mmc_hw_len
CdIo_t * cdio_open_am_cdrdao(const char *psz_toc_name, const char *psz_access_mode)
Definition: device.h:108
cdio_drive_cap_write_t debug_drive_cap_write_t
char * cdio_get_default_device_osx(void)
Definition: device.h:116
Definition: device.h:136

Generated for libcdio by doxygen 1.8.13