Control Surface pin-t-adl
MIDI Control Surface library for Arduino
SysExBuffer.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <Settings/SettingsWrapper.hpp>
4
6
14 private:
16 uint16_t length = 0;
17 bool receiving = false;
18
19 public:
21 void start();
23 void end();
25 void add(uint8_t data);
27 void add(const uint8_t *data, uint8_t len);
29 bool hasSpaceLeft(uint8_t amount = 1) const;
31 bool isReceiving() const;
33 const uint8_t *getBuffer() const;
35 uint16_t getLength() const;
36};
37
#define END_CS_NAMESPACE
#define BEGIN_CS_NAMESPACE
constexpr size_t SYSEX_BUFFER_SIZE
The length of the maximum System Exclusive message that can be received.
Helper for storing the System Exclusive messages being received by a MIDI parser.
Definition: SysExBuffer.hpp:13
const uint8_t * getBuffer() const
Get a pointer to the buffer.
Definition: SysExBuffer.cpp:34
uint16_t length
Definition: SysExBuffer.hpp:16
uint8_t buffer[SYSEX_BUFFER_SIZE]
Definition: SysExBuffer.hpp:15
bool hasSpaceLeft(uint8_t amount=1) const
Check if the buffer has at least amount bytes of free space available.
Definition: SysExBuffer.cpp:25
void start()
Start a new SysEx message.
Definition: SysExBuffer.cpp:6
void add(uint8_t data)
Add a byte to the current SysEx message.
Definition: SysExBuffer.cpp:15
void end()
Finish the current SysEx message.
Definition: SysExBuffer.cpp:11
uint16_t getLength() const
Get the length of the SysEx message in the buffer.
Definition: SysExBuffer.cpp:36
bool isReceiving() const
Check if the buffer is receiving a SysEx message.
Definition: SysExBuffer.cpp:32