25namespace juce::universal_midi_packets
37 virtual void reset() = 0;
38 virtual void pushMidiData (
const void* data,
int bytes,
double time) = 0;
50 : input (i), callback (c), concatenator (2048) {}
65 std::unique_ptr<BytestreamToBytestreamHandler> operator() (
MidiInput& i)
const
67 if (callback !=
nullptr)
68 return std::make_unique<BytestreamToBytestreamHandler> (i, *callback);
78 void reset()
override { concatenator.reset(); }
80 void pushMidiData (
const void* data,
int bytes,
double time)
override
82 concatenator.pushMidiData (data, bytes, time, &input, callback);
99 : recipient (c), dispatcher (protocol, 2048) {}
112 : protocol (p), callback (c) {}
114 std::unique_ptr<BytestreamToUMPHandler> operator() (
MidiInput&)
const
116 return std::make_unique<BytestreamToUMPHandler> (protocol, callback);
120 PacketProtocol protocol;
124 void reset()
override { dispatcher.reset(); }
126 void pushMidiData (
const void* data,
int bytes,
double time)
override
128 const auto* ptr =
static_cast<const uint8_t*
> (data);
129 dispatcher.
dispatch (ptr, ptr + bytes, time, [&] (
const View& v)
136 BytestreamToUMPDispatcher dispatcher;
void dispatch(const uint8_t *begin, const uint8_t *end, double timestamp, PacketCallbackFunction &&callback)
virtual void packetReceived(const View &packet, double time)=0