mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-15 19:16:40 +01:00
fix issues with recording while synced to JACK (non-pure-virtual method added to AudioBackend) and remove pause() from AudioEngine/AudioBackend APIs
This commit is contained in:
parent
f1a6735ca4
commit
cfe42bc4ea
7 changed files with 71 additions and 65 deletions
|
|
@ -581,18 +581,6 @@ JACKAudioBackend::stop ()
|
|||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
JACKAudioBackend::pause ()
|
||||
{
|
||||
GET_PRIVATE_JACK_POINTER_RET (_priv_jack, -1);
|
||||
|
||||
if (_priv_jack) {
|
||||
jack_deactivate (_priv_jack);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
JACKAudioBackend::freewheel (bool onoff)
|
||||
{
|
||||
|
|
@ -1131,3 +1119,46 @@ JACKAudioBackend::set_midi_option (const string& opt)
|
|||
_target_midi_option = opt;
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool
|
||||
JACKAudioBackend::speed_and_position (double& speed, framepos_t& position)
|
||||
{
|
||||
jack_position_t pos;
|
||||
jack_transport_state_t state;
|
||||
bool starting;
|
||||
|
||||
/* this won't be called if the port engine in use is not JACK, so we do
|
||||
not have to worry about the type of PortEngine::private_handle()
|
||||
*/
|
||||
|
||||
speed = 0;
|
||||
position = 0;
|
||||
|
||||
GET_PRIVATE_JACK_POINTER_RET (_priv_jack, true);
|
||||
|
||||
state = jack_transport_query (_priv_jack, &pos);
|
||||
|
||||
switch (state) {
|
||||
case JackTransportStopped:
|
||||
speed = 0;
|
||||
starting = false;
|
||||
break;
|
||||
case JackTransportRolling:
|
||||
speed = 1.0;
|
||||
starting = false;
|
||||
break;
|
||||
case JackTransportLooping:
|
||||
speed = 1.0;
|
||||
starting = false;
|
||||
break;
|
||||
case JackTransportStarting:
|
||||
starting = true;
|
||||
// don't adjust speed here, just leave it as it was
|
||||
break;
|
||||
default:
|
||||
std::cerr << "WARNING: Unknown JACK transport state: " << state << std::endl;
|
||||
}
|
||||
|
||||
position = pos.frame;
|
||||
return starting;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue