Skip to content

Commit 12c1e13

Browse files
committed
first commit for customSettings
1 parent 8dee1f7 commit 12c1e13

File tree

5 files changed

+98
-15
lines changed

5 files changed

+98
-15
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
#include <BLEMIDI_Transport.h>
2+
3+
struct CustomBufferSizeSettings : public BLEMIDI_NAMESPACE::DefaultSettings {
4+
static const size_t MaxBufferSize = 16; // was 64
5+
};
6+
7+
#include <hardware/BLEMIDI_ESP32_NimBLE.h>
8+
//#include <hardware/BLEMIDI_ESP32.h>
9+
//#include <hardware/BLEMIDI_nRF52.h>
10+
//#include <hardware/BLEMIDI_ArduinoBLE.h>
11+
12+
BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ESP32_NimBLE, CustomBufferSizeSettings> BLEMIDI("Esp32-NimBLE-MIDI"); \
13+
MIDI_NAMESPACE::MidiInterface<BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ESP32_NimBLE>, BLEMIDI_NAMESPACE::MySettings> MIDI((BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ESP32_NimBLE> &)BLEMIDI);
14+
15+
unsigned long t0 = millis();
16+
bool isConnected = false;
17+
18+
// -----------------------------------------------------------------------------
19+
// When BLE connected, LED will turn on (indication that connection was successful)
20+
// When receiving a NoteOn, LED will go out, on NoteOff, light comes back on.
21+
// This is an easy and conveniant way to show that the connection is alive and working.
22+
// -----------------------------------------------------------------------------
23+
void setup()
24+
{
25+
MIDI.begin();
26+
27+
pinMode(LED_BUILTIN, OUTPUT);
28+
digitalWrite(LED_BUILTIN, LOW);
29+
30+
BLEMIDI.setHandleConnected([]() {
31+
isConnected = true;
32+
digitalWrite(LED_BUILTIN, HIGH);
33+
});
34+
35+
BLEMIDI.setHandleDisconnected([]() {
36+
isConnected = false;
37+
digitalWrite(LED_BUILTIN, LOW);
38+
});
39+
40+
MIDI.setHandleNoteOn([](byte channel, byte note, byte velocity) {
41+
digitalWrite(LED_BUILTIN, LOW);
42+
});
43+
MIDI.setHandleNoteOff([](byte channel, byte note, byte velocity) {
44+
digitalWrite(LED_BUILTIN, HIGH);
45+
});
46+
}
47+
48+
// -----------------------------------------------------------------------------
49+
//
50+
// -----------------------------------------------------------------------------
51+
void loop()
52+
{
53+
MIDI.read();
54+
55+
if (isConnected && (millis() - t0) > 1000)
56+
{
57+
t0 = millis();
58+
59+
MIDI.sendNoteOn (60, 100, 1); // note 60, velocity 100 on channel 1
60+
}
61+
}

src/hardware/BLEMIDI_ArduinoBLE.h

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ class Fifo {
6363
class BLEMIDI_ArduinoBLE
6464
{
6565
private:
66-
static BLEMIDI_Transport<class BLEMIDI_ArduinoBLE>* _bleMidiTransport;
66+
static BLEMIDI_Transport<class BLEMIDI_ArduinoBLE, DefaultSettings>* _bleMidiTransport;
6767
static BLEDevice* _central;
6868

6969
Fifo<byte, 64> mRxBuffer;
@@ -73,7 +73,7 @@ class BLEMIDI_ArduinoBLE
7373
{
7474
}
7575

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

7878
void end()
7979
{
@@ -183,10 +183,10 @@ class BLEMIDI_ArduinoBLE
183183
}
184184
};
185185

186-
BLEMIDI_Transport<class BLEMIDI_ArduinoBLE>* BLEMIDI_ArduinoBLE::_bleMidiTransport = nullptr;
186+
BLEMIDI_Transport<class BLEMIDI_ArduinoBLE, DefaultSettings>* BLEMIDI_ArduinoBLE::_bleMidiTransport = nullptr;
187187
BLEDevice* BLEMIDI_ArduinoBLE::_central = nullptr;
188188

189-
bool BLEMIDI_ArduinoBLE::begin(const char* deviceName, BLEMIDI_Transport<class BLEMIDI_ArduinoBLE>* bleMidiTransport)
189+
bool BLEMIDI_ArduinoBLE::begin(const char* deviceName, BLEMIDI_Transport<class BLEMIDI_ArduinoBLE, DefaultSettings>* bleMidiTransport)
190190
{
191191
_bleMidiTransport = bleMidiTransport;
192192

@@ -217,6 +217,12 @@ bool BLEMIDI_ArduinoBLE::begin(const char* deviceName, BLEMIDI_Transport<class B
217217
return true;
218218
}
219219

220+
/*! \brief Create an instance for nRF52 named <DeviceName>
221+
*/
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);
225+
220226
/*! \brief Create an instance for nRF52 named <DeviceName>
221227
*/
222228
#define BLEMIDI_CREATE_INSTANCE(DeviceName, Name) \

src/hardware/BLEMIDI_ESP32.h

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class BLEMIDI_ESP32
1515
BLEAdvertising *_advertising = nullptr;
1616
BLECharacteristic *_characteristic = nullptr;
1717

18-
BLEMIDI_Transport<class BLEMIDI_ESP32> *_bleMidiTransport = nullptr;
18+
BLEMIDI_Transport<class BLEMIDI_ESP32, DefaultSettings> *_bleMidiTransport = nullptr;
1919

2020
friend class MyServerCallbacks;
2121
friend class MyCharacteristicCallbacks;
@@ -28,7 +28,7 @@ class BLEMIDI_ESP32
2828
{
2929
}
3030

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

3333
void end()
3434
{
@@ -121,7 +121,7 @@ class MyCharacteristicCallbacks : public BLECharacteristicCallbacks
121121
}
122122
};
123123

124-
bool BLEMIDI_ESP32::begin(const char *deviceName, BLEMIDI_Transport<class BLEMIDI_ESP32> *bleMidiTransport)
124+
bool BLEMIDI_ESP32::begin(const char *deviceName, BLEMIDI_Transport<class BLEMIDI_ESP32, DefaultSettings> *bleMidiTransport)
125125
{
126126
_bleMidiTransport = bleMidiTransport;
127127

@@ -161,11 +161,15 @@ bool BLEMIDI_ESP32::begin(const char *deviceName, BLEMIDI_Transport<class BLEMID
161161
_advertising->setAppearance(0x00);
162162
_advertising->start();
163163

164-
Serial.println("begin");
165-
166164
return true;
167165
}
168166

167+
/*! \brief Create an instance for ESP32 named <DeviceName>
168+
*/
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);
172+
169173
/*! \brief Create an instance for ESP32 named <DeviceName>
170174
*/
171175
#define BLEMIDI_CREATE_INSTANCE(DeviceName, Name) \

src/hardware/BLEMIDI_ESP32_NimBLE.h

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class BLEMIDI_ESP32_NimBLE
1212
BLEAdvertising *_advertising = nullptr;
1313
BLECharacteristic *_characteristic = nullptr;
1414

15-
BLEMIDI_Transport<class BLEMIDI_ESP32_NimBLE> *_bleMidiTransport = nullptr;
15+
BLEMIDI_Transport<class BLEMIDI_ESP32_NimBLE, DefaultSettings> *_bleMidiTransport = nullptr;
1616

1717
friend class MyServerCallbacks;
1818
friend class MyCharacteristicCallbacks;
@@ -25,7 +25,7 @@ class BLEMIDI_ESP32_NimBLE
2525
{
2626
}
2727

28-
bool begin(const char *, BLEMIDI_Transport<class BLEMIDI_ESP32_NimBLE> *);
28+
bool begin(const char *, BLEMIDI_Transport<class BLEMIDI_ESP32_NimBLE, DefaultSettings> *);
2929

3030
void end()
3131
{
@@ -114,7 +114,7 @@ class MyCharacteristicCallbacks : public BLECharacteristicCallbacks
114114
}
115115
};
116116

117-
bool BLEMIDI_ESP32_NimBLE::begin(const char *deviceName, BLEMIDI_Transport<class BLEMIDI_ESP32_NimBLE> *bleMidiTransport)
117+
bool BLEMIDI_ESP32_NimBLE::begin(const char *deviceName, BLEMIDI_Transport<class BLEMIDI_ESP32_NimBLE, DefaultSettings> *bleMidiTransport)
118118
{
119119
_bleMidiTransport = bleMidiTransport;
120120

@@ -156,6 +156,12 @@ bool BLEMIDI_ESP32_NimBLE::begin(const char *deviceName, BLEMIDI_Transport<class
156156
return true;
157157
}
158158

159+
/*! \brief Create an instance for ESP32 named <DeviceName>
160+
*/
161+
#define BLEMIDI_CREATE_CUSTOM_INSTANCE(DeviceName, Name, CustomSettings) \
162+
BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ESP32_NimBLE, CustomSettings> BLE##Name(DeviceName); \
163+
MIDI_NAMESPACE::MidiInterface<BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ESP32_NimBLE, CustomSettings>, BLEMIDI_NAMESPACE::MySettings> Name((BLEMIDI_NAMESPACE::BLEMIDI_Transport<BLEMIDI_NAMESPACE::BLEMIDI_ESP32_NimBLE, CustomSettings> &)BLE##Name);
164+
159165
/*! \brief Create an instance for ESP32 named <DeviceName>
160166
*/
161167
#define BLEMIDI_CREATE_INSTANCE(DeviceName, Name) \

src/hardware/BLEMIDI_nRF52.h

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class BLEMIDI_nRF52
1212
// BLEDis bledis;
1313
// BLEMidi blemidi;
1414

15-
BLEMIDI_NAMESPACE::BLEMIDI_Transport<class BLEMIDI_nRF52>* _bleMidiTransport;
15+
BLEMIDI_NAMESPACE::BLEMIDI_Transport<class BLEMIDI_nRF52, DefaultSettings>* _bleMidiTransport;
1616

1717
friend class MyServerCallbacks;
1818
friend class MyCharacteristicCallbacks;
@@ -22,7 +22,7 @@ class BLEMIDI_nRF52
2222
{
2323
}
2424

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

2727
void end()
2828
{
@@ -61,7 +61,7 @@ class BLEMIDI_nRF52
6161
}
6262
};
6363

64-
bool BLEMIDI_nRF52::begin(const char* deviceName, BLEMIDI_NAMESPACE::BLEMIDI_Transport<class BLEMIDI_nRF52>* bleMidiTransport)
64+
bool BLEMIDI_nRF52::begin(const char* deviceName, BLEMIDI_NAMESPACE::BLEMIDI_Transport<class BLEMIDI_nRF52, DefaultSettings>* bleMidiTransport)
6565
{
6666
_bleMidiTransport = bleMidiTransport;
6767

@@ -114,6 +114,12 @@ bool BLEMIDI_nRF52::begin(const char* deviceName, BLEMIDI_NAMESPACE::BLEMIDI_Tra
114114
return true;
115115
}
116116

117+
/*! \brief Create an instance for nRF52 named <DeviceName>
118+
*/
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);
122+
117123
/*! \brief Create an instance for nRF52 named <DeviceName>
118124
*/
119125
#define BLEMIDI_CREATE_INSTANCE(DeviceName, Name) \

0 commit comments

Comments
 (0)