]> git.donarmstrong.com Git - qmk_firmware.git/blob - tmk_core/protocol/lufa/adafruit_ble.h
ergodox qwerty_code_friendly: add macro keys (#1918)
[qmk_firmware.git] / tmk_core / protocol / lufa / adafruit_ble.h
1 /* Bluetooth Low Energy Protocol for QMK.
2  * Author: Wez Furlong, 2016
3  * Supports the Adafruit BLE board built around the nRF51822 chip.
4  */
5 #pragma once
6 #ifdef MODULE_ADAFRUIT_BLE
7 #include <stdbool.h>
8 #include <stdint.h>
9 #include <string.h>
10
11 #include "config_common.h"
12 #include "progmem.h"
13
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17
18 /* Instruct the module to enable HID keyboard support and reset */
19 extern bool adafruit_ble_enable_keyboard(void);
20
21 /* Query to see if the BLE module is connected */
22 extern bool adafruit_ble_query_is_connected(void);
23
24 /* Returns true if we believe that the BLE module is connected.
25  * This uses our cached understanding that is maintained by
26  * calling ble_task() periodically. */
27 extern bool adafruit_ble_is_connected(void);
28
29 /* Call this periodically to process BLE-originated things */
30 extern void adafruit_ble_task(void);
31
32 /* Generates keypress events for a set of keys.
33  * The hid modifier mask specifies the state of the modifier keys for
34  * this set of keys.
35  * Also sends a key release indicator, so that the keys do not remain
36  * held down. */
37 extern bool adafruit_ble_send_keys(uint8_t hid_modifier_mask, uint8_t *keys,
38                                    uint8_t nkeys);
39
40 /* Send a consumer keycode, holding it down for the specified duration
41  * (milliseconds) */
42 extern bool adafruit_ble_send_consumer_key(uint16_t keycode, int hold_duration);
43
44 #ifdef MOUSE_ENABLE
45 /* Send a mouse/wheel movement report.
46  * The parameters are signed and indicate positive of negative direction
47  * change. */
48 extern bool adafruit_ble_send_mouse_move(int8_t x, int8_t y, int8_t scroll,
49                                          int8_t pan, uint8_t buttons);
50 #endif
51
52 /* Compute battery voltage by reading an analog pin.
53  * Returns the integer number of millivolts */
54 extern uint32_t adafruit_ble_read_battery_voltage(void);
55
56 extern bool adafruit_ble_set_mode_leds(bool on);
57 extern bool adafruit_ble_set_power_level(int8_t level);
58
59 #ifdef __cplusplus
60 }
61 #endif
62
63 #endif // MODULE_ADAFRUIT_BLE