| Re: Asynchronous keyboard callbacks (was: [AD] Proposal for an input model) |
[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]
I wrote:
>> al_register_keyboard_callback(void(*)(int));
>> al_register_scancode_callback(void (*)(int));
In reply to Eric Botcazou <ebotcazou@xxxxxxxxxx>:
>Do these functions detect key releases ?
The scancode callback detects releases, but the unicode one doesn't.
This mirrors the simple polling functions. (Obviously, if you can think
of better semantics, let me know).
>> On Linux, this would be fairly difficult; the very simple polling system
>> would need to be unhooked, and a different subsystem (operating in its
>> own thread) would be installed and have to emulate the current system.
>
>Why fairly difficult ?
Because:
1/. We need to provide a mechanism for unhooking one subsystem and
installing another; this cannot simply be another driver, because
it needs to kick in when the user registers a callback.
2/. The driver implementation is non-trivial, since it not only has to
call the callbacks (which will therefore be called from a different
thread, and the user needs to be aware of this), but it also has to
emulate the simple polling driver by maintaining an event queue.
3/. If pthreads aren't available (does this ever happen?), there is
some more messing about with SIGALRM or whatever.
>> Hmm. It would be simpler, solving both your questions, if we provide our
>> own thread API, but should we really do that?
>
>I personally don't think so.
Oh well ;-) That's another question for another time entirely.
Bye for now,
--
Laurence Withers, lwithers@xxxxxxxxxx
http://www.lwithers.demon.co.uk/
Attachment:
signature.asc
Description: PGP signature
| Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |