25namespace juce::universal_midi_packets
38 virtual void reset() = 0;
39 virtual void pushMidiData (
const uint32_t* begin,
const uint32_t* end,
double time) = 0;
51 : input (i), callback (c), dispatcher (2048) {}
66 std::unique_ptr<U32ToBytestreamHandler> operator() (
MidiInput& i)
const
68 if (callback !=
nullptr)
69 return std::make_unique<U32ToBytestreamHandler> (i, *callback);
79 void reset()
override { dispatcher.reset(); }
81 void pushMidiData (
const uint32_t* begin,
const uint32_t* end,
double time)
override
90 MidiInputCallback& callback;
91 ToBytestreamDispatcher dispatcher;
102 U32ToUMPHandler (PacketProtocol protocol,
Receiver& c)
103 : recipient (c), converter (protocol) {}
115 Factory (PacketProtocol p,
Receiver& c)
116 : protocol (p), callback (c) {}
118 std::unique_ptr<U32ToUMPHandler> operator() (
MidiInput&)
const
120 return std::make_unique<U32ToUMPHandler> (protocol, callback);
124 PacketProtocol protocol;
128 void reset()
override
134 void pushMidiData (
const uint32_t* begin,
const uint32_t* end,
double time)
override
136 dispatcher.
dispatch (begin, end, time, [
this] (
const View& view,
double thisTime)
138 converter.convert (view, [&] (
const View& converted)
146 Dispatcher dispatcher;
147 GenericUMPConverter converter;
void dispatch(const uint32_t *begin, const uint32_t *end, double timeStamp, PacketCallbackFunction &&callback)
void dispatch(const uint32_t *begin, const uint32_t *end, double timestamp, BytestreamMessageCallback &&callback)
virtual void packetReceived(const View &packet, double time)=0