diff --git a/examples/CustomerBufferSize/CustomerBufferSize.ino b/examples/CustomerBufferSize/CustomerBufferSize.ino index 3303207..3dc8515 100644 --- a/examples/CustomerBufferSize/CustomerBufferSize.ino +++ b/examples/CustomerBufferSize/CustomerBufferSize.ino @@ -6,7 +6,6 @@ #include //#include -//#include //#include BLEMIDI_CREATE_CUSTOM_INSTANCE("Esp32-NimBLE-MIDI", MIDI, CustomBufferSizeSettings); diff --git a/examples/MidiBle/MidiBle.ino b/examples/MidiBle/MidiBle.ino index b1cfa58..69968b1 100644 --- a/examples/MidiBle/MidiBle.ino +++ b/examples/MidiBle/MidiBle.ino @@ -2,7 +2,6 @@ //#include #include -//#include //#include BLEMIDI_CREATE_DEFAULT_INSTANCE() diff --git a/examples/MidiBle_Client/MidiBle_Client.ino b/examples/MidiBle_Client/MidiBle_Client.ino index f11f9dd..5109890 100644 --- a/examples/MidiBle_Client/MidiBle_Client.ino +++ b/examples/MidiBle_Client/MidiBle_Client.ino @@ -36,7 +36,6 @@ //#include //#include -//#include //#include BLEMIDI_CREATE_CUSTOM_INSTANCE("Esp32-BLE-MIDI", MIDI, CustomBufferSizeSettings); // Connect to first server found diff --git a/examples/SysEx_Receive/SysEx_Receive.ino b/examples/SysEx_Receive/SysEx_Receive.ino index 98cc209..3b3adb1 100644 --- a/examples/SysEx_Receive/SysEx_Receive.ino +++ b/examples/SysEx_Receive/SysEx_Receive.ino @@ -2,7 +2,6 @@ //#include #include -//#include //#include BLEMIDI_CREATE_INSTANCE("CustomName", MIDI) diff --git a/examples/SysEx_Send/SysEx_Send.ino b/examples/SysEx_Send/SysEx_Send.ino index b1c28b8..9e83e60 100644 --- a/examples/SysEx_Send/SysEx_Send.ino +++ b/examples/SysEx_Send/SysEx_Send.ino @@ -2,7 +2,6 @@ #include //#include -//#include //#include byte sysex4[] = { 0xF0, 0x43, 0x20, 0xF7 }; diff --git a/src/hardware/BLEMIDI_nRF52.h b/src/hardware/BLEMIDI_nRF52.h index 9e2da5e..06544c2 100644 --- a/src/hardware/BLEMIDI_nRF52.h +++ b/src/hardware/BLEMIDI_nRF52.h @@ -2,7 +2,7 @@ // I N D E V E L O P M E N T -//#include +#include BEGIN_BLEMIDI_NAMESPACE @@ -10,13 +10,13 @@ template class BLEMIDI_nRF52 { private: -// BLEDis bledis; -// BLEMidi blemidi; + BLEDis bledis; + // BLEMidi blemidi; BLEMIDI_NAMESPACE::BLEMIDI_Transport, _Settings>* _bleMidiTransport; - template friend class MyServerCallbacks; - template friend class MyCharacteristicCallbacks; + // template friend class MyServerCallbacks; + // template friend class MyCharacteristicCallbacks; public: BLEMIDI_nRF52() @@ -62,6 +62,23 @@ protected: } }; +void connect_callback(uint16_t conn_handle) +{ + Serial.println("Connected"); + + // Get the reference to current connection + BLEConnection* connection = Bluefruit.Connection(conn_handle); +} + +void disconnect_callback(uint16_t conn_handle, uint8_t reason) +{ + (void) conn_handle; + (void) reason; + + Serial.println(); + Serial.print("Disconnected, reason = 0x"); Serial.println(reason, HEX); +} + template bool BLEMIDI_nRF52<_Settings>::begin(const char* deviceName, BLEMIDI_NAMESPACE::BLEMIDI_Transport, _Settings>* bleMidiTransport) { @@ -70,34 +87,39 @@ bool BLEMIDI_nRF52<_Settings>::begin(const char* deviceName, BLEMIDI_NAMESPACE:: // Config the peripheral connection with maximum bandwidth // more SRAM required by SoftDevice // Note: All config***() function must be called before begin() -// Bluefruit.configPrphBandwidth(BANDWIDTH_MAX); + Bluefruit.configPrphBandwidth(BANDWIDTH_MAX); -// Bluefruit.begin(); -// Bluefruit.setName(deviceName); -// Bluefruit.setTxPower(4); // Check bluefruit.h for supported values + Bluefruit.begin(); + Bluefruit.setName(deviceName); + Bluefruit.setTxPower(4); // Check bluefruit.h for supported values // Setup the on board blue LED to be enabled on CONNECT -// Bluefruit.autoConnLed(true); + Bluefruit.autoConnLed(true); + + Bluefruit.Periph.setConnectCallback(connect_callback); + Bluefruit.Periph.setDisconnectCallback(disconnect_callback); // Configure and Start Device Information Service -// bledis.setManufacturer("Adafruit Industries"); -// bledis.setModel("Bluefruit Feather52"); - // bledis.begin(); + bledis.setManufacturer("Adafruit Industries"); + bledis.setModel("Bluefruit Feather52"); + bledis.begin(); // Start advertising ---------------------------- // Set General Discoverable Mode flag -// Bluefruit.Advertising.addFlags(BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE); + Bluefruit.Advertising.addFlags(BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE); // Advertise TX Power -// Bluefruit.Advertising.addTxPower(); + Bluefruit.Advertising.addTxPower(); // Advertise BLE MIDI Service -// Bluefruit.Advertising.addService(blemidi); + Bluefruit.Advertising.addService(blemidi); + + // blemidi.write((uint8_t)0); // Secondary Scan Response packet (optional) // Since there is no room for 'Name' in Advertising packet -// Bluefruit.ScanResponse.addName(); + Bluefruit.ScanResponse.addName(); /* Start Advertising * - Enable auto advertising if disconnected @@ -108,10 +130,10 @@ bool BLEMIDI_nRF52<_Settings>::begin(const char* deviceName, BLEMIDI_NAMESPACE:: * For recommended advertising interval * https://developer.apple.com/library/content/qa/qa1931/_index.html */ -// Bluefruit.Advertising.restartOnDisconnect(true); -// Bluefruit.Advertising.setInterval(32, 244); // in unit of 0.625 ms -// Bluefruit.Advertising.setFastTimeout(30); // number of seconds in fast mode -// Bluefruit.Advertising.start(0); // 0 = Don't stop advertising after n seconds + Bluefruit.Advertising.restartOnDisconnect(true); + Bluefruit.Advertising.setInterval(32, 244); // in unit of 0.625 ms + Bluefruit.Advertising.setFastTimeout(30); // number of seconds in fast mode + Bluefruit.Advertising.start(0); // 0 = Don't stop advertising after n seconds return true; }