Alsa e Gambas: Ricezione con un programma esterno di supporto

Da Gambas-it.org - Wikipedia.

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 >