A system for using computer input devices with software applications is
disclosed. The system includes an input device mapper API, which uses a
language of semantics as an interface between input devices and software
applications. The input device mapper receives information about which
semantics the devices connected to the computer are able to implement,
and which semantics correspond to actions that a user can request the
software to perform. The input device mapper maps controls on the
available devices into user-requestable software actions by matching, as
closely as possible, device controls and software actions that correspond
to the same semantic. The system thus makes input devices and software
applications transparent to each other, and permits a software
application to be designed to operate without regard to which input
device is being used to control its actions.