Clients must now request keys using either client_add_key or screen_add_key
to receive key events. If a screen is active (on the display) and it
has registered a key with "screen_add_key" it will be the only client
to get that key. If the current screen doesn't want the key, it will
be sent to all clients that have registered that key using "client_add_key".
If you want to define a "hot button" for your client, you should probably
register that "hot key" with "client_add_key" and then list the keys that
control your client with "screen_add_key" on each screen. If you don't
have a "hot key", then just register keys with "screen_add_key" and you'll
get keystrokes only when your screen is active.
Also fixed some formatting (spaces versus tabs) in a couple of places.
Fixed lots of small problems in various places.
Added new protocol commands screen_add/del_key so screens
can request keystrokes when they are being displayed.
Lots of work on CPU GRAPH and BIG NUMBER CLOCK screens.
Fixed 'output' function in MtxOrb.c
- bugfixes for display != MatrixOrb LCD
- changes the meaning of output_state
+ it's now a bitfield where evry bit corresponds to
one output
- protocol change
output on|off|value
where on = all outputs on
off = all outputs off
value = output on for all 1 bits
- changes the behavior for key presses
Keypresses are now deliverd to _all_ clients (not only
the one with the active screen)
reason: I have an client which is only active a few seconds after
an keypress
- changes the protocol so that a response is sent for every
command
reason: the client needs to communicate with the server with a
minimal latency
Passed *every* piece of source in this project through indent. I'm setting
things up with ctags soon and am actually going to *gasp* use a nice
programming environment to continue development in. :)