diff options
| author | xyverz <xyverz@gmail.com> | 2016-12-06 17:36:19 -0800 | 
|---|---|---|
| committer | xyverz <xyverz@gmail.com> | 2016-12-06 17:36:19 -0800 | 
| commit | 9216bc73778ef0fe5830b91511f37dd90fb0f0a1 (patch) | |
| tree | 6c9f343c2485150c1912b7b68ade364a232015bd /quantum/api.h | |
| parent | f9cf4f75aec8cb24f054f243b985d9e5c18a2a80 (diff) | |
| parent | 985a091a739c99736d5b17de5161831488dbc219 (diff) | |
| download | firmware-9216bc73778ef0fe5830b91511f37dd90fb0f0a1.tar.gz firmware-9216bc73778ef0fe5830b91511f37dd90fb0f0a1.tar.bz2 firmware-9216bc73778ef0fe5830b91511f37dd90fb0f0a1.zip  | |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'quantum/api.h')
| -rw-r--r-- | quantum/api.h | 59 | 
1 files changed, 59 insertions, 0 deletions
diff --git a/quantum/api.h b/quantum/api.h new file mode 100644 index 000000000..00dcdb895 --- /dev/null +++ b/quantum/api.h @@ -0,0 +1,59 @@ +#ifndef _API_H_ +#define _API_H_ + +#include "lufa.h" + +enum MESSAGE_TYPE { +    MT_GET_DATA =      0x10, // Get data from keyboard +    MT_GET_DATA_ACK =  0x11, // returned data to process (ACK) +    MT_SET_DATA =      0x20, // Set data on keyboard +    MT_SET_DATA_ACK =  0x21, // returned data to confirm (ACK) +    MT_SEND_DATA =     0x30, // Sending data/action from keyboard +    MT_SEND_DATA_ACK = 0x31, // returned data/action confirmation (ACK) +    MT_EXE_ACTION =    0x40, // executing actions on keyboard +    MT_EXE_ACTION_ACK =0x41, // return confirmation/value (ACK) +    MT_TYPE_ERROR =    0x80 // type not recofgnised (ACK) +}; + +enum DATA_TYPE { +    DT_NONE = 0x00, +    DT_HANDSHAKE, +    DT_DEFAULT_LAYER, +    DT_CURRENT_LAYER, +    DT_KEYMAP_OPTIONS, +    DT_BACKLIGHT, +    DT_RGBLIGHT, +    DT_UNICODE, +    DT_DEBUG, +    DT_AUDIO, +    DT_QUANTUM_ACTION, +    DT_KEYBOARD_ACTION, +    DT_USER_ACTION, +    DT_KEYMAP_SIZE, +    DT_KEYMAP +}; + +void dword_to_bytes(uint32_t dword, uint8_t * bytes); +uint32_t bytes_to_dword(uint8_t * bytes, uint8_t index); + +#define MT_GET_DATA(data_type, data, length) SEND_BYTES(MT_GET_DATA, data_type, data, length) +#define MT_GET_DATA_ACK(data_type, data, length) SEND_BYTES(MT_GET_DATA_ACK, data_type, data, length) +#define MT_SET_DATA(data_type, data, length) SEND_BYTES(MT_SET_DATA, data_type, data, length) +#define MT_SET_DATA_ACK(data_type, data, length) SEND_BYTES(MT_SET_DATA_ACK, data_type, data, length) +#define MT_SEND_DATA(data_type, data, length) SEND_BYTES(MT_SEND_DATA, data_type, data, length) +#define MT_SEND_DATA_ACK(data_type, data, length) SEND_BYTES(MT_SEND_DATA_ACK, data_type, data, length) +#define MT_EXE_ACTION(data_type, data, length) SEND_BYTES(MT_EXE_ACTION, data_type, data, length) +#define MT_EXE_ACTION_ACK(data_type, data, length) SEND_BYTES(MT_EXE_ACTION_ACK, data_type, data, length) + +void process_api(uint16_t length, uint8_t * data); + +__attribute__ ((weak)) +bool process_api_quantum(uint8_t length, uint8_t * data); + +__attribute__ ((weak)) +bool process_api_keyboard(uint8_t length, uint8_t * data); + +__attribute__ ((weak)) +bool process_api_user(uint8_t length, uint8_t * data); + +#endif
\ No newline at end of file  | 
