Differenze tra le versioni di "Sapere con le funzioni del API di libcdio se nel lettore CD/DVD è presente già un disco"
Da Gambas-it.org - Wikipedia.
Riga 40: | Riga 40: | ||
Else | Else | ||
Print "E' già presente un disco nel lettore CD-DVD." | Print "E' già presente un disco nel lettore CD-DVD." | ||
− | |||
Endif | Endif | ||
Versione delle 07:01, 17 set 2015
E' possibile sapere se in un lettore CD/DVD è presente o meno un disco mediante le risorse esterne del API di
Per utilizzare le funzioni esterne del API di libcdio sarà necessario richiamare la libreria dinamica condivisa: "libcdio.so.13.0.0".
Mostriamo un esempio:
Library "libcdio:13.0.0" Private Enum DRIVER_UNKNOWN = 0, DRIVER_AIX, DRIVER_BSDI, DRIVER_FREEBSD, DRIVER_NETBSD, DRIVER_LINUX, DRIVER_SOLARIS, DRIVER_OS2, DRIVER_OSX, DRIVER_WIN32, DRIVER_CDRDAO, DRIVER_BINCUE, DRIVER_NRG, DRIVER_DEVICE Private Const CDIO_DISC_MODE_ERROR As Integer = 17 ' CdIo_t * cdio_open (const char *psz_source, driver_id_t driver_id) ' Sets up to read from place specified by psz_source and driver_id. Private Extern cdio_open(psz_source As String, driver_id As Integer) As Pointer ' discmode_t cdio_get_discmode (CdIo_t *p_cdio) ' Get disc mode - the kind of CD (CD-DA, CD-ROM mode 1, CD-MIXED, etc. that we've got. Private Extern cdio_get_discmode(cdioP As Pointer) As Integer ' void cdio_destroy(CdIo_t * p_cdio) ' Free any resources associated with p_cdio. Private Extern cdio_destroy(cdioP As Pointer) Public Sub Main() Dim p_cdio As Pointer p_cdio = cdio_open(Null, DRIVER_UNKNOWN) If IsNull(p_cdio) Then Error.Raise("Impossibile trovare il file-device del driver CD/DVD !") ' Verifica se nel lettore CD-DVD è presente un disco: If cdio_get_discmode(p_cdio) = CDIO_DISC_MODE_ERROR Then Print "Non è presente nel lettore CD-DVD alcun disco !" Else Print "E' già presente un disco nel lettore CD-DVD." Endif ' Va in chiusura: cdio_destroy(p_cdio) End