Code archives/User Input/xinput device test

This code has been declared by its author to be Public Domain code.

Download source code

xinput device test by bloos_magoos2013
This uses code from xtremegamr, and adds a nice interface to graphically show input from your xbox controller. Use it to see if your controller is being detected by blitz.
;Xbox 360 Controller Library
;Programmed by xtremegamr

;All Functions have X360_ before them


Graphics 1024,768,0,2
AppTitle "Xinput Demo by bloos_magoos"

While Not KeyHit(1)
	Cls
	
	;Test left stick
	Text 0,120,"Left Stick X - "+Int(X360_LeftStickX(0))
	Text 0,130,"Left Stick Y - " + Int(X360_LeftStickY(0))
	Oval 0,0,100,100,0
	Oval 50+X360_LeftStickX(0)*50,50+X360_LeftStickY(0)*50,1,1,1
	
	;Right
	Text 200,120,"Right Stick X - "+Int(X360_RightStickX(0))
	Text 200,130,"Right Stick Y - " + Int(X360_RightStickY(0))
	Oval 100,0,100,100,0
	Oval 150+X360_RightStickX(0)/4,50+X360_RightStickY(0)/4,1,1,1
	
	Text 300,50,"<--- LOL (.)(.)"
	Text 300,60,"Right Analog Stick Graphic is not exact because the function returns a 180 instead of 1"
	Line 0,180,1024,180 ;separator
	;/\/\/\/\/\/\/\
	;testing triggers
	;right
	Rect 50,200,50,10,0
	Rect 50,200,50,Int(-X360_ReturnTrigger(0)*10),1
	;Left
	Rect 0,200,50,10,0
	Rect 0,200,50,Int(X360_ReturnTrigger(0)*10),1
	
	
	
	
	Text 0,230,"NOTICE - - Pressing both triggers makes trigger axis return zero :("
	Text 0,240,"  This is because the triggers are read as one axis, so pressing both adds 1+ -1 (which is zero.)"
	Text 0,250,"  If anybody knows how to fix this, lemme know"
	Text 0,270,"Trigger Axis ->" +Int(X360_ReturnTrigger(0))
	Line 0,300,1024,300 ;separator
	;/\/\/\/\/\/\/\/\
	;Buttons
	
	
	If Not X360_AButtonDown(0)
		Text 0,310,"A"
		Else Text 0,310,">>A<<"
	EndIf
	
	
	If Not X360_BButtonDown(0)
		Text 0,320,"B"
		Else Text 0,320,">>B<<"
	EndIf
	
	If Not X360_XButtonDown(0)
		Text 0,330,"X"
		Else Text 0,330,">>X<<"
	EndIf
	
	If Not X360_YButtonDown(0)
		Text 0,340,"Y"
		Else Text 0,340,">>Y<<"
	EndIf
	
	If Not X360_RBButtonDown(0)
		Text 0,360,"Right Bumper"
		Else Text 0,360,">>Right Bumper<<"
	EndIf
	
	If Not X360_LBButtonDown(0)
		Text 0,370,"Left Bumper"
		Else Text 0,370,">>Left Bumper<<"
	EndIf
	
	If Not X360_LStickButtonDown(0)
		Text 0,390,"Left Stick"
		Else Text 0,390,">>Left Stick<<"
	EndIf
	
	If Not X360_RStickButtonDown(0)
		Text 0,400,"Right Stick"
		Else Text 0,400,">>Right Stick<<"
	EndIf
	
	If Not X360_StartButtonDown(0)
		Text 0,420,"Start"
		Else Text 0,420,">>Start<<"
	EndIf
	
	If Not X360_BackButtonDown(0)
		Text 0,430,"Back"
		Else Text 0,430,">>Back<<"
	EndIf
	
	Line 0,450,1024,450 ;separator
	;/\/\/\/\/\/\/\/\/\/\/\/\
	;Dpad
	dir=X360_DPadDir(0)
	
	Text 0,500,"D-PAD"
	If dir=1 
		Text 0,520,"^ up"
	EndIf
	
	If dir=2
		Text 0,520,"^ + > up+right"
	EndIf
	
	If dir=3
		Text 0,520,"> right"
	EndIf
	
	If dir=4
		Text 0,520,"v + > down+right"
	EndIf
	
	If dir=5
		Text 0,520,"v down"
	EndIf
	
	If dir=6
		Text 0,520,"v + < down+left"
	EndIf
	
	If dir=7
		Text 0,520,"< left"
	EndIf
	
	If dir=8
		Text 0,520,"^ + < up+left"
	EndIf
	
	If dir=0
		Text 0,520," - - "
	EndIf
	
	If dir=-1
		RuntimeError "Something happened I guess"
	EndIf
		
	
	
	
	
	
	Flip
Wend


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;LeftStickX#()
;returns the x position of the Left Stick
Function X360_LeftStickX#(port)
	
	If port=-1 Then
		returnvalue#=JoyX()
	Else
		returnvalue#=JoyX(port)
	End If
	
	Return returnvalue#
	
End Function

;LeftStickY#()
;returns the y position of the Left Stick
Function X360_LeftStickY#(port)
	
	If port=-1 Then
		returnvalue#=JoyY()
	Else
		returnvalue#=JoyY(port)
	End If
	
	Return returnvalue#
	
End Function

;LeftStickXDir()
;returns the x direction of the Left Stick
Function X360_LeftStickXDir(port)
	
	If port=-1 Then
		returnvalue=JoyXDir()
	Else
		returnvalue=JoyXDir(port)
	End If
	
	Return returnvalue
	
End Function

;LeftStickYDir()
;return the y direction of the Left Stick
Function X360_LeftStickYDir(port)
	
	If port=-1 Then
		returnvalue=JoyYDir()
	Else
		returnvalue=JoyYDir(port)
	End If
	
	Return returnvalue
	
End Function

;RightStickX#()
;returns the x position of the Right Stick
Function X360_RightStickX#(port)
	
	If port=-1 Then
		returnvalue=JoyPitch()
	Else
		returnvalue=JoyPitch(port)
	End If
	
	Return returnvalue
	
End Function

;RightStickY#()
;returns the y position of the Right Stick
Function X360_RightStickY#(port)
	
	If port=-1 Then
		returnvalue=JoyYaw()
	Else
		returnvalue=JoyYaw(port)
	End If
	
	Return returnvalue
	
End Function

;RightStickXDir#()
;returns the x direction of the Right Stick
Function X360_RightStickXDir(neutral,port)
	
	If port=-1 Then
		If JoyPitch()<neutral Then returnvalue=-1
		If JoyPitch()>neutral Then returnvalue=1
	Else
		If JoyPitch(port)<neutral Then returnvalue=-1
		If JoyPitch(port)>neutral Then returnvalue=1
	End If
	
	Return returnvalue
	
End Function

;RightStickYDir#()
;returns the y direction of the Right Stick
Function X360_RightStickYDir(neutral,port)
	
	If port=-1 Then
		If JoyYaw()<neutral Then returnvalue=-1
		If JoyYaw()>neutral Then returnvalue=1
	Else
		If JoyYaw(port)<neutral Then returnvalue=-1
		If JoyYaw(port)>neutral Then returnvalue=1
	End If
	
	Return returnvalue
	
End Function

;ReturnTrigger#()
;returns trigger value (joyz)
Function X360_ReturnTrigger#(port)
	
	If port=-1 Then
		returnvalue#=JoyZ()
	Else
		returnvalue#=JoyZ(port)
	End If
	
	Return returnvalue#
	
End Function

;TriggerDown()
;returns the value of the current trigger that is down
Function X360_TriggerDown(port)
	
	If port=-1 Then
		z=JoyZDir()
	Else
		z=JoyZDir(port)
	End If
	
;return
	Return z
	
End Function

;AButtonHit()
;returns true is the a button was hit
Function X360_AButtonHit(port)
	
	If port=-1 Then
		If JoyHit(1) Then Return True
	Else
		If JoyHit(1,port) Then Return True
	End If
	
	Return False
	
End Function

;BButtonHit()
;returns true is the b button was hit
Function X360_BButtonHit(port)
	
	If port=-1 Then
		If JoyHit(2) Then Return True
	Else
		If JoyHit(2,port) Then Return True
	End If
	
	Return False
	
End Function

;YButtonHit()
;returns true is the y button was hit
Function X360_YButtonHit(port)
	
	If port=-1 Then
		If JoyHit(4) Then Return True
	Else
		If JoyHit(4,port) Then Return True
	End If
	
	Return False
	
End Function

;XButtonHit()
;returns true is the x button was hit
Function X360_XButtonHit(port)
	
	If port=-1 Then
		If JoyHit(3) Then Return True
	Else
		If JoyHit(3,port) Then Return True
	End If
	
	Return False
	
End Function

;RBButtonHit()
;returns true is the rbumper was hit
Function X360_RBButtonHit(port)
	
	If port=-1 Then
		If JoyHit(6) Then Return True
	Else
		If JoyHit(6,port) Then Return True
	End If
	
	Return False
	
End Function

;LBButtonHit()
;returns true is the lbumper was hit
Function X360_LBButtonHit(port)
	
	If port=-1 Then
		If JoyHit(5) Then Return True
	Else
		If JoyHit(5,port) Then Return True
	End If
	
	Return False
	
End Function

;StartButtonHit()
;returns true is the start button was hit
Function X360_StartButtonHit(port)
	
	If port=-1 Then
		If JoyHit(8) Then Return True
	Else
		If JoyHit(8,port) Then Return True
	End If
	
	Return False
	
End Function

;BackButtonHit()
;returns true is the x button was hit
Function X360_BackButtonHit(port)
	
	If port=-1 Then
		If JoyHit(7) Then Return True
	Else
		If JoyHit(7,port) Then Return True
	End If
	
	Return False
	
End Function

;LStickButtonHit()
;returns true is the left stick pressed in (hit)
Function X360_LStickButtonHit(port)
	
	If port=-1 Then
		If JoyHit(9) Then Return True
	Else
		If JoyHit(9,port) Then Return True
	End If
	
	Return False
	
End Function

;RStickButtonHit()
;returns true is the right stick pressed in (hit)
Function X360_RStickButtonHit(port)
	
	If port=-1 Then
		If JoyHit(10) Then Return True
	Else
		If JoyHit(10,port) Then Return True
	End If
	
	Return False
	
End Function

;AButtonDown()
;returns true is the a button was Down
Function X360_AButtonDown(port)
	
	If port=-1 Then
		If JoyDown(1) Then Return True
	Else
		If JoyDown(1,port) Then Return True
	End If
	
	Return False
	
End Function

;BButtonDown()
;returns true is the b button was Down
Function X360_BButtonDown(port)
	
	If port=-1 Then
		If JoyDown(2) Then Return True
	Else
		If JoyDown(2,port) Then Return True
	End If
	
	Return False
	
End Function

;YButtonDown()
;returns true is the y button was Down
Function X360_YButtonDown(port)
	
	If port=-1 Then
		If JoyDown(4) Then Return True
	Else
		If JoyDown(4,port) Then Return True
	End If
	
	Return False
	
End Function

;XButtonDown()
;returns true is the x button was Down
Function X360_XButtonDown(port)
	
	If port=-1 Then
		If JoyDown(3) Then Return True
	Else
		If JoyDown(3,port) Then Return True
	End If
	
	Return False
	
End Function

;RBButtonDown()
;returns true is the rbumper was Down
Function X360_RBButtonDown(port)
	
	If port=-1 Then
		If JoyDown(6) Then Return True
	Else
		If JoyDown(6,port) Then Return True
	End If
	
	Return False
	
End Function

;LBButtonDown()
;returns true is the lbumper was Down
Function X360_LBButtonDown(port)
	
	If port=-1 Then
		If JoyDown(5) Then Return True
	Else
		If JoyDown(5,port) Then Return True
	End If
	
	Return False
	
End Function

;StartButtonDown()
;returns true is the start button was Down
Function X360_StartButtonDown(port)
	
	If port=-1 Then
		If JoyDown(8) Then Return True
	Else
		If JoyDown(8,port) Then Return True
	End If
	
	Return False
	
End Function

;BackButtonDown()
;returns true is the x button was Down
Function X360_BackButtonDown(port)
	
	If port=-1 Then
		If JoyDown(7) Then Return True
	Else
		If JoyDown(7,port) Then Return True
	End If
	
	Return False
	
End Function

;LStickButtonDown()
;returns true is the left stick pressed in (Down)
Function X360_LStickButtonDown(port)
	
	If port=-1 Then
		If JoyDown(9) Then Return True
	Else
		If JoyDown(9,port) Then Return True
	End If
	
	Return False
	
End Function

;RStickButtonDown()
;returns true is the right stick pressed in (Down)
Function X360_RStickButtonDown(port)
	
	If port=-1 Then
		If JoyDown(10) Then Return True
	Else
		If JoyDown(10,port) Then Return True
	End If
	
	Return False
	
End Function


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;
;;xtremegamr 's code for the DPAD

;DPadDir()
;returns the direction of the d-pad
Function X360_DPadDir(port)
	
	If port=-1 Then
		dir=JoyHat()
	Else
		dir=JoyHat(port)
	End If
	
;check direction
	Select dir
		Case 0 ;up
			Return 1
		Case 45 ;up-right
			Return 2
		Case 90 ;right
			Return 3
		Case 135 ;down-right
			Return 4
		Case 180 ;down
			Return 5
		Case 225 ;down-left
			Return 6
		Case 270 ;left
			Return 7
		Case 315 ;up-left
			Return 8
		Case -1 ;no direction pressed
			Return 0
		Default ;just in case something goes VERY wrong
			Return -1
	End Select
	
End Function

Comments

None.

Code Archives Forum