BLE-Gamepad-Client 0.3.2
Loading...
Searching...
No Matches
BLEControllerInternal.h
1#pragma once
2
3#include <NimBLEAddress.h>
4#include "BLEBatteryEvent.h"
5#include "BLEControllerAdapter.h"
6#include "BLEControlsEvent.h"
7#include "BLEIncomingSignal.h"
8#include "BLEOutgoingSignal.h"
9
10using OnControlsUpdate = std::function<void(BLEControlsEvent& e)>;
11using OnBatteryUpdate = std::function<void(BLEBatteryEvent& e)>;
12using OnConnect = std::function<void(NimBLEAddress a)>;
13using OnDisconnect = std::function<void(NimBLEAddress a)>;
14
15class BLEControllerInternal {
16 public:
17 explicit BLEControllerInternal(NimBLEAddress allowedAddress);
18 ~BLEControllerInternal() = default;
19 bool init(BLEControllerAdapter& adapter);
20 bool deinit(bool disconnected);
21 bool isInitialized() const;
22 NimBLEAddress getAddress() const;
23 void setAddress(NimBLEAddress address);
24 NimBLEAddress getAllowedAddress() const;
25 NimBLEAddress getLastAddress() const;
26 void setLastAddress(NimBLEAddress address);
27 void onConnect(const OnConnect& callback);
28 void onDisconnect(const OnDisconnect& callback);
29 BLEControlsSignal& getControls();
30 BLEBatterySignal& getBattery();
31 BLEVibrationsSignal& getVibrations();
32
33 private:
34 bool _initialized;
35 NimBLEAddress _address;
36 NimBLEAddress _allowedAddress;
37 NimBLEAddress _lastAddress;
38 OnConnect _onConnect{};
39 OnDisconnect _onDisconnect{};
40 BLEControlsSignal _controls{};
41 BLEBatterySignal _battery{};
42 BLEVibrationsSignal _vibrations{};
43};
Definition BLEBatteryEvent.h:5
Definition BLEControllerAdapter.h:14
Definition BLEControlsEvent.h:5