Differenze tra le versioni di "Ottenere alcune informazioni di un CD con le funzioni del API di libcdaudio"
Da Gambas-it.org - Wikipedia.
Riga 1: | Riga 1: | ||
La libreria '''''Libcdaudio''''' consente il controllo dei CD audio. | 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''" | + | Per utilizzare le funzioni esterne del API di ''libcdaudio'' sarà necessario richiamare l'attuale libreria condivisa: "''libcdaudio.so.1.0.0''" |
Riga 9: | Riga 9: | ||
* numero delle tracce audio presenti; | * numero delle tracce audio presenti; | ||
* durata di ciascuna traccia audio. | * durata di ciascuna traccia audio. | ||
+ | Library "libcdaudio:1.0.0" | ||
+ | |||
Public Struct track_info | Public Struct track_info | ||
track_length_minutes As Integer | track_length_minutes As Integer | ||
Riga 19: | Riga 21: | ||
track_type As Integer | track_type As Integer | ||
End Struct | End Struct | ||
− | |||
Public Struct disco_info | Public Struct disco_info | ||
Riga 38: | Riga 39: | ||
disc_track[100] As Struct Track_info | disc_track[100] As Struct Track_info | ||
End Struct | End Struct | ||
− | |||
− | |||
− | |||
<FONT Color=gray>' ''int cd_init_device(char *device_name)'' | <FONT Color=gray>' ''int cd_init_device(char *device_name)'' | ||
Riga 55: | Riga 53: | ||
− | + | Public Sub Main() | |
− | |||
− | |||
− | |||
− | |||
+ | Dim i As Integer | ||
+ | Dim disco As New Disco_info | ||
+ | Dim b As Byte | ||
− | + | i = cd_init_device("/dev/cdrom") | |
− | If | + | If i < 0 Then Error.Raise("File-device del Drive CD non trovato !") |
− | cd_stat( | + | cd_stat(i, disco) |
If disco.disc_present = 1 Then | If disco.disc_present = 1 Then | ||
Riga 71: | Riga 68: | ||
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 | + | For b = 1 To disco.disc_total_tracks |
− | Print "Durata della traccia n. "; | + | Print "Durata della traccia n. "; b; " = "; disco.disc_track[b - 1].track_length_minutes & "' " & disco.disc_track[b - 1].track_length_seconds & "\"" |
Next | Next | ||
Else | Else | ||
Riga 78: | Riga 75: | ||
Endif | Endif | ||
− | cd_close( | + | cd_close(i) |
− | + | End | |
− | |||
Versione attuale delle 16:52, 4 lug 2024
La libreria Libcdaudio consente il controllo dei CD audio.
Per utilizzare le funzioni esterne del API di libcdaudio sarà necessario richiamare l'attuale libreria condivisa: "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.
Library "libcdaudio:1.0.0" 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 ' 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 i As Integer Dim disco As New Disco_info Dim b As Byte i = cd_init_device("/dev/cdrom") If i < 0 Then Error.Raise("File-device del Drive CD non trovato !") cd_stat(i, 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 b = 1 To disco.disc_total_tracks Print "Durata della traccia n. "; b; " = "; disco.disc_track[b - 1].track_length_minutes & "' " & disco.disc_track[b - 1].track_length_seconds & "\"" Next Else Print "Disco non presente nel lettore CD, oppure, se presente, NON è un CD audio !" Endif cd_close(i) End