bool
DummyAudioBackend::can_change_sample_rate_when_running () const
{
- return true;
+ return false;
}
bool
engine.sample_rate_change (_samplerate);
engine.buffer_size_change (_samples_per_period);
- _dsp_load_calc.set_max_time (_samplerate, _samples_per_period);
-
if (engine.reestablish_ports ()) {
PBD::error << _("DummyAudioBackend: Could not re-establish ports.") << endmsg;
stop ();
int
DummyAudioBackend::midi_event_get (
pframes_t& timestamp,
- size_t& size, uint8_t** buf, void* port_buffer,
+ size_t& size, uint8_t const** buf, void* port_buffer,
uint32_t event_index)
{
assert (buf && port_buffer);
int64_t clock1;
clock1 = -1;
while (_running) {
+ const size_t samples_per_period = _samples_per_period;
if (_freewheeling != _freewheel) {
_freewheel = _freewheeling;
(*it)->next_period();
}
- if (engine.process_callback (_samples_per_period)) {
+ if (engine.process_callback (samples_per_period)) {
return 0;
}
- _processed_samples += _samples_per_period;
+ _processed_samples += samples_per_period;
if (_device == _("Loopback") && _midi_mode != MidiToAudio) {
int opn = 0;
int opc = _system_outputs.size();
for (std::vector<DummyAudioPort*>::const_iterator it = _system_inputs.begin (); it != _system_inputs.end (); ++it, ++opn) {
DummyAudioPort* op = _system_outputs[(opn % opc)];
- (*it)->fill_wavetable ((const float*)op->get_buffer (_samples_per_period), _samples_per_period);
+ (*it)->fill_wavetable ((const float*)op->get_buffer (samples_per_period), samples_per_period);
}
}
for (std::vector<DummyAudioPort*>::const_iterator it = _system_inputs.begin (); it != _system_inputs.end (); ++it, ++opn) {
DummyMidiPort* op = _system_midi_out[(opn % opc)];
op->get_buffer(0); // mix-down
- (*it)->midi_to_wavetable (op->const_buffer(), _samples_per_period);
+ (*it)->midi_to_wavetable (op->const_buffer(), samples_per_period);
}
}
if (!_freewheel) {
+ _dsp_load_calc.set_max_time (_samplerate, samples_per_period);
_dsp_load_calc.set_start_timestamp_us (clock1);
_dsp_load_calc.set_stop_timestamp_us (_x_get_monotonic_usec());
_dsp_load = _dsp_load_calc.get_dsp_load_unbound ();
break;
case 3:
_ltc = ltc_encoder_create (samplerate, 24, LTC_TV_FILM_24, 0);
- name = "LTC30";
+ name = "LTC24";
break;
}
_ltc_spd = 1.0;
/* inspired by jack-demolition by Steve Harris */
static const float _demolition[] = {
- 0.0f, /* special case - 0dbFS white noise */
- 0.0f, /* zero, may cause denomrals following a signal */
- 0.73 / 1e45, /* very small - should be denormal when floated */
- 3.7f, /* arbitrary number > 0dBFS */
- -4.3f, /* arbitrary negative number > 0dBFS */
- 4294967395.0f, /* 2^16 + 100 */
+ 0.0f, /* special case - 0dbFS white noise */
+ 0.0f, /* zero, may cause denomrals following a signal */
+ 0.73 / 1e45, /* very small - should be denormal when floated */
+ 3.7f, /* arbitrary number > 0dBFS */
+ -4.3f, /* arbitrary negative number > 0dBFS */
+ 4294967395.0f, /* 2^16 + 100 */
-4294967395.0f,
- HUGE, /* Big, non-inf number */
- INFINITY, /* +inf */
- -INFINITY, /* -inf */
- -NAN, /* -nan */
- NAN, /* nan */
- 0.0f, /* some silence to check for recovery */
+ 3.402823466e+38F, /* HUGE, HUGEVALF, non-inf number */
+ INFINITY, /* +inf */
+ -INFINITY, /* -inf */
+ -NAN, /* -nan */
+ NAN, /* nan */
+ 0.0f, /* some silence to check for recovery */
};
void DummyAudioPort::generate (const pframes_t n_samples)
}
break;
case Loopback:
- _gen_period = n_samples; // XXX DummyBackend::_samples_per_period;
+ memcpy((void*)_buffer, (void*)_wavetable, n_samples * sizeof(Sample));
+ break;
case SineWave:
case SineWaveOctaves:
case SineSweep: