Skip to content

Commit 948fc11

Browse files
committed
added template params
1 parent 9c0e0e0 commit 948fc11

File tree

3 files changed

+37
-29
lines changed

3 files changed

+37
-29
lines changed

src/hardware/BLEMIDI_ArduinoBLE.h

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,11 @@ class Fifo {
6060
T raw[rawSize];
6161
};
6262

63+
template <class _Settings>
6364
class BLEMIDI_ArduinoBLE
6465
{
6566
private:
66-
static BLEMIDI_Transport<class BLEMIDI_ArduinoBLE, DefaultSettings>* _bleMidiTransport;
67+
static BLEMIDI_Transport<class BLEMIDI_ArduinoBLE<_Settings>, _Settings>* _bleMidiTransport;
6768
static BLEDevice* _central;
6869

6970
Fifo<byte, rawSize> mRxBuffer;
@@ -73,7 +74,7 @@ class BLEMIDI_ArduinoBLE
7374
{
7475
}
7576

76-
bool begin(const char*, BLEMIDI_Transport<class BLEMIDI_ArduinoBLE, DefaultSettings>*);
77+
bool begin(const char*, BLEMIDI_Transport<class BLEMIDI_ArduinoBLE<_Settings>, _Settings>*);
7778

7879
void end()
7980
{
@@ -183,10 +184,11 @@ class BLEMIDI_ArduinoBLE
183184
}
184185
};
185186

186-
BLEMIDI_Transport<class BLEMIDI_ArduinoBLE, DefaultSettings>* BLEMIDI_ArduinoBLE::_bleMidiTransport = nullptr;
187+
BLEMIDI_Transport<class BLEMIDI_ArduinoBLE<_Settings>, _Settings>* BLEMIDI_ArduinoBLE::_bleMidiTransport = nullptr;
187188
BLEDevice* BLEMIDI_ArduinoBLE::_central = nullptr;
188189

189-
bool BLEMIDI_ArduinoBLE::begin(const char* deviceName, BLEMIDI_Transport<class BLEMIDI_ArduinoBLE, DefaultSettings>* bleMidiTransport)
190+
template <class _Settings>
191+
bool BLEMIDI_ArduinoBLE<_Settings>::begin(const char* deviceName, BLEMIDI_Transport<class BLEMIDI_ArduinoBLE<_Settings>, _Settings>* bleMidiTransport)
190192
{
191193
_bleMidiTransport = bleMidiTransport;
192194

@@ -219,9 +221,9 @@ bool BLEMIDI_ArduinoBLE::begin(const char* deviceName, BLEMIDI_Transport<class B
219221

220222
/*! \brief Create an instance for nRF52 named <DeviceName>
221223
*/
222-
#define BLEMIDI_CREATE_CUSTOM_INSTANCE(DeviceName, Name, CustomSettings) \
223-
BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ArduinoBLE, CustomSettings> BLE##Name(DeviceName); \
224-
MIDI_NAMESPACE::MidiInterface<BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ArduinoBLE, CustomSettings>, BLEMIDI_NAMESPACE::MySettings> Name((BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ArduinoBLE, CustomSettings> &)BLE##Name);
224+
#define BLEMIDI_CREATE_CUSTOM_INSTANCE(DeviceName, Name, _Settings) \
225+
BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ArduinoBLE<_Settings>, _Settings> BLE##Name(DeviceName); \
226+
MIDI_NAMESPACE::MidiInterface<BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ArduinoBLE<_Settings>, _Settings>, BLEMIDI_NAMESPACE::MySettings> Name((BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ArduinoBLE<_Settings>, _Settings> &)BLE##Name);
225227

226228
/*! \brief Create an instance for nRF52 named <DeviceName>
227229
*/

src/hardware/BLEMIDI_ESP32.h

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,18 @@
88

99
BEGIN_BLEMIDI_NAMESPACE
1010

11+
template <class _Settings>
1112
class BLEMIDI_ESP32
1213
{
1314
private:
1415
BLEServer *_server = nullptr;
1516
BLEAdvertising *_advertising = nullptr;
1617
BLECharacteristic *_characteristic = nullptr;
1718

18-
BLEMIDI_Transport<class BLEMIDI_ESP32, DefaultSettings> *_bleMidiTransport = nullptr;
19+
BLEMIDI_Transport<class BLEMIDI_ESP32<_Settings>, _Settings> *_bleMidiTransport = nullptr;
1920

20-
friend class MyServerCallbacks;
21-
friend class MyCharacteristicCallbacks;
21+
template <class> friend class MyServerCallbacks;
22+
template <class> friend class MyCharacteristicCallbacks;
2223

2324
protected:
2425
QueueHandle_t mRxQueue;
@@ -28,7 +29,7 @@ class BLEMIDI_ESP32
2829
{
2930
}
3031

31-
bool begin(const char *, BLEMIDI_Transport<class BLEMIDI_ESP32, DefaultSettings> *);
32+
bool begin(const char *, BLEMIDI_Transport<class BLEMIDI_ESP32<_Settings>, _Settings> *);
3233

3334
void end()
3435
{
@@ -74,16 +75,17 @@ class BLEMIDI_ESP32
7475
}
7576
};
7677

78+
template <class _Settings>
7779
class MyServerCallbacks : public BLEServerCallbacks
7880
{
7981
public:
80-
MyServerCallbacks(BLEMIDI_ESP32 *bluetoothEsp32)
82+
MyServerCallbacks(BLEMIDI_ESP32<_Settings> *bluetoothEsp32)
8183
: _bluetoothEsp32(bluetoothEsp32)
8284
{
8385
}
8486

8587
protected:
86-
BLEMIDI_ESP32 *_bluetoothEsp32 = nullptr;
88+
BLEMIDI_ESP32<_Settings> *_bluetoothEsp32 = nullptr;
8789

8890
void onConnect(BLEServer *)
8991
{
@@ -100,16 +102,17 @@ class MyServerCallbacks : public BLEServerCallbacks
100102
}
101103
};
102104

105+
template <class _Settings>
103106
class MyCharacteristicCallbacks : public BLECharacteristicCallbacks
104107
{
105108
public:
106-
MyCharacteristicCallbacks(BLEMIDI_ESP32 *bluetoothEsp32)
109+
MyCharacteristicCallbacks(BLEMIDI_ESP32<_Settings> *bluetoothEsp32)
107110
: _bluetoothEsp32(bluetoothEsp32)
108111
{
109112
}
110113

111114
protected:
112-
BLEMIDI_ESP32 *_bluetoothEsp32 = nullptr;
115+
BLEMIDI_ESP32<_Settings> *_bluetoothEsp32 = nullptr;
113116

114117
void onWrite(BLECharacteristic *characteristic)
115118
{
@@ -121,7 +124,8 @@ class MyCharacteristicCallbacks : public BLECharacteristicCallbacks
121124
}
122125
};
123126

124-
bool BLEMIDI_ESP32::begin(const char *deviceName, BLEMIDI_Transport<class BLEMIDI_ESP32, DefaultSettings> *bleMidiTransport)
127+
template <class _Settings>
128+
bool BLEMIDI_ESP32<_Settings>::begin(const char *deviceName, BLEMIDI_Transport<class BLEMIDI_ESP32<_Settings>, _Settings> *bleMidiTransport)
125129
{
126130
_bleMidiTransport = bleMidiTransport;
127131

@@ -132,7 +136,7 @@ bool BLEMIDI_ESP32::begin(const char *deviceName, BLEMIDI_Transport<class BLEMID
132136
mRxQueue = xQueueCreate(_Settings::MaxBufferSize, sizeof(uint8_t));
133137

134138
_server = BLEDevice::createServer();
135-
_server->setCallbacks(new MyServerCallbacks(this));
139+
_server->setCallbacks(new MyServerCallbacks<_Settings>(this));
136140

137141
// Create the BLE Service
138142
auto service = _server->createService(BLEUUID(SERVICE_UUID));
@@ -147,7 +151,7 @@ bool BLEMIDI_ESP32::begin(const char *deviceName, BLEMIDI_Transport<class BLEMID
147151
// Add CCCD 0x2902 to allow notify
148152
_characteristic->addDescriptor(new BLE2902());
149153

150-
_characteristic->setCallbacks(new MyCharacteristicCallbacks(this));
154+
_characteristic->setCallbacks(new MyCharacteristicCallbacks<_Settings>(this));
151155

152156
auto _security = new BLESecurity();
153157
_security->setAuthenticationMode(ESP_LE_AUTH_BOND);
@@ -166,9 +170,9 @@ bool BLEMIDI_ESP32::begin(const char *deviceName, BLEMIDI_Transport<class BLEMID
166170

167171
/*! \brief Create an instance for ESP32 named <DeviceName>
168172
*/
169-
#define BLEMIDI_CREATE_CUSTOM_INSTANCE(DeviceName, Name, CustomSettings) \
170-
BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ESP32, CustomSettings> BLE##Name(DeviceName); \
171-
MIDI_NAMESPACE::MidiInterface<BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ESP32, CustomSettings>, BLEMIDI_NAMESPACE::MySettings> Name((BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ESP32, CustomSettings> &)BLE##Name);
173+
#define BLEMIDI_CREATE_CUSTOM_INSTANCE(DeviceName, Name, _Settings) \
174+
BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ESP32<_Settings>, _Settings> BLE##Name(DeviceName); \
175+
MIDI_NAMESPACE::MidiInterface<BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ESP32<_Settings>, _Settings>, BLEMIDI_NAMESPACE::MySettings> Name((BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ESP32<_Settings>, _Settings> &)BLE##Name);
172176

173177
/*! \brief Create an instance for ESP32 named <DeviceName>
174178
*/

src/hardware/BLEMIDI_nRF52.h

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,24 @@
66

77
BEGIN_BLEMIDI_NAMESPACE
88

9+
template <class _Settings>
910
class BLEMIDI_nRF52
1011
{
1112
private:
1213
// BLEDis bledis;
1314
// BLEMidi blemidi;
1415

15-
BLEMIDI_NAMESPACE::BLEMIDI_Transport<class BLEMIDI_nRF52, DefaultSettings>* _bleMidiTransport;
16+
BLEMIDI_NAMESPACE::BLEMIDI_Transport<class BLEMIDI_nRF52<_Settings>, _Settings>* _bleMidiTransport;
1617

17-
friend class MyServerCallbacks;
18-
friend class MyCharacteristicCallbacks;
18+
template <class> friend class MyServerCallbacks;
19+
template <class> friend class MyCharacteristicCallbacks;
1920

2021
public:
2122
BLEMIDI_nRF52()
2223
{
2324
}
2425

25-
bool begin(const char*, BLEMIDI_NAMESPACE::BLEMIDI_Transport<class BLEMIDI_nRF52, DefaultSettings>*);
26+
bool begin(const char*, BLEMIDI_NAMESPACE::BLEMIDI_Transport<class BLEMIDI_nRF52<_Settings>, _Settings>*);
2627

2728
void end()
2829
{
@@ -61,7 +62,8 @@ class BLEMIDI_nRF52
6162
}
6263
};
6364

64-
bool BLEMIDI_nRF52::begin(const char* deviceName, BLEMIDI_NAMESPACE::BLEMIDI_Transport<class BLEMIDI_nRF52, DefaultSettings>* bleMidiTransport)
65+
template <class _Settings>
66+
bool BLEMIDI_nRF52<_Settings>::begin(const char* deviceName, BLEMIDI_NAMESPACE::BLEMIDI_Transport<class BLEMIDI_nRF52<_Settings>, _Settings>* bleMidiTransport)
6567
{
6668
_bleMidiTransport = bleMidiTransport;
6769

@@ -116,9 +118,9 @@ bool BLEMIDI_nRF52::begin(const char* deviceName, BLEMIDI_NAMESPACE::BLEMIDI_Tra
116118

117119
/*! \brief Create an instance for nRF52 named <DeviceName>
118120
*/
119-
#define BLEMIDI_CREATE_CUSTOM_INSTANCE(DeviceName, Name, CustomSettings) \
120-
BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_nRF52, CustomSettings> BLE##Name(DeviceName); \
121-
MIDI_NAMESPACE::MidiInterface<BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_nRF52, CustomSettings>, BLEMIDI_NAMESPACE::MySettings> Name((BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_nRF52, CustomSettings> &)BLE##Name);
121+
#define BLEMIDI_CREATE_CUSTOM_INSTANCE(DeviceName, Name, _Settings) \
122+
BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_nRF52<_Settings>, _Settings> BLE##Name(DeviceName); \
123+
MIDI_NAMESPACE::MidiInterface<BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_nRF52<_Settings>, _Settings>, BLEMIDI_NAMESPACE::MySettings> Name((BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_nRF52<_Settings>, _Settings> &)BLE##Name);
122124

123125
/*! \brief Create an instance for nRF52 named <DeviceName>
124126
*/

0 commit comments

Comments
 (0)