GetJoystick

Reads buttons and axis information from attached gaming devices

Syntax
   Declare Function GetJoystick ( ByVal id As Long, ByRef buttons As Integer
   = 0, ByRef a1 As Single = 0, ByRef a2 As Single = 0, ByRef a3 As Single 
   = 0, ByRef a4 As Single = 0, ByRef a5 As Single = 0, ByRef a6 As Single 
   = 0, ByRef a7 As Single = 0, ByRef a8 As Single = 0 ) As 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 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 Err in the 
   next line. The function version of  Getjoystick returns directly the 
   error code as a 32 bit 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 -lang qb dialect unless referenced with the 
     alias __Getjoystick.

Differences from QB
   * New to FreeBASIC

See also
   * Screen (Graphics)
   * SetMouse
   * GetMouse
   * MultiKey
   * Event
   * ScreenEvent

