Skip to content

Commit c8334f6

Browse files
committed
rewrote non-customer constructors
1 parent 8536bc4 commit c8334f6

File tree

5 files changed

+37
-42
lines changed

5 files changed

+37
-42
lines changed

src/hardware/BLEMIDI_ArduinoBLE.h

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,17 @@
22

33
#include <ArduinoBLE.h>
44

5-
BLEService midiService(SERVICE_UUID);
6-
BLEStringCharacteristic midiChar(CHARACTERISTIC_UUID, // standard 16-bit characteristic UUID
7-
BLERead | BLEWrite | BLENotify | BLEWriteWithoutResponse, 16); // remote clients will be able to get notifications if this characteristic changes
8-
95
#define BLE_POLLING
6+
//#define BLE_EVENTS // TODO: requires static function (don't like)
107

118
BEGIN_BLEMIDI_NAMESPACE
129

13-
template<typename T, int rawSize>
10+
BLEService midiService(SERVICE_UUID);
11+
12+
BLEStringCharacteristic midiChar(CHARACTERISTIC_UUID, // standard 16-bit characteristic UUID
13+
BLERead | BLEWrite | BLENotify | BLEWriteWithoutResponse, 16); // remote clients will be able to get notifications if this characteristic changes
14+
15+
template<typename T, short rawSize>
1416
class Fifo {
1517
public:
1618
const size_t size; //speculative feature, in case it's needed
@@ -64,10 +66,10 @@ template <class _Settings>
6466
class BLEMIDI_ArduinoBLE
6567
{
6668
private:
67-
static BLEMIDI_Transport<class BLEMIDI_ArduinoBLE<_Settings>, _Settings>* _bleMidiTransport;
68-
static BLEDevice* _central;
69+
BLEMIDI_Transport<class BLEMIDI_ArduinoBLE<_Settings>, _Settings>* _bleMidiTransport;
70+
BLEDevice* _central;
6971

70-
Fifo<byte, rawSize> mRxBuffer;
72+
Fifo<byte, _Settings::MaxBufferSize> mRxBuffer;
7173

7274
public:
7375
BLEMIDI_ArduinoBLE()
@@ -78,7 +80,6 @@ class BLEMIDI_ArduinoBLE
7880

7981
void end()
8082
{
81-
8283
}
8384

8485
void write(uint8_t* buffer, size_t length)
@@ -112,8 +113,8 @@ class BLEMIDI_ArduinoBLE
112113
return false;
113114
#endif
114115
#ifdef BLE_EVENTS
115-
/ BLE.poll();
116-
return ; // ??
116+
BLE.poll();
117+
return false;
117118
#endif
118119
}
119120

@@ -124,7 +125,7 @@ class BLEMIDI_ArduinoBLE
124125
}
125126

126127
protected:
127-
static void receive(const unsigned char* buffer, size_t length)
128+
void receive(const unsigned char* buffer, size_t length)
128129
{
129130
// forward the buffer so it can be parsed
130131
_bleMidiTransport->receive((uint8_t*)buffer, length);
@@ -160,22 +161,23 @@ class BLEMIDI_ArduinoBLE
160161
return true;
161162
}
162163

163-
static void blePeripheralConnectHandler(BLEDevice central)
164+
void blePeripheralConnectHandler(BLEDevice central)
164165
{
165166
_central = &central;
167+
166168
if (_bleMidiTransport->_connectedCallback)
167169
_bleMidiTransport->_connectedCallback();
168170
}
169171

170-
static void blePeripheralDisconnectHandler(BLEDevice central)
172+
void blePeripheralDisconnectHandler(BLEDevice central)
171173
{
172174
if (_bleMidiTransport->_disconnectedCallback)
173175
_bleMidiTransport->_disconnectedCallback();
174176

175177
_central = nullptr;
176178
}
177179

178-
static void characteristicWritten(BLEDevice central, BLECharacteristic characteristic) {
180+
void characteristicWritten(BLEDevice central, BLECharacteristic characteristic) {
179181
auto buffer = characteristic.value();
180182
auto length = characteristic.valueLength();
181183

@@ -184,14 +186,12 @@ class BLEMIDI_ArduinoBLE
184186
}
185187
};
186188

187-
BLEMIDI_Transport<class BLEMIDI_ArduinoBLE<_Settings>, _Settings>* BLEMIDI_ArduinoBLE::_bleMidiTransport = nullptr;
188-
BLEDevice* BLEMIDI_ArduinoBLE::_central = nullptr;
189-
190189
template <class _Settings>
191190
bool BLEMIDI_ArduinoBLE<_Settings>::begin(const char* deviceName, BLEMIDI_Transport<class BLEMIDI_ArduinoBLE<_Settings>, _Settings>* bleMidiTransport)
192191
{
193192
_bleMidiTransport = bleMidiTransport;
194193

194+
// initialize the Bluetooth® Low Energy hardware
195195
if (!BLE.begin())
196196
return false;
197197

@@ -219,21 +219,20 @@ bool BLEMIDI_ArduinoBLE<_Settings>::begin(const char* deviceName, BLEMIDI_Transp
219219
return true;
220220
}
221221

222-
/*! \brief Create an instance for nRF52 named <DeviceName>
222+
/*! \brief Create an instance for ArduinoBLE <DeviceName>
223223
*/
224224
#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);
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);
227227

228-
/*! \brief Create an instance for nRF52 named <DeviceName>
228+
/*! \brief Create an instance for ArduinoBLE <DeviceName>
229229
*/
230230
#define BLEMIDI_CREATE_INSTANCE(DeviceName, Name) \
231-
BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ArduinoBLE> BLE##Name(DeviceName); \
232-
MIDI_NAMESPACE::MidiInterface<BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ArduinoBLE>, BLEMIDI_NAMESPACE::MySettings> Name((BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ArduinoBLE> &)BLE##Name);
231+
BLEMIDI_CREATE_CUSTOM_INSTANCE (DeviceName, Name, BLEMIDI_NAMESPACE::DefaultSettings)
233232

234-
/*! \brief Create a default instance for nRF52 (Nano 33 BLE) named BLE-MIDI
233+
/*! \brief Create a default instance for ArduinoBLE named BLE-MIDI
235234
*/
236235
#define BLEMIDI_CREATE_DEFAULT_INSTANCE() \
237-
BLEMIDI_CREATE_INSTANCE("BLE-MIDI", MIDI)
236+
BLEMIDI_CREATE_INSTANCE("BLE-MIDI", MIDI)
238237

239238
END_BLEMIDI_NAMESPACE

src/hardware/BLEMIDI_Client_ESP32.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -632,9 +632,8 @@ END_BLEMIDI_NAMESPACE
632632
/*! \brief Create an instance for ESP32 named <DeviceName>, and advertise it like "Prefix + <DeviceName> + Subfix"
633633
It will try to connect to a specific server with equal name or addr than <DeviceName>. If <DeviceName> is "", it will connect to first midi server
634634
*/
635-
#define BLEMIDI_CREATE_INSTANCE(DeviceName, Name) \
636-
BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_Client_ESP32> BLE##Name(DeviceName); \
637-
MIDI_NAMESPACE::MidiInterface<BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_Client_ESP32>, BLEMIDI_NAMESPACE::MySettings> Name((BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_Client_ESP32> &)BLE##Name);
635+
#define BLEMIDI_CREATE_INSTANCE(DeviceName, Name) \
636+
BLEMIDI_CREATE_CUSTOM_INSTANCE (DeviceName, Name, BLEMIDI_NAMESPACE::DefaultSettings)
638637

639638
/*! \brief Create a default instance for ESP32 named BLEMIDI-CLIENT.
640639
It will try to connect to first midi ble server found.

src/hardware/BLEMIDI_ESP32.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -170,15 +170,14 @@ bool BLEMIDI_ESP32<_Settings>::begin(const char *deviceName, BLEMIDI_Transport<c
170170

171171
/*! \brief Create a customer instance for ESP32 named <DeviceName>
172172
*/
173-
#define BLEMIDI_CREATE_CUSTOM_INSTANCE(DeviceName, Name, _Settings) \
173+
#define BLEMIDI_CREATE_CUSTOM_INSTANCE(DeviceName, Name, _Settings) \
174174
BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ESP32<_Settings>, _Settings> BLE##Name(DeviceName); \
175175
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);
176176

177177
/*! \brief Create an instance for ESP32 named <DeviceName>
178178
*/
179-
#define BLEMIDI_CREATE_INSTANCE(DeviceName, Name) \
180-
BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ESP32> BLE##Name(DeviceName); \
181-
MIDI_NAMESPACE::MidiInterface<BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ESP32>, BLEMIDI_NAMESPACE::MySettings> Name((BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ESP32> &)BLE##Name);
179+
#define BLEMIDI_CREATE_INSTANCE(DeviceName, Name) \
180+
BLEMIDI_CREATE_CUSTOM_INSTANCE (DeviceName, Name, BLEMIDI_NAMESPACE::DefaultSettings)
182181

183182
/*! \brief Create a default instance for ESP32 named BLE-MIDI
184183
*/

src/hardware/BLEMIDI_ESP32_NimBLE.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -162,15 +162,14 @@ bool BLEMIDI_ESP32_NimBLE<_Settings>::begin(const char *deviceName, BLEMIDI_Tran
162162

163163
/*! \brief Create an instance for ESP32 named <DeviceName>
164164
*/
165-
#define BLEMIDI_CREATE_CUSTOM_INSTANCE(DeviceName, Name, _Settings) \
165+
#define BLEMIDI_CREATE_CUSTOM_INSTANCE(DeviceName, Name, _Settings) \
166166
BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ESP32_NimBLE<_Settings>, _Settings> BLE##Name(DeviceName); \
167167
MIDI_NAMESPACE::MidiInterface<BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ESP32_NimBLE<_Settings>, _Settings>, BLEMIDI_NAMESPACE::MySettings> Name((BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ESP32_NimBLE<_Settings>, _Settings> &)BLE##Name);
168168

169169
/*! \brief Create an instance for ESP32 named <DeviceName>
170170
*/
171-
#define BLEMIDI_CREATE_INSTANCE(DeviceName, Name) \
172-
BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ESP32_NimBLE> BLE##Name(DeviceName); \
173-
MIDI_NAMESPACE::MidiInterface<BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ESP32_NimBLE>, BLEMIDI_NAMESPACE::MySettings> Name((BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ESP32_NimBLE> &)BLE##Name);
171+
#define BLEMIDI_CREATE_INSTANCE(DeviceName, Name) \
172+
BLEMIDI_CREATE_CUSTOM_INSTANCE (DeviceName, Name, BLEMIDI_NAMESPACE::DefaultSettings)
174173

175174
/*! \brief Create a default instance for ESP32 named BLE-MIDI
176175
*/

src/hardware/BLEMIDI_nRF52.h

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -119,18 +119,17 @@ bool BLEMIDI_nRF52<_Settings>::begin(const char* deviceName, BLEMIDI_NAMESPACE::
119119
/*! \brief Create an instance for nRF52 named <DeviceName>
120120
*/
121121
#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);
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);
124124

125125
/*! \brief Create an instance for nRF52 named <DeviceName>
126126
*/
127127
#define BLEMIDI_CREATE_INSTANCE(DeviceName, Name) \
128-
BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_nRF52> BLE##Name(DeviceName); \
129-
MIDI_NAMESPACE::MidiInterface<BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_nRF52>, BLEMIDI_NAMESPACE::MySettings> Name((BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_nRF52> &)BLE##Name);
128+
BLEMIDI_CREATE_CUSTOM_INSTANCE (DeviceName, Name, BLEMIDI_NAMESPACE::DefaultSettings)
130129

131130
/*! \brief Create a default instance for nRF52 named BLE-MIDI
132131
*/
133132
#define BLEMIDI_CREATE_DEFAULT_INSTANCE() \
134-
BLEMIDI_CREATE_INSTANCE("nRF85BLE-MIDI", MIDI)
133+
BLEMIDI_CREATE_INSTANCE("nRF85BLE-MIDI", MIDI)
135134

136135
END_BLEMIDI_NAMESPACE

0 commit comments

Comments
 (0)