53 lines
1.6 KiB
C++
53 lines
1.6 KiB
C++
#ifndef ESP32_BLE_MOUSE_H
|
|
#define ESP32_BLE_MOUSE_H
|
|
#include "sdkconfig.h"
|
|
#if defined(CONFIG_BT_ENABLED)
|
|
|
|
#include "BLECharacteristic.h"
|
|
#include "BLEHIDDevice.h"
|
|
#include "BleConnectionStatus.h"
|
|
|
|
#define MOUSE_LEFT 1
|
|
#define MOUSE_RIGHT 2
|
|
#define MOUSE_MIDDLE 4
|
|
#define MOUSE_BACK 8
|
|
#define MOUSE_FORWARD 16
|
|
#define MOUSE_ALL \
|
|
(MOUSE_LEFT | MOUSE_RIGHT | \
|
|
MOUSE_MIDDLE) #For compatibility with the Mouse library
|
|
|
|
class BleMouse {
|
|
private:
|
|
uint8_t _buttons;
|
|
BleConnectionStatus *connectionStatus;
|
|
BLEHIDDevice *hid;
|
|
BLECharacteristic *inputMouse;
|
|
void buttons(uint8_t b);
|
|
void rawAction(uint8_t msg[], char msgSize);
|
|
static void taskServer(void *pvParameter);
|
|
|
|
public:
|
|
BleMouse(std::string deviceName = "ESP32 Bluetooth Mouse",
|
|
std::string deviceManufacturer = "Espressif",
|
|
uint8_t batteryLevel = 100);
|
|
void begin(void);
|
|
void end(void);
|
|
void click(uint8_t b = MOUSE_LEFT);
|
|
void move(signed char x, signed char y, signed char wheel = 0,
|
|
signed char hWheel = 0);
|
|
void press(uint8_t b = MOUSE_LEFT); // press LEFT by default
|
|
void release(uint8_t b = MOUSE_LEFT); // release LEFT by default
|
|
bool isPressed(uint8_t b = MOUSE_LEFT); // check LEFT by default
|
|
bool isConnected(void);
|
|
void setBatteryLevel(uint8_t level);
|
|
uint8_t batteryLevel;
|
|
std::string deviceManufacturer;
|
|
std::string deviceName;
|
|
|
|
protected:
|
|
virtual void onStarted(BLEServer *pServer) {};
|
|
};
|
|
|
|
#endif // CONFIG_BT_ENABLED
|
|
#endif // ESP32_BLE_MOUSE_H
|