Differenze tra le versioni di "Ottenere alcune informazioni di un CD con le funzioni del API di libcdaudio"

Da Gambas-it.org - Wikipedia.
(Creata pagina con 'La libreria '''''Libcdaudio''''' consente il controllo dei CD audio. Per utilizzare le funzioni esterne del API di ''libcdaudio'' sarà necessario richiamare l'attuale librer...')
 
 
(6 versioni intermedie di uno stesso utente non sono mostrate)
Riga 5: Riga 5:
  
 
Mostriamo un semplice codice che consentirà di conoscere le seguenti informazioni:
 
Mostriamo un semplice codice che consentirà di conoscere le seguenti informazioni:
* se nel lettore CD è presente un CD audio;
+
* presenza di un CD audio nel lettore CD;
* la durata del CD audio;
+
* durata del CD audio;
* il numero delle tracce audio presenti.
+
* numero delle tracce audio presenti;
 +
* durata di ciascuna traccia audio.
 +
Public Struct track_info
 +
  track_length_minutes As Integer
 +
  track_length_seconds As Integer
 +
  track_length_frames As Integer
 +
  track_pos_minutes As Integer
 +
  track_pos_seconds As Integer
 +
  track_pos_frames As Integer
 +
  track_lba As Integer
 +
  track_type As Integer
 +
End Struct
 +
 +
 
  Public Struct disco_info
 
  Public Struct disco_info
 
   disc_present As Integer
 
   disc_present As Integer
 
   disc_mode As Integer
 
   disc_mode As Integer
   status_disc_time_minutes As Integer
+
   disc_track_time_minutes As Integer
   status_disc_time_seconds As Integer
+
   disc_track_time_seconds As Integer
   status_disc_time_frames As Integer
+
   disc_track_time_frames As Integer
 
   disc_time_minutes As Integer
 
   disc_time_minutes As Integer
 
   disc_time_seconds As Integer
 
   disc_time_seconds As Integer
Riga 23: Riga 36:
 
   disc_first_track As Integer
 
   disc_first_track As Integer
 
   disc_total_tracks As Integer
 
   disc_total_tracks As Integer
   inutil[200] As Integer
+
   disc_track[100] As Struct Track_info
 
  End Struct
 
  End Struct
 
   
 
   
Riga 46: Riga 59:
 
   Dim d As Integer
 
   Dim d As Integer
 
   Dim disco As New Disco_info
 
   Dim disco As New Disco_info
 +
  Dim t As Byte
 
   
 
   
 
   
 
   
 
   d = cd_init_device("/dev/cdrom")
 
   d = cd_init_device("/dev/cdrom")
   If d < 0 Then Error.Raise("File-Drive CD non trovato !")
+
   If d < 0 Then Error.Raise("File-device del Drive CD non trovato !")  
 
+
 
 
   cd_stat(d, disco)
 
   cd_stat(d, disco)
 
   
 
   
 
   If disco.disc_present = 1 Then
 
   If disco.disc_present = 1 Then
 
     Print "Il lettore CD contiene un disco audio.\n"
 
     Print "Il lettore CD contiene un disco audio.\n"
     Print "Durata del disco: "; disco.disc_length_minutes; "' "; disco.disc_length_seconds; "''"
+
     Print "Durata del disco: "; disco.disc_length_minutes; "' "; disco.disc_length_seconds; "\""
 
     Print "Numero tracce presenti: "; disco.disc_total_tracks
 
     Print "Numero tracce presenti: "; disco.disc_total_tracks
 +
    For t = 1 To disco.disc_total_tracks
 +
      Print "Durata della traccia n. "; t; " =  "; disco.disc_track[t - 1].track_length_minutes & "' " & disco.disc_track[t - 1].track_length_seconds & "\""
 +
    Next
 
   Else
 
   Else
     Print "Il disco contenuto dal lettore NON è un CD audio !"
+
     Print "Disco non presente nel lettore CD, oppure, se presente, NON è un CD audio !"
 
   Endif
 
   Endif
 
   
 
   

Versione attuale delle 18:28, 4 set 2014

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:

  • presenza di un CD audio nel lettore CD;
  • durata del CD audio;
  • numero delle tracce audio presenti;
  • durata di ciascuna traccia audio.
Public Struct track_info 
  track_length_minutes As Integer
  track_length_seconds As Integer
  track_length_frames As Integer
  track_pos_minutes As Integer
  track_pos_seconds As Integer
  track_pos_frames As Integer
  track_lba As Integer
  track_type As Integer
End Struct


Public Struct disco_info
  disc_present As Integer
  disc_mode As Integer
  disc_track_time_minutes As Integer
  disc_track_time_seconds As Integer
  disc_track_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
  disc_track[100] As Struct Track_info
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
 Dim t As Byte


  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
    For t = 1 To disco.disc_total_tracks
      Print "Durata della traccia n. "; t; " =  "; disco.disc_track[t - 1].track_length_minutes & "' " & disco.disc_track[t - 1].track_length_seconds & "\""
    Next
  Else
    Print "Disco non presente nel lettore CD, oppure, se presente, NON è un CD audio !"
  Endif

  cd_close(d)

End



Riferimenti