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 0322d87..0000000 Binary files a/test/bleMidi.xcodeproj/project.xcworkspace/xcuserdata/bart.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ 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 - - - - -