Differenze tra le versioni di "Client e Porte: ottenere informazioni da ALSA"

Da Gambas-it.org - Wikipedia.
 
Riga 1: Riga 1:
Oltre alle informazioni sulla connessione ad Alsa e sui numeri identificativi del nostro ''Client'' e delle sue Porte, viste nella [[Alsa_e_Gambas:_Client_e_porte_in_Invio_dati|precedente pagina]], è possibile ottenere da Alsa alcune altre informazioni di carattere generale riguardo ai Client, alle Porte e ad altro.
+
#REDIRECT [[Alsa_e_Gambas:_Ottenere_informazioni_da_ALSA]]
 
 
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:
 
<FONT color=#B22222>Private Extern snd_seq_get_output_buffer_size(seq As Pointer) As Integer</font>
 
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:
 
<FONT color=#B22222>Private Extern snd_seq_get_input_buffer_size(seq As Pointer) As Integer</font>
 
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:
 
<FONT color=#006400>' ''Ovviamente avremo dapprima dichiarato anche una "Struttura" (che qui chiameremo "infStrutt")''
 
' ''ed una corrispondente variabile (che chiameremo "info" e che ritroveremo nei paragrafi seguenti di questa pagina) del tipo di quella "Struttura"''</font>
 
 
<FONT color=#B22222>Private Extern snd_seq_system_info(seq As Pointer, info As infStrutt) As Integer</font>
 
Tale funzione esterna ritorna un intero che se è uguale a zero la chiamata ha avuto successo.
 
<BR>Come già detto, con questa funzione si ottengono informazioni di sistema del sequencer di Alsa.
 
 
 
 
 
===Numero massimo di Canali===
 
int snd_seq_system_info_get_channels(snd_seq_system_info_t * info)
 
che dichiareremo in Gambas nel modo seguente:
 
<FONT color=#B22222>Private Extern snd_seq_system_info_get_channels(info As infStrutt) As Integer</font>
 
Tale funzione esterna ritorna il numero massimo di canali disponibili.
 
 
 
 
 
===Numero massimo di ''Client''===
 
int snd_seq_system_info_get_clients(snd_seq_system_info_t * info)
 
che dichiareremo in Gambas nel modo seguente:
 
<FONT color=#B22222>Private Extern snd_seq_system_info_get_clients(info As infStrutt) As Integer</font>
 
Tale funzione esterna ritorna il numero massimo di ''Client'' creabili.
 
 
 
 
 
===Numero massimo di Porte===
 
int snd_seq_system_info_get_ports(snd_seq_system_info_t * info)
 
che dichiareremo in Gambas nel modo seguente:
 
<FONT color=#B22222>Private Extern snd_seq_system_info_get_ports(info As infStrutt) As Integer</font>
 
Tale funzione esterna ritorna il numero massimo di porte creabili.
 
 
 
 
 
===Numero attuale di ''Client'' creati===
 
int snd_seq_system_info_get_cur_clients(snd_seq_system_info_t * info)
 
che dichiareremo in Gambas nel modo seguente:
 
<FONT color=#B22222>Private Extern snd_seq_system_info_get_cur_clients(info As infStrutt) As Integer</font>
 
Tale funzione esterna ritorna il numero di ''Client'' di Alsa in quel momento creati ed attivi.
 
 
 
 
 
===Numero massimo di ''code'' creabili===
 
int snd_seq_system_info_get_queues(snd_seq_system_info_t * info)
 
che dichiareremo in Gambas nel modo seguente:
 
<FONT color=#B22222>Private Extern snd_seq_system_info_get_queues(info As infStrutt) As Integer</font>
 
Tale funzione esterna ritorna il numero massimo di ''code'' (''queue'') di eventi Midi Alsa creabili.
 
 
 
 
 
===Numero attuale di ''code'' di eventi Midi Alsa create===
 
int snd_seq_system_info_get_cur_queues(snd_seq_system_info_t * info)
 
che dichiareremo in Gambas nel modo seguente:
 
<FONT color=#B22222>Private Extern snd_seq_system_info_get_cur_queues(info As infStrutt) As Integer</font>
 
Tale funzione esterna ritorna il numero di ''code'' di eventi Midi Alsa in quel momento create.
 
 
 
 
 
===Dimensione del contenitore delle informazioni===
 
size_t snd_seq_system_info_sizeof(void)
 
che dichiareremo in Gambas nel modo seguente:
 
<FONT color=#B22222>Private Extern snd_seq_system_info_sizeof() As Integer</font>
 
Tale funzione esterna ritorna un intero che è appunto la dimensione in byte del contenitore delle informazioni raccolte.
 
 
 
 
 
===Alternativa alle funzioni esterne===
 
In alternativa all'uso di queste funzioni esterne, è possibile - mediante la gestione della variabile del tipo della ''Struttura'' dichiarata - richiamare i vari membri della ''Struttura'' medesima contenenti i diversi valori sopra esposti.
 

Versione attuale delle 09:31, 12 gen 2022