apple2ix/src/joystick.h

78 lines
1.6 KiB
C
Raw Normal View History

/*
* Apple // emulator for *ix
*
* This software package is subject to the GNU General Public License
* version 3 or later (your choice) as published by the Free Software
* Foundation.
*
* Copyright 2013-2015 Aaron Culliney
*
*/
#ifndef _JOYSTICK_H_
#define _JOYSTICK_H_
#define JOY_RANGE 0x100
#define HALF_JOY_RANGE (JOY_RANGE>>1)
#define QUARTER_JOY_RANGE (HALF_JOY_RANGE>>1)
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;
extern uint8_t joy_button0;
extern uint8_t joy_button1;
extern uint8_t joy_button2;
extern bool joy_clip_to_radius;
2014-10-19 19:54:03 +00:00
#ifdef KEYPAD_JOYSTICK
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
void c_joystick_reset(void);
#ifdef INTERFACE_CLASSIC
void c_calibrate_joystick(void);
#endif
// 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);
#if INTERFACE_TOUCH
2015-04-02 02:59:38 +00:00
typedef enum touchjoy_button_type_t {
TOUCH_NONE = 0,
TOUCH_BUTTON1 = 1,
TOUCH_BUTTON2,
TOUCH_BOTH,
// --or-- an ASCII/fonttext value ...
} touchjoy_button_type_t;
2015-04-02 02:59:38 +00:00
#endif // INTERFACE_TOUCH
2015-04-02 02:59:38 +00:00
#endif // whole file