X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Flibgame%2Fjoystick.h;fp=src%2Flibgame%2Fjoystick.h;h=b1fca495273fe601e76ed63becc45959c53ea780;hp=0000000000000000000000000000000000000000;hb=41e8d55b767c898f20c29a1b0b8d2ef8840be2f5;hpb=f746cebc5f808a8ff752930763a13c3820b244f1 diff --git a/src/libgame/joystick.h b/src/libgame/joystick.h new file mode 100644 index 00000000..b1fca495 --- /dev/null +++ b/src/libgame/joystick.h @@ -0,0 +1,102 @@ +/*********************************************************** +* Artsoft Retro-Game Library * +*----------------------------------------------------------* +* (c) 1995-2002 Artsoft Entertainment * +* Holger Schemel * +* Detmolder Strasse 189 * +* 33604 Bielefeld * +* Germany * +* e-mail: info@artsoft.org * +*----------------------------------------------------------* +* joystick.h * +***********************************************************/ + +#ifndef JOYSTICK_H +#define JOYSTICK_H + +#include "system.h" + +/* values for the joystick */ +#define JOYSTICK_NOT_AVAILABLE 0 +#define JOYSTICK_AVAILABLE (1 << 0) +#define JOYSTICK_ACTIVE (1 << 1) + +#define JOYSTICK_ACTIVATED (JOYSTICK_AVAILABLE | JOYSTICK_ACTIVE) + +#if defined(PLATFORM_FREEBSD) +#define DEV_JOYSTICK_0 "/dev/joy0" +#define DEV_JOYSTICK_1 "/dev/joy1" +#define DEV_JOYSTICK_2 "/dev/joy2" +#define DEV_JOYSTICK_3 "/dev/joy3" +#else +#define DEV_JOYSTICK_0 "/dev/js0" +#define DEV_JOYSTICK_1 "/dev/js1" +#define DEV_JOYSTICK_2 "/dev/js2" +#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 */ + +#ifdef TARGET_SDL +#define JOYSTICK_XLEFT -32767 +#define JOYSTICK_XMIDDLE 0 +#define JOYSTICK_XRIGHT 32767 +#define JOYSTICK_YUPPER -32767 +#define JOYSTICK_YMIDDLE 0 +#define JOYSTICK_YLOWER 32767 +#else +#define JOYSTICK_XLEFT 30 +#define JOYSTICK_XMIDDLE 530 +#define JOYSTICK_XRIGHT 1250 +#define JOYSTICK_YUPPER 40 +#define JOYSTICK_YMIDDLE 680 +#define JOYSTICK_YLOWER 1440 +#endif + +#define JOYSTICK_PERCENT 25 + +#define JOY_LEFT MV_LEFT +#define JOY_RIGHT MV_RIGHT +#define JOY_UP MV_UP +#define JOY_DOWN MV_DOWN +#define JOY_BUTTON_1 (1 << 4) +#define JOY_BUTTON_2 (1 << 5) +#define JOY_BUTTON (JOY_BUTTON_1 | JOY_BUTTON_2) + +#define JOY_BUTTON_NOT_PRESSED 0 +#define JOY_BUTTON_PRESSED 1 +#define JOY_BUTTON_NEW_PRESSED 2 +#define JOY_BUTTON_NEW_RELEASED 3 + +#ifdef NO_JOYSTICK +#define JOYSTICK_STATUS JOYSTICK_NOT_AVAILABLE +#else +#define JOYSTICK_STATUS JOYSTICK_AVAILABLE +#endif + + +char *getJoyNameFromJoySymbol(int); +int getJoySymbolFromJoyName(char *); +int getJoystickNrFromDeviceName(char *); +char *getDeviceNameFromJoystickNr(int); + +#if defined(TARGET_SDL) +SDL_Joystick *Get_SDL_Joystick(int); +boolean Open_SDL_Joystick(int); +void Close_SDL_Joystick(int); +boolean Check_SDL_JoystickOpened(int); +void HandleJoystickEvent(Event *); +int Get_SDL_Joystick_Axis(int, int); +#endif + +void CheckJoystickData(void); +int Joystick(int); +int JoystickButton(int); +int AnyJoystick(void); +int AnyJoystickButton(void); + +void DeactivateJoystickForCalibration(); +void ActivateJoystickIfAvailable(); + +#endif /* JOYSTICK_H */