Jo Engine  2024.04.28
Jo Sega Saturn Engine
Macros | Enumerations | Functions | Variables
input.h File Reference

Jo Engine Gamepad functions. More...

Go to the source code of this file.

Macros

#define JO_INPUT_MAX_DEVICE
 
#define PER_ID_NightsPad
 
#define __JO_KEY_PRESSED(PORT, KEY)
 

Enumerations

enum  jo_gamepad_keys {
  JO_KEY_RIGHT, JO_KEY_LEFT, JO_KEY_DOWN, JO_KEY_UP,
  JO_KEY_START, JO_KEY_A, JO_KEY_B, JO_KEY_C,
  JO_KEY_X, JO_KEY_Y, JO_KEY_Z, JO_KEY_L,
  JO_KEY_R, JO_MOUSE_START_BUTTON, JO_MOUSE_LEFT_BUTTON, JO_MOUSE_MIDDLE_BUTTON,
  JO_MOUSE_RIGHT_BUTTON
}
 Input keys. More...
 
enum  jo_gamepad_type {
  JoNotConnectedGamepad, JoUnsupportedGamepad, JoRegularGamepad, JoRegularMouse,
  JoShuttleMouse, JoRegularKeyboard, JoNightsPad
}
 Input type. More...
 
enum  jo_input_axis {
  JoAxis1, JoAxis2, JoAxis3, JoAxis4,
  JoAxis5, JoAxis6
}
 Input axis type. More...
 

Functions

jo_gamepad_type jo_get_input_type (const int port)
 Get input type for the given port. More...
 
static __jo_force_inline bool jo_is_input_analog (const int port)
 Check if connected input is analog. More...
 
static __jo_force_inline bool jo_is_input_available (const int port)
 Check if the input is available for the given port. More...
 
int jo_get_input_count (void)
 Get the number of input available. More...
 
unsigned char jo_get_input_axis (const int port, const jo_input_axis axis)
 Get analog axis value. More...
 
static __jo_force_inline bool jo_is_input_key_pressed (const int port, const jo_gamepad_keys key)
 Check if the key is pressed for the given port. More...
 
static __jo_force_inline jo_8_directions jo_get_input_direction_pressed (const int port)
 Get the direction pressed for the given port. More...
 
static __jo_force_inline unsigned short jo_get_raw_input_key_pressed (const int port)
 Get raw input data for the given port. More...
 
static __jo_force_inline bool jo_is_input_key_down (const int port, const jo_gamepad_keys key)
 Check if the key is down for the given port. More...
 
static __jo_force_inline int jo_get_mouse_pos_x (const int port)
 Get mouse X position. More...
 
static __jo_force_inline int jo_get_mouse_pos_y (const int port)
 Get mouse Y position. More...
 
static __jo_force_inline bool jo_is_pad1_available (void)
 Check if the first gamepad is plugged. More...
 
static __jo_force_inline bool jo_is_pad2_available (void)
 Check if the second gamepad is plugged. More...
 
static __jo_force_inline bool jo_is_pad1_key_pressed (jo_gamepad_keys key)
 Check if the key is pressed on the first gamepad. More...
 
static __jo_force_inline bool jo_is_pad1_key_down (jo_gamepad_keys key)
 Check if the key is down on the first gamepad. More...
 
static __jo_force_inline bool jo_is_pad2_key_pressed (jo_gamepad_keys key)
 Check if the key is pressed on the second gamepad. More...
 
static __jo_force_inline bool jo_is_pad2_key_down (jo_gamepad_keys key)
 Check if the key is down on the second gamepad. More...
 

Variables

PerDigital jo_inputs [(12)]
 

Detailed Description

Jo Engine Gamepad functions.

Author
Johannes Fetz
Bug:
No known bugs.
Todo:
analog gamepad, wheel, gun

Macro Definition Documentation

◆ __JO_KEY_PRESSED

#define __JO_KEY_PRESSED (   PORT,
  KEY 
)

◆ JO_INPUT_MAX_DEVICE

#define JO_INPUT_MAX_DEVICE

◆ PER_ID_NightsPad

#define PER_ID_NightsPad

Enumeration Type Documentation

◆ jo_gamepad_keys

Input keys.

Enumerator
JO_KEY_RIGHT 
JO_KEY_LEFT 
JO_KEY_DOWN 
JO_KEY_UP 
JO_KEY_START 
JO_KEY_A 
JO_KEY_B 
JO_KEY_C 
JO_KEY_X 
JO_KEY_Y 
JO_KEY_Z 
JO_KEY_L 
JO_KEY_R 
JO_MOUSE_START_BUTTON 
JO_MOUSE_LEFT_BUTTON 
JO_MOUSE_MIDDLE_BUTTON 
JO_MOUSE_RIGHT_BUTTON 

◆ jo_gamepad_type

Input type.

Enumerator
JoNotConnectedGamepad 
JoUnsupportedGamepad 
JoRegularGamepad 
JoRegularMouse 
JoShuttleMouse 
JoRegularKeyboard 
JoNightsPad 

Nights 3D pad, Axis1 and Axis2 are analog stick, Axis3 is right trigger and Axis4 is left trigger.

◆ jo_input_axis

Input axis type.

Enumerator
JoAxis1 
JoAxis2 
JoAxis3 
JoAxis4 
JoAxis5 
JoAxis6 

Function Documentation

◆ jo_get_input_axis()

unsigned char jo_get_input_axis ( const int  port,
const jo_input_axis  axis 
)

Get analog axis value.

Parameters
portGamepad port
axisAnalog axis
Returns
Analog axis value

◆ jo_get_input_count()

int jo_get_input_count ( void  )

Get the number of input available.

Returns
Input count

◆ jo_get_input_direction_pressed()

static __jo_force_inline jo_8_directions jo_get_input_direction_pressed ( const int  port)
static

Get the direction pressed for the given port.

Parameters
portGamepad port
Returns
jo_8_directions

◆ jo_get_input_type()

jo_gamepad_type jo_get_input_type ( const int  port)

Get input type for the given port.

Parameters
portGamepad port
Returns
Input type (Pad, Mouse, etc)

◆ jo_get_mouse_pos_x()

static __jo_force_inline int jo_get_mouse_pos_x ( const int  port)
static

Get mouse X position.

Parameters
portGamepad port
Returns
X coordinate

◆ jo_get_mouse_pos_y()

static __jo_force_inline int jo_get_mouse_pos_y ( const int  port)
static

Get mouse Y position.

Parameters
portGamepad port
Returns
Y coordinate

◆ jo_get_raw_input_key_pressed()

static __jo_force_inline unsigned short jo_get_raw_input_key_pressed ( const int  port)
static

Get raw input data for the given port.

Parameters
portGamepad port
Returns
Raw input data

◆ jo_is_input_analog()

static __jo_force_inline bool jo_is_input_analog ( const int  port)
static

Check if connected input is analog.

Parameters
portinput port
Returns
true if connected controller has analog axies

◆ jo_is_input_available()

static __jo_force_inline bool jo_is_input_available ( const int  port)
static

Check if the input is available for the given port.

Parameters
portGamepad port
Returns
true if the input is available otherwise false

◆ jo_is_input_key_down()

static __jo_force_inline bool jo_is_input_key_down ( const int  port,
const jo_gamepad_keys  key 
)
static

Check if the key is down for the given port.

Parameters
portGamepad port
keyKey value
Returns
true if the key is down otherwise false

◆ jo_is_input_key_pressed()

static __jo_force_inline bool jo_is_input_key_pressed ( const int  port,
const jo_gamepad_keys  key 
)
static

Check if the key is pressed for the given port.

Parameters
portGamepad port
keyKey value
Returns
true if the key is pressed otherwise false

◆ jo_is_pad1_available()

static __jo_force_inline bool jo_is_pad1_available ( void  )
static

Check if the first gamepad is plugged.

Returns
true if the first gamepad is plugged otherwise false

◆ jo_is_pad1_key_down()

static __jo_force_inline bool jo_is_pad1_key_down ( jo_gamepad_keys  key)
static

Check if the key is down on the first gamepad.

Parameters
keyKey value
Returns
true if the key is down on the first gamepad otherwise false

◆ jo_is_pad1_key_pressed()

static __jo_force_inline bool jo_is_pad1_key_pressed ( jo_gamepad_keys  key)
static

Check if the key is pressed on the first gamepad.

Parameters
keyKey value
Returns
true if the key is pressed on the first gamepad otherwise false

◆ jo_is_pad2_available()

static __jo_force_inline bool jo_is_pad2_available ( void  )
static

Check if the second gamepad is plugged.

Returns
true if the second gamepad is plugged otherwise false

◆ jo_is_pad2_key_down()

static __jo_force_inline bool jo_is_pad2_key_down ( jo_gamepad_keys  key)
static

Check if the key is down on the second gamepad.

Parameters
keyKey value
Returns
true if the key is down on the second gamepad otherwise false

◆ jo_is_pad2_key_pressed()

static __jo_force_inline bool jo_is_pad2_key_pressed ( jo_gamepad_keys  key)
static

Check if the key is pressed on the second gamepad.

Parameters
keyKey value
Returns
true if the key is pressed on the second gamepad otherwise false

Variable Documentation

◆ jo_inputs

PerDigital jo_inputs[(12)]