Files
firmware/right/src/config/parse_keymap.h
2017-06-16 15:59:38 +02:00

61 lines
1.8 KiB
C

#ifndef __PARSE_KEYMAP_H__
#define __PARSE_KEYMAP_H__
// Includes:
#include <stdint.h>
// Macros:
#define SERIALIZED_KEYSTROKE_TYPE_MASK_HAS_SCANCODE 0b00001
#define SERIALIZED_KEYSTROKE_TYPE_MASK_HAS_MODIFIERS 0b00010
#define SERIALIZED_KEYSTROKE_TYPE_MASK_HAS_LONGPRESS 0b00100
#define SERIALIZED_KEYSTROKE_TYPE_MASK_KEYSTROKE_TYPE 0b11000
#define SERIALIZED_KEYSTROKE_TYPE_OFFSET_KEYSTROKE_TYPE 3
// Typedefs:
typedef enum {
SerializedKeyActionType_None = 0,
SerializedKeyActionType_KeyStroke = 1,
SerializedKeyActionType_LastKeyStroke = 31,
SerializedKeyActionType_SwitchLayer,
SerializedKeyActionType_SwitchKeymap,
SerializedKeyActionType_Mouse,
SerializedKeyActionType_PlayMacro
} serialized_key_action_type_t;
typedef enum {
SerializedKeystrokeType_Basic,
SerializedKeystrokeType_ShortMedia,
SerializedKeystrokeType_LongMedia,
SerializedKeystrokeType_System,
} serialized_keystroke_type_t;
typedef enum {
SerializedMouseAction_LeftClick,
SerializedMouseAction_MiddleClick,
SerializedMouseAction_RightClick,
SerializedMouseAction_MoveUp,
SerializedMouseAction_MoveDown,
SerializedMouseAction_MoveLeft,
SerializedMouseAction_MoveRight,
SerializedMouseAction_ScrollUp,
SerializedMouseAction_ScrollDown,
SerializedMouseAction_ScrollLeft,
SerializedMouseAction_ScrollRight,
SerializedMouseAction_Accelerate,
SerializedMouseAction_Decelerate,
} serialized_mouse_action_t;
typedef struct {
uint8_t *buffer;
uint16_t offset;
} serialized_buffer_t;
// Functions:
void ParseLayer(uint8_t *data, uint8_t layer);
#endif