43class BleMidiPortRegistry {
58 std::function<
void(
const std::vector<uint8_t>&)> sink);
69 const std::vector<uint8_t>& bytes,
double timestamp_sec);
81 bool is_input(
const std::string& port_id)
const;
97 const std::string& port_id)
const;
100 BleMidiPortRegistry() =
default;
std::vector< MidiPortInfo > list_outputs() const
bool is_input(const std::string &port_id) const
True if port_id is a registered BLE input / output (so the platform MidiInput/MidiOutput knows to rou...
void unregister_output(const std::string &port_id)
bool attach_input(const std::string &port_id, MidiInputCallback callback, MidiSysexCallback sysex_callback)
Attach the host's MidiInput delivery callback to a BLE input port.
std::function< void(const std::vector< uint8_t > &)> output_sink(const std::string &port_id) const
Fetch a forwarding handle for a BLE output port so the host's MidiOutput can forward sent events.
void unregister_input(const std::string &port_id)
Remove a previously published port (on disconnect).
void detach_input(const std::string &port_id)
Detach the host's MidiInput delivery callback (on MidiInput::close()).
std::vector< MidiPortInfo > list_inputs() const
Currently-published BLE input / output ports, for the platform MidiSystem to merge into enumerate_inp...
static BleMidiPortRegistry & instance()
void register_output(const std::string &port_id, const std::string &name, std::function< void(const std::vector< uint8_t > &)> sink)
Publish a connected peripheral's output port ("ble-midi-out:<peripheral-id>").
bool is_output(const std::string &port_id) const
void deliver_message(const std::string &port_id, const std::vector< uint8_t > &bytes, double timestamp_sec)
Deliver a decoded MIDI message from the central to the host callback attached to port_id (if the host...
void register_input(const std::string &port_id, const std::string &name)
Publish a connected peripheral's input port.
Definition custom_node_events.hpp:26
std::function< void(const std::vector< uint8_t > &bytes, double timestamp_sec)> MidiSysexCallback
Definition device.hpp:22
std::function< void(const MidiEvent &event)> MidiInputCallback
Definition device.hpp:21