-/***********************************************************
-* Artsoft Retro-Game Library *
-*----------------------------------------------------------*
-* (c) 1995-2006 Artsoft Entertainment *
-* Holger Schemel *
-* Detmolder Strasse 189 *
-* 33604 Bielefeld *
-* Germany *
-* e-mail: info@artsoft.org *
-*----------------------------------------------------------*
-* joystick.h *
-***********************************************************/
+// ============================================================================
+// Artsoft Retro-Game Library
+// ----------------------------------------------------------------------------
+// (c) 1995-2014 by Artsoft Entertainment
+// Holger Schemel
+// info@artsoft.org
+// https://www.artsoft.org/
+// ----------------------------------------------------------------------------
+// joystick.h
+// ============================================================================
#ifndef JOYSTICK_H
#define JOYSTICK_H
#define JOYSTICK_NOT_AVAILABLE 0
#define JOYSTICK_AVAILABLE (1 << 0)
#define JOYSTICK_ACTIVE (1 << 1)
+#define JOYSTICK_CONFIGURED (1 << 2)
+#define JOYSTICK_NOT_CONFIGURED (1 << 3)
#define JOYSTICK_ACTIVATED (JOYSTICK_AVAILABLE | JOYSTICK_ACTIVE)
+#define MAX_JOYSTICK_NAME_LEN 40
+
#if defined(PLATFORM_FREEBSD)
#define DEV_JOYSTICK_0 "/dev/joy0"
#define DEV_JOYSTICK_1 "/dev/joy1"
#define DEV_JOYSTICK_3 "/dev/js3"
#endif
-/* get these values from the program 'js' from the joystick package, */
-/* set JOYSTICK_PERCENT to a threshold appropriate for your joystick */
+// get these values from the program 'js' from the joystick package,
+// set JOYSTICK_PERCENT to a threshold appropriate for your joystick
+
+#define JOYSTICK_MAX_AXIS_POS 32767
-#if defined(TARGET_SDL)
-#define JOYSTICK_XLEFT -32767
+#define JOYSTICK_XLEFT -JOYSTICK_MAX_AXIS_POS
#define JOYSTICK_XMIDDLE 0
-#define JOYSTICK_XRIGHT 32767
-#define JOYSTICK_YUPPER -32767
+#define JOYSTICK_XRIGHT +JOYSTICK_MAX_AXIS_POS
+#define JOYSTICK_YUPPER -JOYSTICK_MAX_AXIS_POS
#define JOYSTICK_YMIDDLE 0
-#define JOYSTICK_YLOWER 32767
-#else
-#define JOYSTICK_XLEFT 1
-#define JOYSTICK_XMIDDLE 128
-#define JOYSTICK_XRIGHT 255
-#define JOYSTICK_YUPPER 1
-#define JOYSTICK_YMIDDLE 128
-#define JOYSTICK_YLOWER 255
-#endif
+#define JOYSTICK_YLOWER +JOYSTICK_MAX_AXIS_POS
#define JOYSTICK_PERCENT 25
#define JOY_BUTTON_NEW_PRESSED 2
#define JOY_BUTTON_NEW_RELEASED 3
-#if defined(PLATFORM_UNIX)
-void UnixInitJoysticks(void);
-boolean UnixReadJoystick(int, int *, int *, boolean *, boolean *);
-#endif
-
-char *getJoyNameFromJoySymbol(int);
-int getJoySymbolFromJoyName(char *);
int getJoystickNrFromDeviceName(char *);
char *getDeviceNameFromJoystickNr(int);
+char *getFormattedJoystickName(const char *);
-void CheckJoystickData(void);
int Joystick(int);
+int JoystickExt(int, boolean);
int JoystickButton(int);
int AnyJoystick(void);
int AnyJoystickButton(void);
-void DeactivateJoystick();
-void ActivateJoystick();
-
-#endif /* JOYSTICK_H */
+#endif // JOYSTICK_H