improved virtual buttons for touch devices (Android)
[rocksndiamonds.git] / src / libgame / joystick.h
1 // ============================================================================
2 // Artsoft Retro-Game Library
3 // ----------------------------------------------------------------------------
4 // (c) 1995-2014 by Artsoft Entertainment
5 //                  Holger Schemel
6 //                  info@artsoft.org
7 //                  http://www.artsoft.org/
8 // ----------------------------------------------------------------------------
9 // joystick.h
10 // ============================================================================
11
12 #ifndef JOYSTICK_H
13 #define JOYSTICK_H
14
15 #include "system.h"
16
17 #define JOYSTICK_NOT_AVAILABLE  0
18 #define JOYSTICK_AVAILABLE      (1 << 0)
19 #define JOYSTICK_ACTIVE         (1 << 1)
20 #define JOYSTICK_ACTIVATED      (JOYSTICK_AVAILABLE | JOYSTICK_ACTIVE)
21
22 #if defined(PLATFORM_FREEBSD)
23 #define DEV_JOYSTICK_0          "/dev/joy0"
24 #define DEV_JOYSTICK_1          "/dev/joy1"
25 #define DEV_JOYSTICK_2          "/dev/joy2"
26 #define DEV_JOYSTICK_3          "/dev/joy3"
27 #else
28 #define DEV_JOYSTICK_0          "/dev/js0"
29 #define DEV_JOYSTICK_1          "/dev/js1"
30 #define DEV_JOYSTICK_2          "/dev/js2"
31 #define DEV_JOYSTICK_3          "/dev/js3"
32 #endif
33
34 /* get these values from the program 'js' from the joystick package, */
35 /* set JOYSTICK_PERCENT to a threshold appropriate for your joystick */
36
37 #if defined(TARGET_SDL)
38 #define JOYSTICK_XLEFT          -32767
39 #define JOYSTICK_XMIDDLE        0
40 #define JOYSTICK_XRIGHT         32767
41 #define JOYSTICK_YUPPER         -32767
42 #define JOYSTICK_YMIDDLE        0
43 #define JOYSTICK_YLOWER         32767
44 #else
45 #define JOYSTICK_XLEFT          1
46 #define JOYSTICK_XMIDDLE        128
47 #define JOYSTICK_XRIGHT         255
48 #define JOYSTICK_YUPPER         1
49 #define JOYSTICK_YMIDDLE        128
50 #define JOYSTICK_YLOWER         255
51 #endif
52
53 #define JOYSTICK_PERCENT        25
54
55 #define JOY_NO_ACTION           0
56 #define JOY_LEFT                MV_LEFT
57 #define JOY_RIGHT               MV_RIGHT
58 #define JOY_UP                  MV_UP
59 #define JOY_DOWN                MV_DOWN
60 #define JOY_BUTTON_1            KEY_BUTTON_1
61 #define JOY_BUTTON_2            KEY_BUTTON_2
62 #define JOY_BUTTON_SNAP         KEY_BUTTON_SNAP
63 #define JOY_BUTTON_DROP         KEY_BUTTON_DROP
64 #define JOY_MOTION              KEY_MOTION
65 #define JOY_BUTTON              KEY_BUTTON
66 #define JOY_ACTION              KEY_ACTION
67
68 #define JOY_BUTTON_NOT_PRESSED  0
69 #define JOY_BUTTON_PRESSED      1
70 #define JOY_BUTTON_NEW_PRESSED  2
71 #define JOY_BUTTON_NEW_RELEASED 3
72
73 char *getJoyNameFromJoySymbol(int);
74 int getJoySymbolFromJoyName(char *);
75 int getJoystickNrFromDeviceName(char *);
76 char *getDeviceNameFromJoystickNr(int);
77
78 void CheckJoystickData(void);
79 int Joystick(int);
80 int JoystickButton(int);
81 int AnyJoystick(void);
82 int AnyJoystickButton(void);
83
84 void DeactivateJoystick();
85 void ActivateJoystick();
86
87 #endif  /* JOYSTICK_H */