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

Da Gambas-it.org - Wikipedia.
Riga 24: Riga 24:
 
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.
 
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:
 
Dichiareremo in Gambas questa funzione esterna nel modo seguente:
  <FONT color=#006400>' ''Ovviamente avremo dapprima dichiarato anche una "Struttura" (che qui chiameremo "numStrutt")''
+
  <FONT color=#006400>' ''Ovviamente avremo dapprima dichiarato anche una "Struttura" (che qui chiameremo "infStrutt")''
  ' ''ed una corrispondente variabile (che chiameremo "nm") del tipo di quella "Struttura"''</font>
+
  ' ''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 numStrutt) As Integer</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.
 
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.
 
<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.
 +
  
  
 
<FONT color=red><B>Pagina in costruzione !</b></font>
 
<FONT color=red><B>Pagina in costruzione !</b></font>

Versione delle 12:04, 14 giu 2013

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 "infStrutt")
' ed una corrispondente variabile (che chiameremo "info" e che ritroveremo nei paragrafi seguenti di questa pagina) del tipo di quella "Struttura"

Private Extern snd_seq_system_info(seq As Pointer, info As infStrutt) 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.


Numero massimo di Canali

int snd_seq_system_info_get_channels(snd_seq_system_info_t * info)

che dichiareremo in Gambas nel modo seguente:

Private Extern snd_seq_system_info_get_channels(info As infStrutt) As Integer

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:

Private Extern snd_seq_system_info_get_clients(info As infStrutt) As Integer

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:

Private Extern snd_seq_system_info_get_ports(info As infStrutt) As Integer

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:

Private Extern snd_seq_system_info_get_cur_clients(info As infStrutt) As Integer

Tale funzione esterna ritorna il numero di Client di Alsa in quel momento creati ed attivi.


Pagina in costruzione !