Ottenere alcune informazioni di un CD con le funzioni del API di libcdaudio

Da Gambas-it.org - Wikipedia.

La libreria Libcdaudio consente il controllo dei CD audio.

Per utilizzare le funzioni esterne del API di libcdaudio sarà necessario richiamare l'attuale libreria: "libcdaudio.so.1.0.0"


Mostriamo un semplice codice che consentirà di conoscere le seguenti informazioni:

  • se nel lettore CD è presente un CD audio;
  • la durata del CD audio;
  • il numero delle tracce audio presenti.
Public Struct disco_info
  disc_present As Integer
  disc_mode As Integer
  status_disc_time_minutes As Integer
  status_disc_time_seconds As Integer
  status_disc_time_frames As Integer
  disc_time_minutes As Integer
  disc_time_seconds As Integer
  disc_time_frames As Integer
  disc_length_minutes As Integer
  disc_length_seconds As Integer
  disc_length_frames As Integer
  disc_current_track As Integer
  disc_first_track As Integer
  disc_total_tracks As Integer
  inutil[200] As Integer
End Struct


Library "libcdaudio:1.0.0"

' int cd_init_device(char *device_name)
' Inizializza la libreria 'libcdaudio'.
Private Extern cd_init_device(device_name As String) As Integer

' int cd_stat(int cd_desc, struct disc_info *disc)
' Ottiene informazioni generali sul CD inserito.
Private Extern cd_stat(cd_desc As Integer, disc_Str As Disco_info) As Integer

' int cd_close(int cd_desc)
' Chiude la libreria.
Private Extern cd_close(cd_desc As Integer) As Integer


Public Sub Main()

 Dim d As Integer
 Dim disco As New Disco_info


  d = cd_init_device("/dev/cdrom")
  If d < 0 Then Error.Raise("File-device del Drive CD non trovato !") 
  cd_stat(d, disco)

  If disco.disc_present = 1 Then
    Print "Il lettore CD contiene un disco audio.\n"
    Print "Durata del disco: "; disco.disc_length_minutes; "' "; disco.disc_length_seconds; ""
    Print "Numero tracce presenti: "; disco.disc_total_tracks
  Else
    Print "Disco non presente nel lettore CD, oppure, se presente, NON è un CD audio !"
  Endif

  cd_close(d)

End



Riferimenti