_running = false;
_has_run = false;
last_monitor_check = 0;
- monitor_check_interval = max_frames;
+ monitor_check_interval = INT32_MAX;
_processed_frames = 0;
_usecs_per_cycle = 0;
_jack = 0;
error << _("Cannot create temporary MIDI port to determine MIDI buffer size") << endmsg;
} else {
_raw_buffer_sizes[DataType::MIDI] = jack_midi_max_event_size (jack_port_get_buffer(midi_port, blocksize));
- cerr << "MIDI port buffers = " << _raw_buffer_sizes[DataType::MIDI] << endl;
jack_port_unregister (_priv_jack, midi_port);
}
}
}
}
+ if (forever) {
+ stop_metering_thread ();
+ }
+
return _running ? -1 : 0;
}
{
/* caller must hold process lock */
- Port::increment_port_offset (offset);
+ AudioPort::increment_port_offset (offset);
/* tell all Ports that we're going to start a new (split) cycle */
}
void
-AudioEngine::finish_process_cycle (int status)
+AudioEngine::finish_process_cycle (int /* status*/ )
{
GET_PRIVATE_JACK_POINTER(_jack);
jack_cycle_signal (_jack, 0);
/* handle wrap around of total frames counter */
- if (max_frames - _processed_frames < nframes) {
- next_processed_frames = nframes - (max_frames - _processed_frames);
+ if (max_framepos - _processed_frames < nframes) {
+ next_processed_frames = nframes - (max_framepos - _processed_frames);
} else {
next_processed_frames = _processed_frames + nframes;
}
/* tell all relevant objects that we're starting a new cycle */
Delivery::CycleStart (nframes);
- Port::set_port_offset (0);
+ AudioPort::set_port_offset (0);
InternalReturn::CycleStart (nframes);
/* tell all Ports that we're starting a new cycle */
}
}
+/** Get physical ports for which JackPortIsOutput is set; ie those that correspond to
+ * a physical input connector.
+ */
void
AudioEngine::get_physical_inputs (DataType type, vector<string>& ins)
{
- get_physical (type, JackPortIsInput, ins);
+ get_physical (type, JackPortIsOutput, ins);
}
+/** Get physical ports for which JackPortIsInput is set; ie those that correspond to
+ * a physical output connector.
+ */
void
AudioEngine::get_physical_outputs (DataType type, vector<string>& outs)
{
- get_physical (type, JackPortIsOutput, outs);
-}
-
-string
-AudioEngine::get_nth_physical (DataType type, uint32_t n, int flag)
-{
- GET_PRIVATE_JACK_POINTER_RET (_jack,"");
- const char ** ports;
- uint32_t i;
- uint32_t idx;
- string ret;
-
- assert(type != DataType::NIL);
-
- if ((ports = jack_get_ports (_priv_jack, NULL, type.to_jack_type(), JackPortIsPhysical|flag)) == 0) {
- return ret;
- }
-
- for (i = 0, idx = 0; idx < n && ports[i]; ++i) {
- if (!strstr (ports[i], "Midi-Through")) {
- ++idx;
- }
- }
-
- if (ports[idx]) {
- ret = ports[idx];
- }
-
- free ((const char **) ports);
-
- return ret;
+ get_physical (type, JackPortIsInput, outs);
}
void