Skip to content

Commit 696442d

Browse files
committed
allow initialisation outside of begin()
- originally raised in upstream T-vK/ESP32-BLE-Keyboard#248
1 parent 1f04c04 commit 696442d

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

NimBleKeyboard.cpp

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,19 @@ BleKeyboard::BleKeyboard(std::string deviceName, std::string deviceManufacturer,
8989
, deviceManufacturer(std::string(deviceManufacturer).substr(0,15))
9090
, batteryLevel(batteryLevel) {}
9191

92+
void BleKeyboard::init(void)
93+
{
94+
if(!initialised) {
95+
BLEDevice::init(deviceName);
96+
BLEServer* pServer = BLEDevice::createServer();
97+
pServer->setCallbacks(this);
98+
initialised = true;
99+
}
100+
}
101+
92102
void BleKeyboard::begin(void)
93103
{
94-
NimBLEDevice::init(deviceName);
104+
init();
95105
NimBLEServer* pServer = NimBLEDevice::createServer();
96106
pServer->setCallbacks(this);
97107
// Set server auto-restart advertise on
@@ -506,4 +516,4 @@ void BleKeyboard::delay_ms(uint64_t ms) {
506516
}
507517
while(esp_timer_get_time() < e) {}
508518
}
509-
}
519+
}

NimBleKeyboard.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ class BleKeyboard : public Print, public NimBLEServerCallbacks, public NimBLECha
124124
bool connected = false;
125125
uint32_t _delay_ms = 7;
126126
void delay_ms(uint64_t ms);
127+
bool initialised = false;
127128

128129
uint16_t vid = 0x05ac;
129130
uint16_t pid = 0x820a;
@@ -132,6 +133,7 @@ class BleKeyboard : public Print, public NimBLEServerCallbacks, public NimBLECha
132133
public:
133134
BleKeyboard(std::string deviceName = "ESP32 Keyboard", std::string deviceManufacturer = "Espressif", uint8_t batteryLevel = 100);
134135
void begin(void);
136+
void init(void);
135137
void end(void);
136138
void sendReport(KeyReport* keys);
137139
void sendReport(MediaKeyReport* keys);

0 commit comments

Comments
 (0)