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);
98 BytestreamToUMPHandler (PacketProtocol protocol,
Receiver& c)
99 : recipient (c), dispatcher (protocol, 2048) {}
111 Factory (PacketProtocol p,
Receiver& c)
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;