forked from tidzo/pyvjoy
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
58 lines (32 loc) · 1.42 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
pyvjoy is a set of Python bindings for vJoy (vjoystick.sourceforge.net)
With this library you can easily set Axis and Button values on any vJoy device.
Low-level bindings are provided in pyvjoy._sdk as well as a (hopefully) slightly more 'Pythonic' API in the pyvjoy.VJoyDevice() object.
Currently vJoyInterface.dll is looked for inside the pyvjoy directory only so place the desired version of that file there to use.
"Pointy's Joystick Test App" is very useful when testing vJoy and this library: http://www.planetpointy.co.uk/joystick-test-application/
USAGE
-----
import pyvjoy
#Pythonic API, item-at-a-time
j = pyvjoy.VJoyDevice(1)
#turn button number 15 on
j.set_button(15,1)
#Notice the args are (buttonID,state) whereas vJoy's native API is the other way around.
#turn button 15 off again
j.set_button(15,0)
#Set X axis to fully left
j.set_axis(pyvjoy.HID_USAGE_X, 0x1)
#Set X axis to fully right
j.set_axis(pyvjoy.HID_USAGE_X, 0x8000)
#Also implemented:
j.reset()
j.reset_buttons()
j.reset_povs()
#The 'efficient' method as described in vJoy's docs - set multiple values at once
j.data
>>> <pyvjoy._sdk._JOYSTICK_POSITION_V2 at 0x....>
j.data.lButtons = 19 # buttons number 1,2 and 5 (1+2+16)
j.data.wAxisX = 0x2000
j.data.wAxisY= 0x7500
#send data to vJoy device
j.update()
#Lower-level API just wraps the functions in the DLL as thinly as possible, with some attempt to raise exceptions instead of return codes.