Skip to content

Latest commit

 

History

History
37 lines (24 loc) · 1.15 KB

midi1_byte_stream.md

File metadata and controls

37 lines (24 loc) · 1.15 KB

MIDI 1 Byte Stream Helpers

WORK IN PROGRESS

Code examples can be found in midi1_byte_stream.examples.cpp.

MIDI 1 Byte Stream Parser

class midi1_byte_stream_parser
{
public:
    using packet_callback = std::function<void(universal_packet)>;
    using sysex_callback  = std::function<void(const midi::sysex7&)>;

    explicit midi1_byte_stream_parser(packet_callback, sysex_callback = {}, bool enable_callbacks = true);
    midi1_byte_stream_parser(group_t, packet_callback, sysex_callback = {}, bool enable_callbacks = true);

    bool callbacks_enabled() const;
    void enable_callbacks(bool);

    group_t group() const;
    void    set_group(group_t);

    void feed(uint8_t);
    void feed(const uint8_t* data, size_t num_bytes);
    void feed(const uint8_t* begin, const uint8_t* end);

    void reset();
};

MIDI 1 Byte Stream Conversion

universal_packet from_midi1_byte_stream(uint8_t status, uint7_t d1, uint7_t d2);

size_t midi1_byte_stream_size(const universal_packet&);

size_t to_midi1_byte_stream(const universal_packet&, uint8_t bytes[8]);