RestrictKeysForKbCheck

>Psychtoolbox>PsychBasic

Restrict operation of KbCheck et al. to a subset of keys on the keyboard.

oldenablekeys = RestrictKeysForKbCheck([enablekeys])

Specify a vector of keycodes for keys which should be
checked/used by KbCheck and KbWait. This is useful to
only enable specific keys, e.g., to save time. The function
returns the old set of enabled keys.

Example: To enable the keys with keycodes 4, 6 and 7, do
RestrictKeysForKbCheck([4, 6, 7]);

Calling RestrictKeysForKbCheck([]); ie., with an empty vector, will
re-enable all keys.

Caution: This setting is reset to “empty” during a “clear all” command,
ie., all keys will be enabled again after a “clear all”!

Background info:

Some users of Laptops experienced the problem of “stuck keys”: Some keys
are always reported as “down”, so KbWait returns immediately and KbCheck
always reports keyIsDown == 1. This is often due to special function keys.
These keys or system functionality are assigned vendor specific
key codes, e.g., the status of the Laptop lid (opened/closed) could be
reported by some special keycode. Whenever the Laptop lid is open, this key
will be reported as pressed. You can work around this problem by passing
a subset of keycodes to be used by KbCheck and KbWait, whereas all other
unwanted keys are ignored.

Another advantage is a significant speed gain for KbCheck et al. on
MacOS/X systems, where the execution time of KbChecks is proportional to
the number of keys to check.
_________________________________________________________________________

See also: FlushEvents, KbName, KbDemo, KbWait, KbCheck, GetChar, CharAvail.

Path   Retrieve current version from GitHub | View changelog
Psychtoolbox/PsychBasic/RestrictKeysForKbCheck.m