Differenze tra le versioni di "Ottenere alcune informazioni di un CD con le funzioni del API di libcdaudio"
Da Gambas-it.org - Wikipedia.
Riga 7: | Riga 7: | ||
* se nel lettore CD è presente un CD audio; | * se nel lettore CD è presente un CD audio; | ||
* la durata del CD audio; | * la durata del CD audio; | ||
− | * il numero delle tracce audio presenti. | + | * il 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 | ||
Riga 23: | Riga 36: | ||
disc_first_track As Integer | disc_first_track As Integer | ||
disc_total_tracks As Integer | disc_total_tracks 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 | ||
Riga 56: | Riga 70: | ||
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 "Disco non presente nel lettore CD, oppure, se presente, NON è un CD audio !" | Print "Disco non presente nel lettore CD, oppure, se presente, NON è un CD audio !" |
Versione delle 17:43, 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:
- se nel lettore CD è presente un CD audio;
- la durata del CD audio;
- il 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