Differenze tra le versioni di "Alsa e Gambas: Ricezione con un programma esterno di supporto"

Da Gambas-it.org - Wikipedia.
Riga 1: Riga 1:
 
Procederemo, ora, a mostrare un secondo metodo, che fa uso di una ''pipe'' da un programma esterno, scritto in linguaggio C, con il quale evitare ogni possibile evidente latenza. Questa soluzione è allo stato attuale l'unico modo corretto di inserire nel ''message loop'' i messaggi Midi che ci interessano.
 
Procederemo, ora, a mostrare un secondo metodo, che fa uso di una ''pipe'' da un programma esterno, scritto in linguaggio C, con il quale evitare ogni possibile evidente latenza. Questa soluzione è allo stato attuale l'unico modo corretto di inserire nel ''message loop'' i messaggi Midi che ci interessano.
 +
<BR>Tale soluzione si rende necessaria, poiché con ALSA il meccanismo usato solitamente è di controllare gli eventi dal ''device'' Midi nel ''Main Message Loop'', basato sulle funzioni ''poll()'' e ''select()''. ALSA, però, non viene letto come se fosse un ''file'', e quindi uno ''stream'' di Gambas non è in grado di sollevare un evento, tipo ''stream_Read()'', usando la funzione ''poll()'' che in breve ci dice se c'è qualche dato da leggere. I descrittori dei file, dunque, sono ottenuti da ALSA, e successivamente viene utilizzata la chiamata alla funzione ''poll()'' per vedere se c'è quealcosa da leggere: più precisamente si chiede al sistema di controllare tutti i ''file descriptors''.
 +
<P>Ad ogni modo, purtroppo, tale procedura non è possibile integrarla nell'''event loop'' di Gambas.</p>
  
  
 
< '''Pagina in costruzione''' >
 
< '''Pagina in costruzione''' >

Versione delle 14:56, 15 set 2011

Procederemo, ora, a mostrare un secondo metodo, che fa uso di una pipe da un programma esterno, scritto in linguaggio C, con il quale evitare ogni possibile evidente latenza. Questa soluzione è allo stato attuale l'unico modo corretto di inserire nel message loop i messaggi Midi che ci interessano.
Tale soluzione si rende necessaria, poiché con ALSA il meccanismo usato solitamente è di controllare gli eventi dal device Midi nel Main Message Loop, basato sulle funzioni poll() e select(). ALSA, però, non viene letto come se fosse un file, e quindi uno stream di Gambas non è in grado di sollevare un evento, tipo stream_Read(), usando la funzione poll() che in breve ci dice se c'è qualche dato da leggere. I descrittori dei file, dunque, sono ottenuti da ALSA, e successivamente viene utilizzata la chiamata alla funzione poll() per vedere se c'è quealcosa da leggere: più precisamente si chiede al sistema di controllare tutti i file descriptors.

Ad ogni modo, purtroppo, tale procedura non è possibile integrarla nell'event loop di Gambas.


< Pagina in costruzione >