[PLUTO-help] informazioni su programmazione e gestione eventi
bite
anonimo.passante a gmail.com
Dom 13 Apr 2008 20:08:35 CEST
2008/4/13, Germano Carella <gcarella a fub.it>:
>
> Dunque, il punto è questo: sono un non vedente e uso i lettori di schermo.
> Benché sotto linux ce ne siano svariati, emacspeak, screader, speakup,
> yasr, non rispondono alle mie esigenze.
> Mi piacerebbe farne uno piu' flessibile, ma soprattutto che possa far uso
> di sintetizzatori vocali un po' piu' moderni, tipo il Viavoice della IBM,
> Espeak open-source etc; ma soprattutto, che non siano dipendenti dalla
> shell, come fa yasr, che se premi alt+f2 e vai su un'alra tty non funziona
> piu'.
>
> Per questo cerco di capire se è possibile intercettare quando arriva del
> testo nuovo sullo schermo oppure quando l'utente preme una combinazione di
> tasti per chiedere al lettore di leggergli il cursore, oppure per attivare
> le impostazioni, od altre cose.
>
> Non è un lavoro semplice, specialmente se non capisco come funziona la
> gestione eventi sotto linux: su windows ci sono gli hooks, che funzionano un
> po' come i vecchi vettori degli interrupt, ad ognuno dei quali è associato
> un handler.
Di windows non so nulla, ma anche per quanto riguarda linux questi sono
dettagli molto specifici che non conosco. Quello che posso dirti è che c'è
sempre un solo processo utente, il foreground, che riceve input dalla
tastiera, ma a te direi che interessa non solo quello che viene battuto
sulla tastiera ma anche e soprattutto quello che compare sullo schermo
proveniendo dall'esterno, ad esempio la risposta del tuo interlocutore in
una chat.
Mi auguro che si faccia vivo qualcuno più esperto di me per darti una
risposta.
Ho visto che sotto linux ci sono i signals, ai quali può essere associato un
> handler, ma non mi sembra che la tastiera e lo schermo rientrino fra questi;
> ma può anche darsi che io mi sbagli, anzi, sicuramente è così.
I signal sono una sorta di interrupt software e servono per gestire eventi
asincroni, in genere errori o richieste di terminazione del programma, non
credo che possano servirti in questo caso.
E' vero che esiste un SIGTTOU che viene inviato ad un processo che cerca di
scrivere sul terminale mentre si trova in background, ma a te interesserebbe
invece sapere quando un altro processo sta scrivendo.
More information about the pluto-help
mailing list