Differenze tra le versioni di "Audio ed Alsa: apertura del subsistema PCM"
Riga 24: | Riga 24: | ||
In Gambas la funzione ''snd_pcm_open'' per l'apertura del sub-sistema ''PCM'' dovrà essere innanzitutto dichiarata preventivamente con ''Extern'': | In Gambas la funzione ''snd_pcm_open'' per l'apertura del sub-sistema ''PCM'' dovrà essere innanzitutto dichiarata preventivamente con ''Extern'': | ||
Private Extern snd_pcm_open(handleP As Pointer, nome As String, flusso As Integer, 0) As Integer | Private Extern snd_pcm_open(handleP As Pointer, nome As String, flusso As Integer, 0) As Integer | ||
− | e potremo, quindi, in subroutine richiamarla per l'uso: | + | e potremo, quindi, in subroutine richiamarla per l'uso (i nomi dei parametri sono quelli indicati nel paragrafo precedente): |
err = snd_pcm_open(handle, device, SND_PCM_STREAM_PLAYBACK, 0) | err = snd_pcm_open(handle, device, SND_PCM_STREAM_PLAYBACK, 0) |
Versione delle 07:52, 17 giu 2013
Dichiarazione della Libreria di Alsa
Poiché bisognerà utilizzare delle funzioni esterne a Gambas, appartenenti alle API di ALSA, bisognerà innanzitutto individuare la specifica libreria condivisa .so ove tali funzioni sono contenute.
Si dichiarera all'inizio della Classe specifica la libreria di ALSA:
Library "libasound:2"
Apertura del subsistema PCM
L'apertura del sub-sistema PCM nella modalità di Riproduzione audio avviene medinete la specifica delle API di ALSA, così espressa in C:
int snd_pcm_open(snd_pcm_t **pcm, const char *name, snd_pcm_stream_t stream, int mode)
laddove:
- snd_pcm_t **pcm è un puntatore ad un puntatore che rappresenta, quest'ultimo, l'handle necessario per l'apertura del dispositivo PCM.
In Gambas detto handle sarà dichiarato come una variabile di tipo Pointer:
Private handle As Pointer
- const char * name è una stringa che rappresenta il nome identificativo dell'handle del dispositivo PCM, e che potrà essere inizialmente "default":
Private device As String = "default"
- snd_pcm_stream_t stream è un intero che specifica la modalità scelta della direzione del flusso dei dati, in tal caso sarà in modalità Riproduzione audio, ossia valore pari a zero:
Private Const SND_PCM_STREAM_PLAYBACK As Byte = 0
- int mode è la modalità di apertura del sub-sitema PCM. L'impostazione standard del valore mode è zero. Altre modalità sono Non blocking e Async notification.
La funzione restituisce un intero che, se è uguale, a zero significa che l'operazione della funzione ha avuto successo.
Dichiarazione della funzione esterna snd_pcm_open
In Gambas la funzione snd_pcm_open per l'apertura del sub-sistema PCM dovrà essere innanzitutto dichiarata preventivamente con Extern:
Private Extern snd_pcm_open(handleP As Pointer, nome As String, flusso As Integer, 0) As Integer
e potremo, quindi, in subroutine richiamarla per l'uso (i nomi dei parametri sono quelli indicati nel paragrafo precedente):
err = snd_pcm_open(handle, device, SND_PCM_STREAM_PLAYBACK, 0)