BJoystick¶
A BJoystick
object provides an interface to a joystick (or
other game controller) connected to the computer. The BeOS supports
joysticks on the BeBox and Intel platforms.
The BeBox supports up to four analog joysticks, each of which can have up to two axes and two buttons; digital joysticks aren’t supported by the built-in game ports. You can install a card that provides additional game ports (such as the Sound Blaster AWE64), and use digital joysticks on those ports.
BeOS supports joysticks through game ports on cards, as well as some built-in game ports.
Unlike the event and message-driven interface to the mouse and keyboard,
the interface to a joystick is strictly demand-driven. An application must
repeatedly poll the state of the joystick by calling the
BJoystick
object’s Update()
function.
Update()
queries the port and updates the object’s
data members to reflect the current state of the joystick.
There are two modes available. Standard mode supports only two axes per
joystick, and two buttons per joystick. This mode has been available since
the early days of the BeOS. You read the joystick in standard mode by
looking at the BJoystick
member variables vertical
and horizontal to determine the joystick’s axis values, and
button1 and button2 to determine the state of the
buttons.
Enhanced mode supports up to 32 buttons per joystick, and an indefinite number of axes and hats (thumb controls, usually located at the top of a stick). It also supports multiple joysticks chained to a single game port. Instead of reading variables to determine the state of the joystick, there are several functions provided to let you do this.
In addition, enhanced mode provides a mechanism for determining what joysticks are available and what types of (and how many) controls are available on the joysticks. There’s also a preference application