Client e Porte: ottenere informazioni da ALSA
E' possibile ottenere da Alsa alcune informazioni di carattere generale riguardo ai Client, alle Porte e ad altro.
Per raccogliere tali informazioni, si adopereranno, ovviamente, diverse funzioni di Alsa.
Dimensione del buffer di uscita degli eventi Midi Alsa
Innanzitutto, possiamo conoscere la dimensione in byte del buffer di uscita degli eventi Midi Alsa con la seguente funzione:
size_t snd_seq_get_output_buffer_size(snd_seq_t * seq)
che dichiareremo in Gambas nel modo seguente:
Private Extern snd_seq_get_output_buffer_size(seq As Pointer) As Integer
Tale funzione esterna ritorna un intero che è appunto la dimensione in byte del buffer.
Dimensione del buffer di entrata degli eventi Midi Alsa
size_t snd_seq_get_input_buffer_size(snd_seq_t * seq)
che dichiareremo in Gambas nel modo seguente:
Private Extern snd_seq_get_input_buffer_size(seq As Pointer) As Integer
Tale funzione esterna ritorna un intero che è appunto la dimensione in byte del buffer.
Informazioni generali su Client, Porte ed altro
Si potranno ottenere altre informazioni generali, ma bisognerà raccoglierle da Alsa innanzitutto richiamando la funzione esterna
int snd_seq_system_info(snd_seq_t * seq, snd_seq_system_info_t * info)
laddove in particolare la variabile info è un puntatore ad una Struttura. Utilizzeremo, dunque, anche noi una Struttura, formata da 6 elementi tutti di tipo Integer. Dichiareremo in Gambas questa funzione esterna nel modo seguente:
' Ovviamente avremo dapprima dichiarato anche una "Struttura" (che qui chiameremo "numStrutt") ' ed una corrispondente variabile (che chiameremo "nm") del tipo di quella "Struttura" Private Extern snd_seq_system_info(seq As Pointer, info As numStrutt) As Integer
Tale funzione esterna ritorna un intero che se è uguale a zero la chiamata ha avuto successo.
Come già detto, con questa funzione si ottengono informazioni di sistema del sequencer di Alsa.
Pagina in costruzione !