mirror of
https://github.com/qmk/qmk_firmware.git
synced 2026-10-02 14:58:59 +02:00
annepro2(bluetooth): add media keys support (#41)
This commit is contained in:
@@ -19,6 +19,7 @@
|
||||
#include "hal.h"
|
||||
#include "host.h"
|
||||
#include "host_driver.h"
|
||||
#include "report.h"
|
||||
|
||||
/* -------------------- Static Function Prototypes -------------------------- */
|
||||
static uint8_t ap2_ble_leds(void);
|
||||
@@ -39,19 +40,27 @@ static host_driver_t ap2_ble_driver = {
|
||||
};
|
||||
|
||||
static uint8_t bleMcuWakeup[11] = {
|
||||
0x7b, 0x10, 0x53, 0x10, 0x03, 0x00, 0x01, 0x7d, 0x02, 0x01, 0x02
|
||||
0x7b, 0x12, 0x53, 0x00, 0x03, 0x00, 0x01, 0x7d, 0x02, 0x01, 0x02
|
||||
};
|
||||
|
||||
static uint8_t bleMcuStartBroadcast[11] = {
|
||||
0x7b, 0x10, 0x53, 0x10, 0x03, 0x00, 0x00, 0x7d, 0x40, 0x01, 0x00 // Broadcast ID[0-3]
|
||||
0x7b, 0x12, 0x53, 0x00, 0x03, 0x00, 0x00, 0x7d, 0x40, 0x01, 0x00 // Broadcast ID[0-3]
|
||||
};
|
||||
|
||||
static uint8_t bleMcuConnect[11] = {
|
||||
0x7b, 0x10, 0x53, 0x10, 0x03, 0x00, 0x00, 0x7d, 0x40, 0x04, 0x00 // Connect ID [0-3]
|
||||
0x7b, 0x12, 0x53, 0x00, 0x03, 0x00, 0x00, 0x7d, 0x40, 0x04, 0x00 // Connect ID [0-3]
|
||||
};
|
||||
|
||||
static uint8_t bleMcuSendReport[10] = {
|
||||
0x7b, 0x10, 0x53, 0x10, 0x0A, 0x00, 0x00, 0x7d, 0x10, 0x04,
|
||||
0x7b, 0x12, 0x53, 0x00, 0x0A, 0x00, 0x00, 0x7d, 0x10, 0x04,
|
||||
};
|
||||
|
||||
static uint8_t bleMcuSendConsumerReport[10] = {
|
||||
0x7b, 0x12, 0x53, 0x00, 0x06, 0x00, 0x00, 0x7d, 0x10, 0x08,
|
||||
};
|
||||
|
||||
static uint8_t bleMcuUnpair[10] = {
|
||||
0x7b, 0x10, 0x53, 0x10, 0x02, 0x00, 0x00, 0x7d, 0x40, 0x05,
|
||||
0x7b, 0x12, 0x53, 0x00, 0x02, 0x00, 0x00, 0x7d, 0x40, 0x05,
|
||||
};
|
||||
|
||||
static uint8_t bleMcuBootload[11] = {
|
||||
@@ -138,8 +147,25 @@ static void ap2_ble_mouse(report_mouse_t *report){
|
||||
static void ap2_ble_system(uint16_t data) {
|
||||
}
|
||||
|
||||
static void ap2_ble_consumer(uint16_t data) {
|
||||
|
||||
|
||||
static inline uint16_t CONSUMER2AP2(uint16_t usage) {
|
||||
switch(usage) {
|
||||
case AUDIO_VOL_DOWN: return 0x04;
|
||||
case AUDIO_VOL_UP: return 0x02;
|
||||
case AUDIO_MUTE: return 0x01;
|
||||
case TRANSPORT_PLAY_PAUSE: return 0x08;
|
||||
case TRANSPORT_NEXT_TRACK: return 0x10;
|
||||
case TRANSPORT_PREV_TRACK: return 0x20;
|
||||
default: return 0x00;
|
||||
}
|
||||
}
|
||||
|
||||
static void ap2_ble_consumer(uint16_t data) {
|
||||
sdPut(&SD1, 0x0);
|
||||
sdWrite(&SD1, bleMcuSendConsumerReport, 10);
|
||||
sdPut(&SD1, CONSUMER2AP2(data));
|
||||
sdWrite(&SD1, 0x0, 3);
|
||||
}
|
||||
|
||||
/*!
|
||||
|
||||
Reference in New Issue
Block a user