GetJoystick

Reads buttons and axis information from attached gaming devices

Syntax
	KeyPgDeclareDeclare KeyPgFunctionFunction GetJoystick ( KeyPgByvalByVal id KeyPgAsAs KeyPgLongLong, KeyPgByrefByRef buttons KeyPgAsAs KeyPgIntegerInteger
	= 0, KeyPgByrefByRef a1 KeyPgAsAs KeyPgSingleSingle = 0, KeyPgByrefByRef a2 KeyPgAsAs KeyPgSingleSingle = 0, KeyPgByrefByRef a3 KeyPgAsAs KeyPgSingleSingle 
	= 0, KeyPgByrefByRef a4 KeyPgAsAs KeyPgSingleSingle = 0, KeyPgByrefByRef a5 KeyPgAsAs KeyPgSingleSingle = 0, KeyPgByrefByRef a6 KeyPgAsAs KeyPgSingleSingle 
	= 0, KeyPgByrefByRef a7 KeyPgAsAs KeyPgSingleSingle = 0, KeyPgByrefByRef a8 KeyPgAsAs KeyPgSingleSingle = 0 ) KeyPgAsAs KeyPgLongLong

Usage
	result = GetJoystick( id[, buttons[, a1[, a2[, a3[, a4[, a5[, a6[, a7[, 
	a8]]]]]]]]] )

Parameters
	id
		the device id number (0 - 15)
	buttons
		the button status
	a1
		first axis value
	a2
		second axis value
	a3
		third axis value
	a4
		fourth axis value
	a5
		fifth axis value
	a6
		sixth axis value
	a7
		seventh axis value
	a8
		eighth axis value

Return Value
	0 on success or 1 on failure.  All of the axis positions are returned in 
	floating point format.

Description
	GetJoystick will retrieves the button state, and the axis positions for 
	up to 8 axes, for the joystick determined by id, a number between 0 and 
	15. Buttons are stored in a similar manner to KeyPgGetmouseGetMouse, with each bit in 
	buttons representing a button.

	A single precision value between -1.0 and 1.0 is returned for each valid 
	axis.  If the axis does not exist for the controller, a value of 
	-1000.00 is returned.

	GetJoystick will return 0 upon successful completion; It will return 1 
	upon failure. Failure can be caused by specifying an illegal joystick 
	number, specifying a joystick which doesn't exist, or a failure in the 
	joystick API.

	The error code returned by GetJoystick can be checked using KeyPgErrErr in the 
	next line. The function version of  Getjoystick returns directly the 
	error code as a 32 bit KeyPgLongLong.

Example
	Screen 12

	Dim x As Single
	Dim y As Single
	Dim buttons As Integer
	Dim result As Long
	Dim a As Integer

	Const JoystickID = 0

	'This line checks to see if the joystick is ok.

	If GetJoystick(JoystickID,buttons,x,y) Then 
	   Print "Joystick doesn't exist or joystick error."
	   Print
	   Print "Press any key to continue."
	   Sleep
	   End
	End If

	Do
	   result = GetJoystick(JoystickID,buttons,x,y)

	   Locate 1,1
	   Print ;"result:";result;" x:" ;x;" y:";y;" Buttons:";buttons,"","",""
	   
	   'This tests to see which buttons from 1 to 27 are pressed. 
	   For a = 0 To 26 
	      If (buttons And (1 Shl a)) Then 
	         Print "Button ";a;" pressed.    "
	      Else 
	         Print "Button ";a;" not pressed."
	      End If
	   Next a
	Loop

Dialect Differences
	* Not available in the CompilerOptlang-lang qb dialect unless referenced with the 
	  alias __Getjoystick.

Differences from QB
	* New to FreeBASIC

See also
	* KeyPgScreengraphicsScreen (Graphics)
	* KeyPgSetmouseSetMouse
	* KeyPgGetmouseGetMouse
	* KeyPgMultikeyMultiKey
	* KeyPgEventEvent
	* KeyPgScreeneventScreenEvent

