From 54ebfee9ad1ade3bfcb9766c61c3b27a57ef5172 Mon Sep 17 00:00:00 2001 From: lathoub Date: Sun, 8 Mar 2020 23:03:39 +0100 Subject: [PATCH] xQueue to communicate between core_0 and core_1 --- src/BLE-MIDI.h | 31 +- src/hardware/BLE-MIDI_Client_ESP32.h | 95 +++++ src/hardware/BLE-MIDI_ESP32.h | 17 +- test/Arduino.h | 95 ----- test/Ethernet.h | 403 ------------------ test/IPAddress.h | 12 - test/NoteOn.cpp | 12 - test/bleMidi.xcodeproj/project.pbxproj | 278 ------------ .../contents.xcworkspacedata | 7 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../IDEFindNavigatorScopes.plist | 5 - .../UserInterfaceState.xcuserstate | Bin 234098 -> 0 bytes .../xcshareddata/xcschemes/rtpMidi.xcscheme | 78 ---- .../xcdebugger/Breakpoints_v2.xcbkptlist | 24 -- .../xcschemes/xcschememanagement.plist | 22 - 15 files changed, 132 insertions(+), 955 deletions(-) create mode 100755 src/hardware/BLE-MIDI_Client_ESP32.h delete mode 100644 test/Arduino.h delete mode 100644 test/Ethernet.h delete mode 100644 test/IPAddress.h delete mode 100644 test/NoteOn.cpp delete mode 100644 test/bleMidi.xcodeproj/project.pbxproj delete mode 100644 test/bleMidi.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 test/bleMidi.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 test/bleMidi.xcodeproj/project.xcworkspace/xcuserdata/bart.xcuserdatad/IDEFindNavigatorScopes.plist delete mode 100644 test/bleMidi.xcodeproj/project.xcworkspace/xcuserdata/bart.xcuserdatad/UserInterfaceState.xcuserstate delete mode 100644 test/bleMidi.xcodeproj/xcshareddata/xcschemes/rtpMidi.xcscheme delete mode 100644 test/bleMidi.xcodeproj/xcuserdata/bart.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist delete mode 100644 test/bleMidi.xcodeproj/xcuserdata/bart.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/src/BLE-MIDI.h b/src/BLE-MIDI.h index 2f7317a..834d093 100755 --- a/src/BLE-MIDI.h +++ b/src/BLE-MIDI.h @@ -44,6 +44,8 @@ public: void begin(MIDI_NAMESPACE::Channel inChannel = 1) { mBleClass.begin(mDeviceName, this); + + mRxQueue = xQueueCreate(Settings::MaxBufferSize, sizeof(uint8_t)); } bool beginTransmission(MidiType) @@ -73,16 +75,33 @@ public: mTxIndex = 0; } - unsigned available() - { - return mRxIndex; - } - byte read() { return mRxBuffer[--mRxIndex]; } + unsigned available() + { + uint8_t byte; + auto succes = xQueueReceive(mRxQueue, &byte, 0); // return immediately when the queue is empty + if (!succes) return mRxIndex; + + mRxBuffer[mRxIndex++] = byte; +/* + N_DEBUG_PRINT("available ("); + N_DEBUG_PRINT(mRxIndex); + N_DEBUG_PRINT(") :"); + for (size_t j = 0; j < mRxIndex; j++) { + N_DEBUG_PRINT("0x"); + N_DEBUG_PRINT(mRxBuffer[j], HEX); + N_DEBUG_PRINT(" "); + } + N_DEBUG_PRINTLN(); +*/ + return mRxIndex; + } + + private: void reverse(byte arr[], int n) { @@ -95,6 +114,8 @@ private: } public: + QueueHandle_t mRxQueue; + /* The general form of a MIDI message follows: n-byte MIDI Message diff --git a/src/hardware/BLE-MIDI_Client_ESP32.h b/src/hardware/BLE-MIDI_Client_ESP32.h new file mode 100755 index 0000000..59d9685 --- /dev/null +++ b/src/hardware/BLE-MIDI_Client_ESP32.h @@ -0,0 +1,95 @@ +#pragma once + +// Headers for ESP32 BLE +#include +#include +#include +#include + +BEGIN_BLEMIDI_NAMESPACE + +class BLEMIDI_Client_ESP32 +{ +private: + BLEClient* _client = nullptr; + + BLEMIDI* _bleMidiTransport = nullptr; + +public: + BLEMIDI_Client_ESP32() + { + } + + bool begin(const char*, BLEMIDI*); + + void write(uint8_t* data, uint8_t length) + { + _characteristic->setValue(data, length); + _characteristic->notify(); + } + + void receive(uint8_t* buffer, size_t length) + { + // Post the items to the back of the queue + // (drop the first 2 items) + for (size_t i = 2; i < length; i++) + xQueueSend(_bleMidiTransport->mRxQueue, &buffer[i], portMAX_DELAY); + } + + void connected() + { + if (_bleMidiTransport->_connectedCallback) + _bleMidiTransport->_connectedCallback(); + } + + void disconnected() + { + if (_bleMidiTransport->_disconnectedCallback) + _bleMidiTransport->_disconnectedCallback(); + } +}; + +class MyClientCallbacks: public BLEClientCallbacks { +public: + MyClientCallbacks(BLEMIDI_Client_ESP32* bluetoothEsp32) + : _bluetoothEsp32(bluetoothEsp32) { + } + +protected: + BLEMIDI_Client_ESP32* _bluetoothEsp32 = nullptr; + + void onConnect(BLEClient*) { + if (_bluetoothEsp32) + _bluetoothEsp32->connected(); + }; + + void onDisconnect(BLEClient*) { + if (_bluetoothEsp32) + _bluetoothEsp32->disconnected(); + } +}; + +bool BLEMIDI_Client_ESP32::begin(const char* deviceName, BLEMIDI* bleMidiTransport) +{ + _bleMidiTransport = bleMidiTransport; + + BLEDevice::init(deviceName); + + _client = BLEDevice::createClient(); + _client->setCallbacks(new MyClientCallbacks(this)); + + // Retrieve a Scanner and set the callback we want to use to be informed when we + // have detected a new device. Specify that we want active scanning and start the + // scan to run for 5 seconds. + pBLEScan = BLEDevice::getScan(); + pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks(this)); + pBLEScan->setInterval(1349); + pBLEScan->setWindow(449); + pBLEScan->setActiveScan(true); + doScan = true; + pBLEScan->start(10, scanCompleteCB); + + return true; +} + +END_BLEMIDI_NAMESPACE diff --git a/src/hardware/BLE-MIDI_ESP32.h b/src/hardware/BLE-MIDI_ESP32.h index 815d172..469b09a 100755 --- a/src/hardware/BLE-MIDI_ESP32.h +++ b/src/hardware/BLE-MIDI_ESP32.h @@ -30,9 +30,12 @@ public: _characteristic->notify(); } - void receive(uint8_t* buffer, uint8_t length) + void receive(uint8_t* buffer, size_t length) { - _bleMidiTransport->receive(buffer, length); + // Post the items to the back of the queue + // (drop the first 2 items) + for (size_t i = 2; i < length; i++) + xQueueSend(_bleMidiTransport->mRxQueue, &buffer[i], portMAX_DELAY); } void connected() @@ -57,12 +60,14 @@ public: protected: BLEMIDI_ESP32* _bluetoothEsp32 = nullptr; - void onConnect(BLEServer* server) { - _bluetoothEsp32->connected(); + void onConnect(BLEServer*) { + if (_bluetoothEsp32) + _bluetoothEsp32->connected(); }; - void onDisconnect(BLEServer* server) { - _bluetoothEsp32->disconnected(); + void onDisconnect(BLEServer*) { + if (_bluetoothEsp32) + _bluetoothEsp32->disconnected(); } }; diff --git a/test/Arduino.h b/test/Arduino.h deleted file mode 100644 index ffc2042..0000000 --- a/test/Arduino.h +++ /dev/null @@ -1,95 +0,0 @@ -#pragma once - -#include -#include - -#include "IPAddress.h" - -#define HEX 0 -#define DEC 1 - -class _serial -{ -public: - void print(const char a[]) { std::cout << a; }; - void print(char a) { std::cout << a; }; - void print(unsigned char a, int format = DEC) { std::cout << (format == DEC ? std::dec : std::hex) << (int)a; }; - void print(int a, int format = DEC) { std::cout << (format == DEC ? std::dec : std::hex) << a; }; - void print(unsigned int a, int format = DEC) { std::cout << (format == DEC ? std::dec : std::hex) << a; }; - void print(long a, int format = DEC) { std::cout << (format == DEC ? std::dec : std::hex) << a; }; - void print(unsigned long a, int format = DEC) { std::cout << (format == DEC ? std::dec : std::hex) << a; }; - void print(double a, int = 2) { std::cout << a; }; - void print(struct tm * timeinfo, const char * format = NULL) {}; - void print(IPAddress) {}; - - void println(const char a[]) { std::cout << a << "\n"; }; - void println(char a) { std::cout << a << "\n"; }; - void println(unsigned char a, int format = DEC) { std::cout << (format == DEC ? std::dec : std::hex) << (int)a << "\n"; }; - void println(int a, int format = DEC) { std::cout << (format == DEC ? std::dec : std::hex) << a << "\n"; }; - void println(unsigned int a, int format = DEC) { std::cout << (format == DEC ? std::dec : std::hex) << a << "\n"; }; - void println(long a, int format = DEC) { std::cout << (format == DEC ? std::dec : std::hex) << a << "\n"; }; - void println(unsigned long a, int format = DEC) { std::cout << (format == DEC ? std::dec : std::hex) << a << "\n"; }; - void println(double a, int format = 2) { std::cout << a << "\n"; }; - void println(struct tm * timeinfo, const char * format = NULL) {}; - void println(IPAddress) {}; - void println(void) { std::cout << "\n"; }; -}; - -_serial Serial; - -#include -typedef uint8_t byte; - -void begin(); -void loop(); - -int main() -{ - begin(); - - while (true) - { - loop(); - } -} - -// avoid strncpy security warning -#pragma warning(disable:4996) - -#define __attribute__(A) /* do nothing */ - -#include "../src/utility/Deque.h" - -#include "../src/utility/midi_feat4_4_0/midi_Defs.h" - -float analogRead(int pin) -{ - return 0.0f; -} - -void randomSeed(float) -{ - srand(static_cast(time(0))); -} - -unsigned long millis() -{ - auto now = std::chrono::duration_cast(std::chrono::system_clock::now().time_since_epoch()).count(); - return (unsigned long)now; -} - -int random(int min, int max) -{ - return RAND_MAX % std::rand() % (max-min) + min; -} - -template const T& min(const T& a, const T& b) { - return !(b < a) ? a : b; // or: return !comp(b,a)?a:b; for version (2) -} - -bool bitRead(byte value, uint8_t bitToCheck) -{ - return value & (1 << bitToCheck) -} - -#define F(x) x diff --git a/test/Ethernet.h b/test/Ethernet.h deleted file mode 100644 index 360c252..0000000 --- a/test/Ethernet.h +++ /dev/null @@ -1,403 +0,0 @@ -#pragma once -#include - -#include "Arduino.h" - - -class EthernetUDP -{ - Deque _buffer; - uint16_t _port; - -public: - - EthernetUDP() - { - _port = 0; - } - - void begin(uint16_t port) - { - _port = port; - - if (port == 5004 && true) - { - // AppleMIDI messages - } - - if (port == 5005 && true) - { - // rtp-MIDI and AppleMIDI messages - - byte aa[] = { - 0x80, 0x61, 0xbf, 0xa2, 0x12, 0xb, 0x5a, 0xf7, 0xaa, 0x34, 0x96, 0x4a, - 0xc0, 0x2b, - 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x0, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x0, - 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x0, 0xf8, 0x00, 0xf8, 0xc0, 0xbf, 0x89, 0x90, 0x05, 0xd0, 0x7a, 0xd5 }; - - byte bb[] = { 0x80, 0x61, 0xD5, 0xE2, 0x18, 0xCC, 0xAD, 0x1D, 0xC5, 0xB1, 0x54, 0x0, 0x41, 0xF8, 0x20, 0xD5, 0x8B, 0x0, 0x9, 0x18, 0x80, 0x40, 0x81, 0xF1, 0x49, 0x40 }; - - byte lowHighJournalWrong[] = { - 0x80, 0x61, 0xcc, 0x73, 0x19, 0xe, - 0x4e, 0xd4, 0xc5, 0xb1, 0x54, 0x00, 0x42, 0xd0, 0x30, 0x20, 0xcc, 0x4a, 0x00, 0x0a, 0x18, 0x8, - 0x40, 0x81, 0xf1, 0x90, 0x40, 0x2d - }; - - byte sysexJournalMalformed[] = { - 0x80, 0x61, 0x99, 0xc6, 0x1e, 0x90, 0x97, 0xc4, 0xc8, 0x86, 0x76, 0xf9, - 0xc0, 0xc2, - 0xf0, - 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, - 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, - 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, - 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, - 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, - 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, - 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, - 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, - 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, - 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, - 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, - 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, - 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x66, - 0xf7, - 0xc0, 0x99, 0x96, 0x90, 0x05, 0xd0, 0x00, 0x7b }; - - - byte sysexTimingActiveSensingJournal[] = { - 0x80, 0x61, 0xae, 0xae, 0x20, 0x7f, 0xd6, 0xe7, 0xc8, 0x86, 0x76, 0xf9, - 0xc0, 0xc6, - 0xf0, - 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, - 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, - 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, - 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, - 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, - 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, - 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, - 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, - 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, - 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, - 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, - 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, - 0x19, 0x20, 0x21, 0x19, 0x20, 0x21, 0x19, 0x20, 0x66, - 0xf7, - 0x00, // time - 0xf8, // Timing Clock - 0x00, // Time - 0xfe, // Active Sensing - 0x40, 0xae, 0xa0, 0x10, 0x05, 0x50, 0x00, 0x8f }; // Journal - - byte sysexJournal[] = { - 0x80, 0x61, 0x85, 0xce, 0x1a, 0x5f, 0x1c, 0xa3, 0xc8, 0x86, 0x76, 0xf9, - 0xc1, 0x9a, - 0xf0, - 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, - 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, - 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, - 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, - 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, - 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, - 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, - 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, - 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, - 0x66, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, - 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, - 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, - 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, - 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, - 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, - 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, - 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, - 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x66, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, - 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, - 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, - 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, - 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, - 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, - 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, - 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, - 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, 0x19, 0x19, 0x20, 0x21, - 0x66, - 0xf7, - 0x40, 0x85, 0x8b, 0x10, 0x05, 0x50, 0x00, 0x8c }; - - byte sysexMalformedTimingClock[] = { - 0x80, 0x61, 0x85, 0xd9, 0x1a, 0x5f, 0x26, 0xb0, 0xc8, 0x86, 0x76, 0xf9, 0x41, 0xf8, 0xc0, 0x85, 0x8b, 0x90, 0x05, 0xd0, 0x00, 0x95 }; - - - // sysex (command length is xx (or 0x71) in 2 bytes - B-FLAG) - byte sysexSME[] = { - 0x80, 0x61, 0x9A, 0xF, 0x0, 0x2A, 0x7D, 0x3D, 0x29, 0xDC, 0x48, 0x99, - 0x80, 0x70, - 0xF0, - 0x41, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, - 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, - 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, - 0xF7 }; - - byte sysexSE[] = { - 0x80, 0x61, 0x9A, 0xF, 0x0, 0x2A, 0x7D, 0x3D, 0x29, 0xDC, 0x48, 0x99, - 0x80, 0x3f, - 0xF0, - 0x41, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, - 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, - 0xF7 }; - - byte sysexF[] = { - 0x80, 0x61, 0x7c, 0xbc, 0x0a, 0xff, 0x56, 0xba, 0x0a, 0x1a, 0x2f, 0x43, - 0x05, - 0xf0, - 0x41, 0x19, 0x20, - 0xf7 }; - - // 36 bytes - byte noteOnOff[] = { - 0x80, 0x61, 0x27, 0x9e, 0x00, 0x1d, 0xb5, 0x36, 0x36, 0x09, 0x2f, 0x2a, // rtp - // MIDI section - 0x46, // flag - 0x80, 0x3f, 0x00, // note off 63 on channel 1, - 0x00, // delta time - 0x3d, 0x00, // note 61 - // Journal Section (17 bytes) - 0x20, // journal flag - 0x27, 0x34, // sequence nr - 0x00, 0x0e, 0x08, // channel 1 channel flag - 0x02, 0x59, // note on off - 0xbd, 0x40, 0xbf, 0x40, // Log list - 0x15, 0xad, 0x5a, 0xdf, 0xa8, // offbit octets - }; - - byte noteOnOff2[] = { - 0x80, 0x61, 0x27, 0x9e, 0x00, 0x1d, 0xb5, 0x36, 0x36, 0x09, 0x2f, 0x2a, // rtp - // MIDI section - 0x46, // flag - 0x80, 0x3f, 0x00, // note off 63 on channel 1, - 0x00, // delta time - 0x3d, 0x00, // note 61 - // Journal Section (17 bytes) - 0x20, // journal flag - 0x27, 0x34, // sequence nr - 0x00, 0x0e, 0x08, // channel 1 channel flag - 0x02, 0x59, // note on off - 0xbd, 0x40, 0xbf, 0x40, // Log list - 0x15, 0xad, 0x5a, 0xdf, 0xa8, // offbit octets - - 0x80, 0x61, 0x27, 0x9e, 0x00, 0x1d, 0xb5, 0x36, 0x36, 0x09, 0x2f, 0x2a, // rtp - // MIDI section - 0x46, // flag - 0x80, 0x3f, 0x00, // note off 63 on channel 1, - 0x00, // delta time - 0x3d, 0x00, // note off note 61 on channel 1 (note the running status) - // Journal Section (17 bytes) - 0x20, // journal flag - 0x27, 0x34, // sequence nr - 0x00, 0x0e, 0x08, // channel 1 channel flag - 0x02, 0x59, // note on off - 0xbd, 0x40, 0xbf, 0x40, // Log list - 0x15, 0xad, 0x5a, 0xdf, 0xa8, // offbit octets - }; - - - byte controlChange[] = { - 0x80, 0x61, 0x20, 0xa5, 0x7f, 0xc, - 0x73, 0x2d, 0xc5, 0xb1, 0x54, 0x00, 0x80, 0xbf, 0xb0, 0x7b, 0x00, 0x00, 0xb1, 0x7b, 0x00, 0x0, - 0xb2, 0x7b, 0x00, 0x00, 0xb3, 0x7b, 0x00, 0x00, 0xb4, 0x7b, 0x00, 0x00, 0xb5, 0x7b, 0x00, 0x0, - 0xb6, 0x7b, 0x00, 0x00, 0xb7, 0x7b, 0x00, 0x00, 0xb8, 0x7b, 0x00, 0x00, 0xb9, 0x7b, 0x00, 0x0, - 0xba, 0x7b, 0x00, 0x00, 0xbb, 0x7b, 0x00, 0x00, 0xbc, 0x7b, 0x00, 0x00, 0xbd, 0x7b, 0x00, 0x0, - 0xbe, 0x7b, 0x00, 0x00, 0xbf, 0x7b, 0x00, 0x00, 0xe0, 0x00, 0x40, 0x00, 0xe1, 0x00, 0x40, 0x0, - 0xe2, 0x00, 0x40, 0x00, 0xe3, 0x00, 0x40, 0x00, 0xe4, 0x00, 0x40, 0x00, 0xe5, 0x00, 0x40, 0x0, - 0xe6, 0x00, 0x40, 0x00, 0xe7, 0x00, 0x40, 0x00, 0xe8, 0x00, 0x40, 0x00, 0xe9, 0x00, 0x40, 0x0, - 0xea, 0x00, 0x40, 0x00, 0xeb, 0x00, 0x40, 0x00, 0xec, 0x00, 0x40, 0x00, 0xed, 0x00, 0x40, 0x0, - 0xee, 0x00, 0x40, 0x00, 0xef, 0x00, 0x40, 0x00, 0xb0, 0x40, 0x00, 0x00, 0xb1, 0x40, 0x00, 0x0, - 0xb2, 0x40, 0x00, 0x00, 0xb3, 0x40, 0x00, 0x00, 0xb4, 0x40, 0x00, 0x00, 0xb5, 0x40, 0x00, 0x0, - 0xb6, 0x40, 0x00, 0x00, 0xb7, 0x40, 0x00, 0x00, 0xb8, 0x40, 0x00, 0x00, 0xb9, 0x40, 0x00, 0x0, - 0xba, 0x40, 0x00, 0x00, 0xbb, 0x40, 0x00, 0x00, 0xbc, 0x40, 0x00, 0x00, 0xbd, 0x40, 0x00, 0x0, - 0xbe, 0x40, 0x00, 0x00, 0xbf, 0x40, 0x00 }; - - byte RTStart[] = { - 0x80, 0x61, 0x20, 0xa6, 0x7f, 0xc, 0x73, 0x66, 0xc5, 0xb1, 0x54, 0x00, 0x43, - 0xfa, 0x00, 0xf8, - 0x2f, 0x20, 0xa5, - 0x00, 0x0a, 0x5, 0x01, 0x40, 0x00, 0x7b, 0x00, 0x00, 0x40, - 0x08, 0x0a, 0x50, 0x01, 0x40, 0x00, 0x7b, 0x00, 0x0, 0x40, - 0x10, 0x0a, 0x50, 0x01, 0x40, 0x00, 0x7b, 0x00, 0x00, 0x40, - 0x18, 0x0a, 0x50, 0x01, 0x4, 0x00, 0x7b, 0x00, 0x00, 0x40, - 0x20, 0x0a, 0x50, 0x01, 0x40, 0x00, 0x7b, 0x00, 0x00, 0x40, - 0x28, 0x0a, 0x50, 0x01, 0x40, 0x00, 0x7b, 0x00, 0x00, 0x40, - 0x30, 0x0a, 0x50, 0x01, 0x40, 0x00, 0x7, 0x00, 0x00, 0x40, - 0x38, 0x0a, 0x50, 0x01, 0x40, 0x00, 0x7b, 0x00, 0x00, 0x40, - 0x40, 0x0a, 0x5, 0x01, 0x40, 0x00, 0x7b, 0x00, 0x00, 0x40, - 0x48, 0x0a, 0x50, 0x01, 0x40, 0x00, 0x7b, 0x00, 0x0, 0x40, - 0x50, 0x0a, 0x50, 0x01, 0x40, 0x00, 0x7b, 0x00, 0x00, 0x40, - 0x58, 0x0a, 0x50, 0x01, 0x4, 0x00, 0x7b, 0x00, 0x00, 0x40, - 0x60, 0x0a, 0x50, 0x01, 0x40, 0x00, 0x7b, 0x00, 0x00, 0x40, - 0x68, 0x0a, 0x50, 0x01, 0x40, 0x00, 0x7b, 0x00, 0x00, 0x40, - 0x70, 0x0a, 0x50, 0x01, 0x40, 0x00, 0x7, 0x00, 0x00, 0x40, - 0x78, 0x0a, 0x50, 0x01, 0x40, 0x00, 0x7b, 0x00, 0x00, 0x40 }; - - byte TCNote[] = { - 0x80, 0x61, 0x4e, 0x24, 0x82, 0x9f, 0xdc, 0x22, 0xc5, 0xb1, 0x54, 0x00, - 0xc0, 0x20, - 0xf8, 0x00, 0x90, 0x2b, 0x7f, 0x00, 0x34, 0x7f, 0x00, 0x35, 0x7f, 0x00, - 0x36, 0x7f, 0x00, 0x37, 0x7f, 0x00, 0x38, 0x7f, 0x00, 0x39, 0x7f, 0x00, - 0x3a, 0x7f, 0x00, 0x3b, 0x7f, 0x00, 0x3c, 0x7f, - 0x6f, 0x45, 0x85, 0x10, 0x05, 0x50, 0x00, 0x0f, - 0x80, 0x0f, 0x58, 0x81, 0xc0, 0x00, 0xfb, 0x00, 0x80, 0x40, 0x80, 0x57, 0x10, 0x0f, 0xf8, 0x88, - 0x0a, 0x50, 0x81, 0xc0, 0x00, 0xfb, 0x00, 0x80, 0x40, 0x90, 0x0a, 0x50, 0x81, 0xc0, 0x00, 0xfb, - 0x00, 0x80, 0x40, 0x98, 0x0a, 0x50, 0x81, 0xc0, 0x00, 0xfb, 0x00, 0x80, 0x40, 0xa0, 0x0a, 0x50, - 0x81, 0xc0, 0x00, 0xfb, 0x00, 0x80, 0x40, 0xa8, 0x0a, 0x50, 0x81, 0xc0, 0x00, 0xfb, 0x00, 0x80, - 0x40, 0xb0, 0x0a, 0x50, 0x81, 0xc0, 0x00, 0xfb, 0x00, 0x80, 0x40, 0xb8, 0x0a, 0x50, 0x81, 0xc0, - 0x00, 0xfb, 0x00, 0x80, 0x40, 0xc0, 0x0a, 0x50, 0x81, 0xc0, 0x00, 0xfb, 0x00, 0x80, 0x40, 0xc8, - 0x0a, 0x50, 0x81, 0xc0, 0x00, 0xfb, 0x00, 0x80, 0x40, 0xd0, 0x0a, 0x50, 0x81, 0xc0, 0x00, 0xfb, - 0x00, 0x80, 0x40, 0xd8, 0x0a, 0x50, 0x81, 0xc0, 0x00, 0xfb, 0x00, 0x80, 0x40, 0xe0, 0x0a, 0x50, - 0x81, 0xc0, 0x00, 0xfb, 0x00, 0x80, 0x40, 0xe8, 0x0a, 0x50, 0x81, 0xc0, 0x00, 0xfb, 0x00, 0x80, - 0x40, 0xf0, 0x0a, 0x50, 0x81, 0xc0, 0x00, 0xfb, 0x00, 0x80, 0x40, 0xf8, 0x0a, 0x50, 0x81, 0xc0, - 0x00, 0xfb, 0x00, 0x80, 0x40 }; - - byte aaa[] = { - 0x80, 0x61, 0xa5, 0x05, 0x01, 0x08, 0x58, 0x2a, 0x34, 0xc7, 0xab, 0xfd, 0x4e, 0x80, 0x53, 0x00, 0x11, 0x35, 0x00, 0x8f, 0xff, 0xff, - 0xff, 0x00, 0x90, 0x4f, 0x40, 0x20, 0xa4, 0xdb, 0x00, 0x13, 0x08, 0x03, 0x3a, 0xb5, 0x7f, 0xcd, - 0x40, 0xd3, 0x40, 0x02, 0x10, 0x10, 0x10, 0x08, 0x00, 0xa9, 0x48, - }; - - - byte slecht[] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06}; - - // write(noteOnOff, sizeof(noteOnOff)); - } - - - - if (port == 5005 && true) - { - // rtp-MIDI and AppleMIDI messages - } - - }; - - bool beginPacket(uint32_t, uint16_t) - { - return true; - } - - bool beginPacket(IPAddress, uint16_t) - { - return true; - } - - size_t parsePacket() - { - return _buffer.size(); - }; - - size_t available() - { - return _buffer.size(); - }; - - size_t read(byte* buffer, size_t size) - { - size = min(size, _buffer.size()); - - for (size_t i = 0; i < size; i++) - buffer[i] = _buffer.pop_front(); - - return size; - }; - - void write(uint8_t buffer) - { - _buffer.push_back(buffer); - }; - - void write(uint8_t* buffer, size_t size) - { - for (size_t i = 0; i < size; i++) - _buffer.push_back(buffer[i]); - }; - - void endPacket() { }; - void flush() - { - if (_port == 5004) - { - if (_buffer[0] == 0xff && _buffer[1] == 0xff && _buffer[2] == 'I' &&_buffer[3] == 'N') - { - _buffer.clear(); - - - byte u[] = { - 0xff, 0xff, - 0x4f, 0x4b, - 0x00, 0x00, 0x00, 0x02, - 0xb7, 0x06, 0x20, 0x30, - 0xda, 0x8d, 0xc5, 0x8a, - 0x4d, 0x61, 0x63, 0x62, 0x6f, 0x6f, 0x6b, 0x20, 0x50, 0x72, 0x6f, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x53, 0x61, 0x6e, 0x64, 0x72, 0x61, 0x20, 0x56, 0x65, 0x72, 0x62, 0x65, 0x6b, 0x65, 0x6e, 0x20, 0x28, 0x32, 0x29, 0x00 }; - - - - - - byte r[] = { 0xff, 0xff, - 0x4f, 0x4b, - 0x00, 0x0, 0x00, 0x02, - 0xb7, 0x06, 0x20, 0x30, - 0xda, 0x8d, 0xc5, 0x8a, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6, 0x6e, 0x31, 0x2d, 0x42, 0x00 }; - write(u, sizeof(u)); - } - } - if (_port == 5005) - { - if (_buffer[0] == 0xff && _buffer[1] == 0xff && _buffer[2] == 'I' &&_buffer[3] == 'N') - { - _buffer.clear(); - byte r[] = { 0xff, 0xff, - 0x4f, 0x4b, - 0x00, 0x0, 0x00, 0x02, - 0xb7, 0x06, 0x20, 0x30, - 0xda, 0x8d, 0xc5, 0x8a, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6, 0x6e, 0x31, 0x2d, 0x42, 0x00 }; - write(r, sizeof(r)); - } - else if (_buffer[0] == 0xff && _buffer[1] == 0xff && _buffer[2] == 'C' &&_buffer[3] == 'K') - { - if (_buffer[8] == 0x00) - { - _buffer.clear(); - byte r[] = { 0xff, 0xff, - 0x43, 0x4b, - 0xda, 0x8d, 0xc5, 0x8a, - 0x01, - 0x65, 0x73, 0x73, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x34, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x6c, 0x83, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - write(r, sizeof(r)); - } - else - _buffer.clear(); - } - } - }; - - void stop() { _buffer.clear(); }; - - uint32_t remoteIP() { return 1; } - uint16_t remotePort() { return _port; } -}; diff --git a/test/IPAddress.h b/test/IPAddress.h deleted file mode 100644 index bcb1d0e..0000000 --- a/test/IPAddress.h +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once - -class IPAddress -{ -public: - IPAddress(){}; - IPAddress(const IPAddress& from){}; - IPAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet){}; - IPAddress(uint32_t address) { } - IPAddress(int address) { } - IPAddress(const uint8_t *address) {}; -}; diff --git a/test/NoteOn.cpp b/test/NoteOn.cpp deleted file mode 100644 index f48de2c..0000000 --- a/test/NoteOn.cpp +++ /dev/null @@ -1,12 +0,0 @@ -#define DEBUG 7 -#define APPLEMIDI_INITIATOR - -#include "../src/BLEMIDI.h" - -void begin() -{ -} - -void loop() -{ -} diff --git a/test/bleMidi.xcodeproj/project.pbxproj b/test/bleMidi.xcodeproj/project.pbxproj deleted file mode 100644 index ccf27c4..0000000 --- a/test/bleMidi.xcodeproj/project.pbxproj +++ /dev/null @@ -1,278 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - CCE329C223C2040200A197D1 /* NoteOn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CCE329BF23C2040200A197D1 /* NoteOn.cpp */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - CCE329B323C2037C00A197D1 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = /usr/share/man/man1/; - dstSubfolderSpec = 0; - files = ( - ); - runOnlyForDeploymentPostprocessing = 1; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - CC1A7D5F23F9378200206908 /* IPAddress.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = IPAddress.h; path = "/Users/bart/Documents/Arduino/libraries/Arduino-AppleMIDI-Library/test/IPAddress.h"; sourceTree = ""; }; - CCE329B523C2037C00A197D1 /* rtpMidi */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = rtpMidi; sourceTree = BUILT_PRODUCTS_DIR; }; - CCE329BF23C2040200A197D1 /* NoteOn.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NoteOn.cpp; sourceTree = ""; }; - CCE329C023C2040200A197D1 /* Arduino.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Arduino.h; sourceTree = ""; }; - CCE329C123C2040200A197D1 /* Ethernet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Ethernet.h; sourceTree = ""; }; - CCE329D623C28E9F00A197D1 /* src */ = {isa = PBXFileReference; lastKnownFileType = folder; name = src; path = ../src; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - CCE329B223C2037C00A197D1 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - CCE329AC23C2037C00A197D1 = { - isa = PBXGroup; - children = ( - CCE329D623C28E9F00A197D1 /* src */, - CCE329C023C2040200A197D1 /* Arduino.h */, - CCE329C123C2040200A197D1 /* Ethernet.h */, - CC1A7D5F23F9378200206908 /* IPAddress.h */, - CCE329BF23C2040200A197D1 /* NoteOn.cpp */, - CCE329B623C2037C00A197D1 /* Products */, - ); - sourceTree = ""; - }; - CCE329B623C2037C00A197D1 /* Products */ = { - isa = PBXGroup; - children = ( - CCE329B523C2037C00A197D1 /* rtpMidi */, - ); - name = Products; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - CCE329B423C2037C00A197D1 /* rtpMidi */ = { - isa = PBXNativeTarget; - buildConfigurationList = CCE329BC23C2037C00A197D1 /* Build configuration list for PBXNativeTarget "rtpMidi" */; - buildPhases = ( - CCE329B123C2037C00A197D1 /* Sources */, - CCE329B223C2037C00A197D1 /* Frameworks */, - CCE329B323C2037C00A197D1 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = rtpMidi; - productName = rtpMidi; - productReference = CCE329B523C2037C00A197D1 /* rtpMidi */; - productType = "com.apple.product-type.tool"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - CCE329AD23C2037C00A197D1 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 1130; - ORGANIZATIONNAME = "Bart De Lathouwer"; - TargetAttributes = { - CCE329B423C2037C00A197D1 = { - CreatedOnToolsVersion = 11.3; - }; - }; - }; - buildConfigurationList = CCE329B023C2037C00A197D1 /* Build configuration list for PBXProject "bleMidi" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = CCE329AC23C2037C00A197D1; - productRefGroup = CCE329B623C2037C00A197D1 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - CCE329B423C2037C00A197D1 /* rtpMidi */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXSourcesBuildPhase section */ - CCE329B123C2037C00A197D1 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - CCE329C223C2040200A197D1 /* NoteOn.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - CCE329BA23C2037C00A197D1 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.15; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - }; - name = Debug; - }; - CCE329BB23C2037C00A197D1 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.15; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = macosx; - }; - name = Release; - }; - CCE329BD23C2037C00A197D1 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - CCE329BE23C2037C00A197D1 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - CCE329B023C2037C00A197D1 /* Build configuration list for PBXProject "bleMidi" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - CCE329BA23C2037C00A197D1 /* Debug */, - CCE329BB23C2037C00A197D1 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - CCE329BC23C2037C00A197D1 /* Build configuration list for PBXNativeTarget "rtpMidi" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - CCE329BD23C2037C00A197D1 /* Debug */, - CCE329BE23C2037C00A197D1 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = CCE329AD23C2037C00A197D1 /* Project object */; -} diff --git a/test/bleMidi.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/test/bleMidi.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 4bed45a..0000000 --- a/test/bleMidi.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/test/bleMidi.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/test/bleMidi.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d9810..0000000 --- a/test/bleMidi.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/test/bleMidi.xcodeproj/project.xcworkspace/xcuserdata/bart.xcuserdatad/IDEFindNavigatorScopes.plist b/test/bleMidi.xcodeproj/project.xcworkspace/xcuserdata/bart.xcuserdatad/IDEFindNavigatorScopes.plist deleted file mode 100644 index 5dd5da8..0000000 --- a/test/bleMidi.xcodeproj/project.xcworkspace/xcuserdata/bart.xcuserdatad/IDEFindNavigatorScopes.plist +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/test/bleMidi.xcodeproj/project.xcworkspace/xcuserdata/bart.xcuserdatad/UserInterfaceState.xcuserstate b/test/bleMidi.xcodeproj/project.xcworkspace/xcuserdata/bart.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 0322d87cb1cb5aa83e32eea8b6fba1199f718f6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 234098 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 Q$Nazl{Qv(uobc%X0LDVBZ~y=R diff --git a/test/bleMidi.xcodeproj/xcshareddata/xcschemes/rtpMidi.xcscheme b/test/bleMidi.xcodeproj/xcshareddata/xcschemes/rtpMidi.xcscheme deleted file mode 100644 index 3b0872e..0000000 --- a/test/bleMidi.xcodeproj/xcshareddata/xcschemes/rtpMidi.xcscheme +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/test/bleMidi.xcodeproj/xcuserdata/bart.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/test/bleMidi.xcodeproj/xcuserdata/bart.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist deleted file mode 100644 index 766f31f..0000000 --- a/test/bleMidi.xcodeproj/xcuserdata/bart.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - diff --git a/test/bleMidi.xcodeproj/xcuserdata/bart.xcuserdatad/xcschemes/xcschememanagement.plist b/test/bleMidi.xcodeproj/xcuserdata/bart.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index 16bf0a1..0000000 --- a/test/bleMidi.xcodeproj/xcuserdata/bart.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - SchemeUserState - - rtpMidi.xcscheme_^#shared#^_ - - orderHint - 0 - - - SuppressBuildableAutocreation - - CCE329B423C2037C00A197D1 - - primary - - - - -