2013-12-07 06:55:00 +00:00
|
|
|
/*
|
2015-10-22 05:13:26 +00:00
|
|
|
* Apple // emulator for *ix
|
2013-12-07 06:55:00 +00:00
|
|
|
*
|
|
|
|
* This software package is subject to the GNU General Public License
|
2015-10-22 05:13:26 +00:00
|
|
|
* version 3 or later (your choice) as published by the Free Software
|
2013-12-07 06:55:00 +00:00
|
|
|
* Foundation.
|
|
|
|
*
|
2015-10-22 05:13:26 +00:00
|
|
|
* Copyright 2013-2015 Aaron Culliney
|
2013-12-07 06:55:00 +00:00
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _JOYSTICK_H_
|
|
|
|
#define _JOYSTICK_H_
|
|
|
|
|
2013-12-21 23:25:02 +00:00
|
|
|
#define JOY_RANGE 0x100
|
2015-12-19 21:01:28 +00:00
|
|
|
#define HALF_JOY_RANGE (JOY_RANGE>>1)
|
|
|
|
#define QUARTER_JOY_RANGE (HALF_JOY_RANGE>>1)
|
2013-12-21 23:25:02 +00:00
|
|
|
|
2016-03-26 05:34:33 +00:00
|
|
|
typedef enum joystick_mode_t {
|
|
|
|
JOY_PCJOY = 0,
|
|
|
|
#ifdef KEYPAD_JOYSTICK
|
|
|
|
JOY_KPAD,
|
|
|
|
#endif
|
|
|
|
NUM_JOYOPTS
|
|
|
|
} joystick_mode_t;
|
|
|
|
|
|
|
|
extern joystick_mode_t joy_mode;
|
|
|
|
|
2014-10-19 19:54:03 +00:00
|
|
|
extern uint16_t joy_x;
|
|
|
|
extern uint16_t joy_y;
|
2014-12-06 06:31:12 +00:00
|
|
|
extern bool joy_clip_to_radius;
|
2014-10-19 19:54:03 +00:00
|
|
|
|
|
|
|
#ifdef KEYPAD_JOYSTICK
|
2016-03-26 05:34:33 +00:00
|
|
|
extern bool joy_auto_recenter;
|
2014-10-19 19:54:03 +00:00
|
|
|
extern short joy_step;
|
|
|
|
#endif
|
2014-05-10 20:08:44 +00:00
|
|
|
|
2014-10-25 19:51:09 +00:00
|
|
|
void c_joystick_reset(void);
|
2016-03-26 05:34:33 +00:00
|
|
|
|
2014-11-09 21:13:27 +00:00
|
|
|
#ifdef INTERFACE_CLASSIC
|
|
|
|
void c_calibrate_joystick(void);
|
|
|
|
#endif
|
2013-12-07 06:55:00 +00:00
|
|
|
|
2015-12-19 21:01:28 +00:00
|
|
|
// enable/disable gamepad clamping to joystick corners
|
|
|
|
void joydriver_setClampBeyondRadius(bool clamp);
|
|
|
|
|
|
|
|
// set joystick axis values
|
|
|
|
void joydriver_setAxisValue(uint8_t x, uint8_t y);
|
|
|
|
|
|
|
|
// return X axis value
|
|
|
|
uint8_t joydriver_getAxisX(void);
|
|
|
|
|
|
|
|
// return Y axis value
|
|
|
|
uint8_t joydriver_getAxisY(void);
|
|
|
|
|
|
|
|
// set button 0 pressed
|
|
|
|
void joydriver_setButton0Pressed(bool pressed);
|
|
|
|
|
|
|
|
// set button 1 pressed
|
|
|
|
void joydriver_setButton1Pressed(bool pressed);
|
|
|
|
|
2016-04-17 18:26:35 +00:00
|
|
|
// backend joystick driver reset procedure
|
|
|
|
extern void (*joydriver_resetJoystick)(void);
|
|
|
|
|
2015-04-12 22:35:16 +00:00
|
|
|
#if INTERFACE_TOUCH
|
2015-04-02 02:59:38 +00:00
|
|
|
|
2015-08-01 23:46:09 +00:00
|
|
|
typedef enum touchjoy_button_type_t {
|
2016-04-06 05:04:57 +00:00
|
|
|
TOUCH_NONE = 0,
|
|
|
|
TOUCH_BUTTON1 = 1,
|
|
|
|
TOUCH_BUTTON2,
|
2015-08-01 23:46:09 +00:00
|
|
|
TOUCH_BOTH,
|
2015-08-16 05:02:51 +00:00
|
|
|
// --or-- an ASCII/fonttext value ...
|
2015-08-01 23:46:09 +00:00
|
|
|
} touchjoy_button_type_t;
|
2015-04-02 02:59:38 +00:00
|
|
|
|
2015-04-12 22:35:16 +00:00
|
|
|
#endif // INTERFACE_TOUCH
|
2015-04-02 02:59:38 +00:00
|
|
|
|
2013-12-07 06:55:00 +00:00
|
|
|
#endif // whole file
|