Skip to content
This repository was archived by the owner on Apr 8, 2024. It is now read-only.

Protocol Negotiation

Andrew Mee edited this page Nov 23, 2021 · 1 revision

Protocol Negotiation Handling in midi2Processor

This enable processing of MIDI-CI Protocol Negotiation. These methods are available if #define M2_DISABLE_PROTOCOL is not set.

Note that MIDI2_CPP will process MIDI 1.0 (mt=2) and MIDI 2.0 (mt=4) Channel Voice Message regardless of the how the Protocol is set.

void sendProtocolNegotiation(uint8_t group, uint32_t srcMUID, uint32_t destMuid, uint8_t authorityLevel, uint8_t numProtocols, uint8_t* protocols);

void sendProtocolNegotiationReply(uint8_t group, uint32_t srcMUID, uint32_t destMuid, uint8_t authorityLevel, uint8_t numProtocols, uint8_t* protocols);

void sendSetProtocol(uint8_t group, uint32_t srcMUID, uint32_t destMuid, uint8_t authorityLevel, uint8_t* protocol);

void sendProtocolTest(uint8_t group, uint32_t srcMUID, uint32_t destMuid, uint8_t authorityLevel);

void sendProtocolTestResponder(uint8_t group, uint32_t srcMUID, uint32_t destMuid, uint8_t authorityLevel);

inline void setRecvProtocolAvailable(void (*fptr)(uint8_t group, MIDICI ciDetails, uint8_t authorityLevel, uint8_t* protocol))

This function is called on each Protocol received in either a Initiate Protocol Negotiation Message or a Reply to Initiate Protocol Negotiation Message

inline void setRecvSetProtocol(void (*fptr)(uint8_t group, MIDICI ciDetails, uint8_t authorityLevel, uint8_t* protocol))

inline void setRecvSetProtocolConfirm(void (*fptr)(uint8_t group, MIDICI ciDetails, uint8_t authorityLevel))

inline void setRecvSetProtocolTest(void (*fptr)(uint8_t group, MIDICI ciDetails, uint8_t authorityLevel, bool testDataAccurate))

Clone this wiki locally