DataType type () const { return DataType::MIDI; };
void* get_buffer (pframes_t nframes);
- const DummyMidiBuffer const_buffer () const { return _buffer; }
+ const DummyMidiBuffer * const_buffer () const { return &_buffer; }
void setup_generator (int, float const);
+ void set_loopback (DummyMidiBuffer const * const src);
private:
DummyMidiBuffer _buffer;
+ DummyMidiBuffer _loopback;
// midi event generator ('fake' physical inputs)
void midi_generate (const pframes_t n_samples);
static size_t max_buffer_size() {return _max_buffer_size;}
private:
+ enum MidiPortMode {
+ MidiNoEvents,
+ MidiGenerator,
+ MidiLoopback,
+ };
+
std::string _instance_name;
static std::vector<std::string> _midi_options;
static std::vector<AudioBackend::DeviceStatus> _device_status;
uint32_t _n_midi_inputs;
uint32_t _n_midi_outputs;
- bool _enable_midi_generators;
+ MidiPortMode _midi_mode;
uint32_t _systemic_input_latency;
uint32_t _systemic_output_latency;