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

Property Exchange

Andrew Mee edited this page Nov 23, 2021 · 5 revisions

Property Exchange Handling in midi2Processor

This enable processing of MIDI-CI Property Exchange. These methods are available if #define M2_DISABLE_PE is not set.

Property Exchange requires a bit more memory than other parts of MIDI-CI. Enabling this will increase memory requirements.

void sendPECapabilityRequest(uint8_t group, uint32_t srcMUID, uint32_t destMuid, uint8_t numSimulRequests);

void sendPECapabilityReply(uint8_t group, uint32_t srcMUID, uint32_t destMuid, uint8_t numSimulRequests);

This will generate the SysEx data that is then set to the function provided by setRawSysEx, which is then sent based on how the applications wishes to send out data.

void sendPEGet(uint8_t group, uint32_t srcMUID, uint32_t destMuid, uint8_t requestId, uint16_t headerLen, uint8_t* header);

This will generate the SysEx data that is then set to the function provided by setRawSysEx, which is then sent based on how the applications wishes to send out data.

void sendPEGetReply(uint8_t group, uint32_t srcMUID, uint32_t destMuid, uint8_t requestId, uint16_t headerLen, uint8_t* header, uint16_t numberOfChunks, uint16_t numberOfThisChunk, uint16_t bodyLength , uint8_t* body );

This will generate the SysEx data that is then set to the function provided by setRawSysEx, which is then sent based on how the applications wishes to send out data.

void sendPEGetReplyStreamStart(uint8_t group, uint32_t srcMUID, uint32_t destMuid, uint8_t requestId, uint16_t headerLen, uint8_t* header, uint16_t numberOfChunks, uint16_t numberOfThisChunk, uint16_t bodyLength);

void sendPEGetReplyStreamContinue(uint8_t group, uint16_t partialLength, uint8_t* part, bool last);

void sendPESet(uint8_t group, uint32_t srcMUID, uint32_t destMuid, uint8_t requestId, uint16_t headerLen, uint8_t* header, uint16_t numberOfChunks, uint16_t numberOfThisChunk, uint16_t bodyLength , uint8_t* body);

void sendPESub(uint8_t group, uint32_t srcMUID, uint32_t destMuid, uint8_t requestId, uint16_t headerLen, uint8_t* header, uint16_t numberOfChunks, uint16_t numberOfThisChunk, uint16_t bodyLength , uint8_t* body);

void sendPENotify(uint8_t group, uint32_t srcMUID, uint32_t destMuid, uint8_t requestId, uint16_t headerLen, uint8_t* header);

inline void setPECapabilities(void (*fptr)(uint8_t group, MIDICI ciDetails, uint8_t numSimulRequests))

inline void setPECapabilitiesReply(void (*fptr)(uint8_t group, MIDICI ciDetails, uint8_t numSimulRequests))

inline void setRecvPEGetInquiry(void (*fptr)(uint8_t group, MIDICI ciDetails, peHeader requestDetails))

inline void setRecvPESetReply(void (*fptr)(uint8_t group, MIDICI ciDetails, peHeader requestDetails))

inline void setRecvPESubReply(void (*fptr)(uint8_t group, MIDICI ciDetails, peHeader requestDetails))

inline void setRecvPESetInquiry(void (*fptr)(uint8_t group, MIDICI ciDetails, peHeader requestDetails, uint16_t bodyLen, uint8_t* body, bool lastByteOfSet))

inline void setRecvPESubInquiry(void (*fptr)(uint8_t group, MIDICI ciDetails, peHeader requestDetails, uint16_t bodyLen, uint8_t* body, bool lastByteOfSet))

inline void setRecvPENotify(void (*fptr)(uint8_t group, MIDICI ciDetails, peHeader requestDetails))

Clone this wiki locally