switch from JACK_Slave to Engine_Slave

This commit is contained in:
Paul Davis
2013-09-19 17:34:23 -04:00
parent d2ca0665bf
commit 960a47330a
18 changed files with 50 additions and 43 deletions

View File

@@ -1809,7 +1809,7 @@ ARDOUR_UI::transport_roll ()
#if 0
if (_session->config.get_external_sync()) {
switch (Config->get_sync_source()) {
case JACK:
case Engine:
break;
default:
/* transport controlled by the master */
@@ -1859,7 +1859,7 @@ ARDOUR_UI::toggle_roll (bool with_abort, bool roll_out_of_bounded_mode)
if (_session->config.get_external_sync()) {
switch (Config->get_sync_source()) {
case JACK:
case Engine:
break;
default:
/* transport controlled by the master */

View File

@@ -60,7 +60,7 @@ ARDOUR_UI::toggle_external_sync()
{
if (_session) {
if (_session->config.get_video_pullup() != 0.0f) {
if (Config->get_sync_source() == JACK) {
if (Config->get_sync_source() == Engine) {
MessageDialog msg (
_("It is not possible to use JACK as the the sync source\n\
when the pull up/down setting is non-zero."));
@@ -465,7 +465,7 @@ ARDOUR_UI::synchronize_sync_source_and_video_pullup ()
act->set_sensitive (true);
} else {
/* can't sync to JACK if video pullup != 0.0 */
if (Config->get_sync_source() == JACK) {
if (Config->get_sync_source() == Engine) {
act->set_sensitive (false);
} else {
act->set_sensitive (true);

View File

@@ -996,7 +996,7 @@ AudioClock::set_slave_info ()
Slave* slave = _session->slave();
switch (sync_src) {
case JACK:
case Engine:
_left_layout->set_markup (string_compose ("<span size=\"%1\">" TXTSPAN "%2</span></span>",
INFO_FONT_SIZE, sync_source_to_string(sync_src, true)));
_right_layout->set_text ("");

View File

@@ -2108,7 +2108,7 @@ Editor::transition_to_rolling (bool fwd)
if (_session->config.get_external_sync()) {
switch (Config->get_sync_source()) {
case JACK:
case Engine:
break;
default:
/* transport controlled by the master */

View File

@@ -334,7 +334,7 @@ SessionOptionEditor::parameter_changed (std::string const & p)
{
OptionEditor::parameter_changed (p);
if (p == "external-sync") {
if (Config->get_sync_source() == JACK) {
if (Config->get_sync_source() == Engine) {
_vpu->set_sensitive(!_session_config->get_external_sync());
} else {
_vpu->set_sensitive(true);

View File

@@ -554,7 +554,7 @@ VideoMonitor::xjadeo_sync_setup ()
bool my_manual_seek = true;
if (_session->config.get_external_sync()) {
if (ARDOUR::Config->get_sync_source() == ARDOUR::JACK)
if (ARDOUR::Config->get_sync_source() == ARDOUR::Engine)
my_manual_seek = false;
}

View File

@@ -51,7 +51,7 @@ CONFIG_VARIABLE (int, mtc_qf_speed_tolerance, "mtc-qf-speed-tolerance", 5)
CONFIG_VARIABLE (bool, timecode_sync_frame_rate, "timecode-sync-frame-rate", true)
CONFIG_VARIABLE (bool, timecode_source_is_synced, "timecode-source-is-synced", true)
CONFIG_VARIABLE (bool, timecode_source_2997, "timecode-source-2997", false)
CONFIG_VARIABLE (SyncSource, sync_source, "sync-source", JACK)
CONFIG_VARIABLE (SyncSource, sync_source, "sync-source", Engine)
CONFIG_VARIABLE (std::string, ltc_source_port, "ltc-source-port", "system:capture_1")
CONFIG_VARIABLE (bool, send_ltc, "send-ltc", false)
CONFIG_VARIABLE (bool, ltc_send_continuously, "ltc-send-continuously", true)

View File

@@ -509,7 +509,7 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi
static PBD::Signal1<void, framepos_t> EndTimeChanged;
void request_sync_source (Slave*);
bool synced_to_jack() const { return config.get_external_sync() && Config->get_sync_source() == JACK; }
bool synced_to_engine() const { return config.get_external_sync() && Config->get_sync_source() == Engine; }
double transport_speed() const { return _transport_speed; }
bool transport_stopped() const { return _transport_speed == 0.0f; }

View File

@@ -486,11 +486,11 @@ class MIDIClock_Slave : public Slave {
bool _starting;
};
class JACK_Slave : public Slave
class Engine_Slave : public Slave
{
public:
JACK_Slave (AudioEngine&);
~JACK_Slave ();
Engine_Slave (AudioEngine&);
~Engine_Slave ();
bool speed_and_position (double& speed, framepos_t& pos);

View File

@@ -489,7 +489,7 @@ namespace ARDOUR {
};
enum SyncSource {
JACK,
Engine,
MTC,
MIDIClock,
LTC

View File

@@ -26,7 +26,7 @@
using namespace std;
using namespace ARDOUR;
JACK_Slave::JACK_Slave (AudioEngine& e)
Engine_Slave::Engine_Slave (AudioEngine& e)
: engine (e)
{
double x;
@@ -35,24 +35,24 @@ JACK_Slave::JACK_Slave (AudioEngine& e)
speed_and_position (x, p);
}
JACK_Slave::~JACK_Slave ()
Engine_Slave::~Engine_Slave ()
{
}
bool
JACK_Slave::locked() const
Engine_Slave::locked() const
{
return true;
}
bool
JACK_Slave::ok() const
Engine_Slave::ok() const
{
return true;
}
bool
JACK_Slave::speed_and_position (double& sp, framepos_t& position)
Engine_Slave::speed_and_position (double& sp, framepos_t& position)
{
switch (engine.transport_state()) {
case TransportStopped:

View File

@@ -335,7 +335,7 @@ setup_enum_writer ()
REGISTER (_PluginType);
REGISTER_ENUM (MTC);
REGISTER_ENUM (JACK);
REGISTER_ENUM (Engine);
REGISTER_ENUM (MIDIClock);
REGISTER_ENUM (LTC);
REGISTER (_SyncSource);

View File

@@ -530,7 +530,11 @@ ARDOUR::get_available_sync_options ()
{
vector<SyncSource> ret;
ret.push_back (JACK);
boost::shared_ptr<AudioBackend> backend = AudioEngine::instance()->current_backend();
if (backend && backend->name() == "JACK") {
ret.push_back (Engine);
}
ret.push_back (MTC);
ret.push_back (MIDIClock);
ret.push_back (LTC);

View File

@@ -393,7 +393,7 @@ Session::immediately_post_engine ()
_engine.Running.connect_same_thread (*this, boost::bind (&Session::initialize_latencies, this));
if (synced_to_jack()) {
if (synced_to_engine()) {
_engine.transport_stop ();
}
@@ -1406,7 +1406,7 @@ Session::audible_frame () const
offset = current_block_size;
}
if (synced_to_jack()) {
if (synced_to_engine()) {
tf = _engine.transport_frame();
} else {
tf = _transport_frame;

View File

@@ -182,7 +182,7 @@ Session::timecode_time (Timecode::Time &t)
int
Session::backend_sync_callback (TransportState state, framepos_t pos)
{
bool slave = synced_to_jack();
bool slave = synced_to_engine();
switch (state) {
case TransportStopped:

View File

@@ -86,7 +86,7 @@ Session::request_sync_source (Slave* new_slave)
seamless = Config->get_seamless_loop ();
if (dynamic_cast<JACK_Slave*>(new_slave)) {
if (dynamic_cast<Engine_Slave*>(new_slave)) {
/* JACK cannot support seamless looping at present */
Config->set_seamless_loop (false);
} else {
@@ -514,13 +514,13 @@ Session::non_realtime_stop (bool abort, int on_entry, bool& finished)
if (auto_return_enabled ||
(ptw & PostTransportLocate) ||
(_requested_return_frame >= 0) ||
synced_to_jack()) {
synced_to_engine()) {
if (pending_locate_flush) {
flush_all_inserts ();
}
if ((auto_return_enabled || synced_to_jack() || _requested_return_frame >= 0) &&
if ((auto_return_enabled || synced_to_engine() || _requested_return_frame >= 0) &&
!(ptw & PostTransportLocate)) {
/* no explicit locate queued */
@@ -543,7 +543,7 @@ Session::non_realtime_stop (bool abort, int on_entry, bool& finished)
/* don't try to handle loop play when synced to JACK */
if (!synced_to_jack()) {
if (!synced_to_engine()) {
Location *location = _locations->auto_loop_location();
@@ -734,7 +734,7 @@ Session::set_play_loop (bool yn)
return;
}
if (yn && Config->get_seamless_loop() && synced_to_jack()) {
if (yn && Config->get_seamless_loop() && synced_to_engine()) {
warning << string_compose (
_("Seamless looping cannot be supported while %1 is using JACK transport.\n"
"Recommend changing the configured options"), PROGRAM_NAME)
@@ -811,7 +811,7 @@ Session::flush_all_inserts ()
void
Session::start_locate (framepos_t target_frame, bool with_roll, bool with_flush, bool with_loop, bool force)
{
if (synced_to_jack()) {
if (synced_to_engine()) {
double sp;
framepos_t pos;
@@ -926,7 +926,7 @@ Session::locate (framepos_t target_frame, bool with_roll, bool with_flush, bool
bool transport_was_stopped = !transport_rolling();
if (transport_was_stopped && (!auto_play_legal || !config.get_auto_play()) && !with_roll && !(synced_to_jack() && play_loop)) {
if (transport_was_stopped && (!auto_play_legal || !config.get_auto_play()) && !with_roll && !(synced_to_engine() && play_loop)) {
realtime_stop (false, true); // XXX paul - check if the 2nd arg is really correct
transport_was_stopped = true;
} else {
@@ -1067,7 +1067,7 @@ Session::set_transport_speed (double speed, bool abort, bool clear_state, bool a
set_track_monitor_input_status (true);
}
if (synced_to_jack ()) {
if (synced_to_engine ()) {
if (clear_state) {
/* do this here because our response to the slave won't
take care of it.
@@ -1090,7 +1090,7 @@ Session::set_transport_speed (double speed, bool abort, bool clear_state, bool a
set_track_monitor_input_status (false);
}
if (synced_to_jack()) {
if (synced_to_engine()) {
_engine.transport_start ();
} else {
start_transport ();
@@ -1100,7 +1100,7 @@ Session::set_transport_speed (double speed, bool abort, bool clear_state, bool a
/* not zero, not 1.0 ... varispeed */
if ((synced_to_jack()) && speed != 0.0 && speed != 1.0) {
if ((synced_to_engine()) && speed != 0.0 && speed != 1.0) {
warning << string_compose (
_("Global varispeed cannot be supported while %1 is connected to JACK transport control"),
PROGRAM_NAME)
@@ -1429,8 +1429,8 @@ Session::switch_to_sync_source (SyncSource src)
}
break;
case JACK:
if (_slave && dynamic_cast<JACK_Slave*>(_slave)) {
case Engine:
if (_slave && dynamic_cast<Engine_Slave*>(_slave)) {
return;
}
@@ -1438,7 +1438,7 @@ Session::switch_to_sync_source (SyncSource src)
return;
}
new_slave = new JACK_Slave (*AudioEngine::instance());
new_slave = new Engine_Slave (*AudioEngine::instance());
break;
default:
@@ -1632,9 +1632,9 @@ bool
Session::maybe_stop (framepos_t limit)
{
if ((_transport_speed > 0.0f && _transport_frame >= limit) || (_transport_speed < 0.0f && _transport_frame == 0)) {
if (synced_to_jack () && config.get_jack_time_master ()) {
if (synced_to_engine () && config.get_jack_time_master ()) {
_engine.transport_stop ();
} else if (!synced_to_jack ()) {
} else if (!synced_to_engine ()) {
stop_transport ();
}
return true;

View File

@@ -395,12 +395,12 @@ string_to_sync_source (string str)
}
if (str == _("JACK")) {
return JACK;
return Engine;
}
fatal << string_compose (_("programming error: unknown sync source string \"%1\""), str) << endmsg;
/*NOTREACHED*/
return JACK;
return Engine;
}
/** @param sh Return a short version of the string */
@@ -408,7 +408,10 @@ const char*
sync_source_to_string (SyncSource src, bool sh)
{
switch (src) {
case JACK:
case Engine:
/* no other backends offer sync for now ... deal with this if we
* ever have to.
*/
return _("JACK");
case MTC:

View File

@@ -69,6 +69,7 @@ libardour_sources = [
'diskstream.cc',
'element_import_handler.cc',
'element_importer.cc',
'engine_slave.cc',
'enums.cc',
'event_type_map.cc',
'export_channel.cc',
@@ -103,7 +104,6 @@ libardour_sources = [
'interpolation.cc',
'io.cc',
'io_processor.cc',
'jack_slave.cc',
'kmeterdsp.cc',
'ladspa_plugin.cc',
'location.cc',