#include <cstddef>#include <cstdint>#include <functional>#include <optional>#include <string>#include <string_view>#include <unordered_map>#include <vector>#include <pulp/midi/midi_ci.hpp>Go to the source code of this file.
Classes | |
| struct | pulp::midi::PeChunk |
| A single PE chunk, after Mcoded7 decode of header + payload. More... | |
| class | pulp::midi::PeReassembler |
| Reassemble a stream of incoming PeChunks for the same request_id. More... | |
| struct | pulp::midi::PeSubscription |
| One active subscription state — owned by PeSubscriptionManager. More... | |
| class | pulp::midi::PeSubscriptionManager |
| Authoritative subscription registry on the responder side. More... | |
Namespaces | |
| namespace | pulp |
| namespace | pulp::midi |
Enumerations | |
| enum class | pulp::midi::PeMessageType : uint8_t { pulp::midi::GetInquiry = 0x34 , pulp::midi::GetReply = 0x35 , pulp::midi::SetInquiry = 0x36 , pulp::midi::SetReply = 0x37 , pulp::midi::SubscribeInquiry = 0x38 , pulp::midi::SubscribeReply = 0x39 , pulp::midi::Notify = 0x3F } |
| PE sub-IDs (MIDI-CI sub-ID #2 byte). Mirrors CiMessageType for PE. More... | |
Functions | |
| std::vector< uint8_t > | pulp::midi::pe_build_message (PeMessageType pe_type, uint8_t ci_version, MUID source, MUID destination, uint8_t request_id, std::string_view header_json, uint16_t total_chunks, uint16_t chunk_number, const uint8_t *payload, std::size_t payload_size) |
| Builder for PE message wire bytes. | |
| std::vector< uint8_t > | pulp::midi::pe_build_message (PeMessageType pe_type, uint8_t ci_version, MUID source, MUID destination, uint8_t request_id, std::string_view header_json, uint16_t total_chunks, uint16_t chunk_number, const std::vector< uint8_t > &payload) |
| std::optional< PeChunk > | pulp::midi::pe_parse_message (const uint8_t *data, std::size_t size) |
| Parse a single PE SysEx envelope into a PeChunk. | |
| std::vector< std::vector< uint8_t > > | pulp::midi::pe_split_into_chunks (PeMessageType pe_type, uint8_t ci_version, MUID source, MUID destination, uint8_t request_id, std::string_view header_json, const uint8_t *payload, std::size_t payload_size, std::size_t max_payload_bytes) |
| Split a logical PE Get/Set into wire-ready chunks bounded by max_payload_bytes of decoded resource per chunk. | |
| std::optional< std::vector< uint8_t > > | pulp::midi::pe_compress (const uint8_t *data, std::size_t size) |
| Compress a PE payload using zlib (RFC 1950). Returns nullopt on failure. | |
| std::optional< std::vector< uint8_t > > | pulp::midi::pe_compress (const std::vector< uint8_t > &payload) |
| std::optional< std::vector< uint8_t > > | pulp::midi::pe_decompress (const uint8_t *data, std::size_t size) |
| Decompress a zlib-wrapped PE payload. Returns nullopt on failure. | |
| std::optional< std::vector< uint8_t > > | pulp::midi::pe_decompress (const std::vector< uint8_t > &blob) |
| std::string | pulp::midi::pe_header_make (std::string_view resource, std::string_view command={}, int status=200) |
| Builds a minimal PE JSON header. | |
| bool | pulp::midi::pe_header_parse (std::string_view json, std::string *resource, std::string *command, int *status) |
| Parse a PE JSON header. | |