Program Listing for File Input_State.hpp
↰ Return to documentation for file (include/global/DataLines/Input_State.hpp)
#pragma once
#include <future>
#include <memory_resource>
#include <optional>
#include <string>
#include <vector>
enum PDJE_INPUT_STATE {
DEVICE_CONFIG_STATE = 0,
INPUT_LOOP_READY,
INPUT_LOOP_RUNNING,
DEAD
};
enum PDJE_MIDI_EVENTS {
};
#define PDJE_MOUSE_L_BTN_DOWN 0x0001
#define PDJE_MOUSE_L_BTN_UP 0x0002
#define PDJE_MOUSE_R_BTN_DOWN 0x0004
#define PDJE_MOUSE_R_BTN_UP 0x0008
#define PDJE_MOUSE_M_BTN_DOWN 0x0010
#define PDJE_MOUSE_M_BTN_UP 0x0020
#define PDJE_MOUSE_SIDE_BTN_DOWN 0x0040
#define PDJE_MOUSE_SIDE_BTN_UP 0x0080
#define PDJE_MOUSE_EX_BTN_DOWN 0x0100
#define PDJE_MOUSE_EX_BTN_UP 0x0200
#define PDJE_MOUSE_XWHEEL 0x0400
#define PDJE_MOUSE_YWHEEL 0x0800
enum PDJE_KEY {
F_1 = 0,
F_2,
F_3,
F_4,
F_5,
F_6,
F_7,
F_8,
F_9,
F_10,
F_11,
F_12,
D1,
D2,
D3,
D4,
D5,
D6,
D7,
D8,
D9,
D0,
Q,
W,
E,
R,
T,
Y,
U,
I,
O,
P,
A,
S,
D,
F,
G,
H,
J,
K,
L,
Z,
X,
C,
V,
B,
N,
M,
KP_1,
KP_2,
KP_3,
KP_4,
KP_5,
KP_6,
KP_7,
KP_8,
KP_9,
KP_0,
KP_DOT,
KP_ENTER,
KP_PLUS,
KP_NUMLOCK,
KP_SLASH,
KP_STAR,
KP_MINUS,
ENTER,
ESC,
BACKSPACE,
TAB,
SPACE,
CAPSLK,
LEFT,
RIGHT,
UP,
DOWN,
LCTRL,
RCTRL,
LALT,
RALT,
LSHIFT,
RSHIFT,
MINUS,
EQUAL,
LBRACKET,
RBRACKET,
BACKSLASH,
SLASH,
SEMICOLON,
APOSTROPHE,
GRAVE,
COMMA,
PERIOD,
NONUS_BACKSLASH,
SP_PRINT_SCREEN,
SP_SCROLL_LOCK,
SP_INSERT,
SP_HOME,
SP_END,
SP_DELETE,
SP_PAGE_UP,
SP_PAGE_DOWN,
UNKNOWN
};
enum PDJE_Mouse_Axis_Type {
REL = 0,
ABS = 1,
VIRTUAL_DESKTOP_ABS = 2 // maybe windows only
};
using BITMASK = uint16_t;
struct PDJE_Mouse_Event {
BITMASK button_type;
int wheel_move;
PDJE_Mouse_Axis_Type axis_type;
int x;
int y;
};
struct PDJE_Keyboard_Event {
PDJE_KEY k;
bool pressed;
};
struct PDJE_HID_Event {
uint8_t hid_buffer[512];
unsigned long hid_byte_size = 0;
};
struct Midi_Input_Data {
PDJE_MIDI_EVENTS event_type;
uint8_t channel;
uint8_t note;
uint8_t velocity;
};
union PDJE_Input_Event {
PDJE_Mouse_Event mouse;
PDJE_Keyboard_Event keyboard;
};