mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-07 23:35:03 +01:00
mostly fix 3409 by making it impossible to sync to JACK if video pull up/down is non-zero. missing: can still alter video pull up/down after syncing to JACK, will likely wait till post-3.0
git-svn-id: svn://localhost/ardour2/branches/3.0@7721 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
b9dca83832
commit
f13b700944
6 changed files with 73 additions and 7 deletions
|
|
@ -1281,10 +1281,10 @@ style "sync_alert"
|
|||
# active, and alternates with another style if sync is active
|
||||
# but we are not locked
|
||||
#
|
||||
bg[ACTIVE] = { 0.52, 1.0, 0}
|
||||
bg[PRELIGHT] = { 0.52, 1.0, 0}
|
||||
bg[SELECTED] = { 0.52, 1.0, 0}
|
||||
bg[NORMAL] = { 0.52, 1.0, 0}
|
||||
bg[ACTIVE] = { 0.98, 0.4, 0}
|
||||
bg[PRELIGHT] = { 0.98, 0.4, 0}
|
||||
bg[SELECTED] = { 0.98, 0.4, 0}
|
||||
bg[NORMAL] = { 0.98, 0.4, 0}
|
||||
|
||||
fg[NORMAL] = { 0, 0, 0 }
|
||||
fg[PRELIGHT] = { 0, 0, 0 }
|
||||
|
|
|
|||
|
|
@ -201,6 +201,8 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
|
|||
void restore_clock_modes ();
|
||||
void reset_main_clocks ();
|
||||
|
||||
void synchronize_sync_source_and_video_pullup ();
|
||||
|
||||
void add_route (Gtk::Window* float_window);
|
||||
|
||||
void session_add_audio_track (int input_channels, int32_t output_channels, ARDOUR::TrackMode mode, ARDOUR::RouteGroup* route_group, uint32_t how_many) {
|
||||
|
|
|
|||
|
|
@ -131,7 +131,6 @@ ARDOUR_UI::setup_tooltips ()
|
|||
set_tip (punch_in_button, _("Start recording at auto-punch start"));
|
||||
set_tip (punch_out_button, _("Stop recording at auto-punch end"));
|
||||
set_tip (click_button, _("Enable/Disable audio click"));
|
||||
set_tip (sync_button, _("Enable/Disable external positional sync"));
|
||||
set_tip (time_master_button, string_compose (_("Does %1 control the time?"), PROGRAM_NAME));
|
||||
set_tip (shuttle_box, _("Shuttle speed control"));
|
||||
set_tip (shuttle_units_button, _("Select semitones or %%-age for speed display"));
|
||||
|
|
@ -141,6 +140,8 @@ ARDOUR_UI::setup_tooltips ()
|
|||
set_tip (primary_clock, _("Primary Clock"));
|
||||
set_tip (secondary_clock, _("Secondary Clock"));
|
||||
|
||||
synchronize_sync_source_and_video_pullup ();
|
||||
|
||||
editor->setup_tooltips ();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -57,7 +57,19 @@ ARDOUR_UI::toggle_keep_tearoffs ()
|
|||
void
|
||||
ARDOUR_UI::toggle_external_sync()
|
||||
{
|
||||
ActionManager::toggle_config_state_foo ("Transport", "ToggleExternalSync", sigc::mem_fun (_session->config, &SessionConfiguration::set_external_sync), sigc::mem_fun (_session->config, &SessionConfiguration::get_external_sync));
|
||||
if (_session) {
|
||||
if (_session->config.get_video_pullup() != 0.0f) {
|
||||
if (_session->config.get_sync_source() == JACK) {
|
||||
MessageDialog msg (_(
|
||||
"It is not possible to use JACK as the the sync source\n\
|
||||
when the pull up/down setting is non-zero."));
|
||||
msg.run ();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
ActionManager::toggle_config_state_foo ("Transport", "ToggleExternalSync", sigc::mem_fun (_session->config, &SessionConfiguration::set_external_sync), sigc::mem_fun (_session->config, &SessionConfiguration::get_external_sync));
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -400,7 +412,14 @@ ARDOUR_UI::parameter_changed (std::string p)
|
|||
break;
|
||||
}
|
||||
} else if (p == "video-pullup" || p == "timecode-format") {
|
||||
|
||||
synchronize_sync_source_and_video_pullup ();
|
||||
reset_main_clocks ();
|
||||
|
||||
} else if (p == "sync-source") {
|
||||
|
||||
synchronize_sync_source_and_video_pullup ();
|
||||
|
||||
} else if (p == "show-track-meters") {
|
||||
editor->toggle_meter_updating();
|
||||
}
|
||||
|
|
@ -419,3 +438,43 @@ ARDOUR_UI::reset_main_clocks ()
|
|||
secondary_clock.set (0, true);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
ARDOUR_UI::synchronize_sync_source_and_video_pullup ()
|
||||
{
|
||||
Glib::RefPtr<Action> act = ActionManager::get_action (X_("Transport"), X_("ToggleExternalSync"));
|
||||
|
||||
if (!act) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!_session) {
|
||||
goto just_label;
|
||||
}
|
||||
|
||||
if (_session->config.get_video_pullup() == 0.0f) {
|
||||
/* with no video pull up/down, any sync source is OK */
|
||||
act->set_sensitive (true);
|
||||
} else {
|
||||
/* can't sync to JACK if video pullup != 0.0 */
|
||||
if (_session->config.get_sync_source() == JACK) {
|
||||
act->set_sensitive (false);
|
||||
} else {
|
||||
act->set_sensitive (true);
|
||||
}
|
||||
}
|
||||
|
||||
/* XXX should really be able to set the video pull up
|
||||
action to insensitive/sensitive, but there is no action.
|
||||
FIXME
|
||||
*/
|
||||
|
||||
just_label:
|
||||
if (act->get_sensitive ()) {
|
||||
set_tip (sync_button, _("Enable/Disable external positional sync"));
|
||||
} else {
|
||||
set_tip (sync_button, _("Sync to JACK is not possible: video pull up/down is set"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1783,7 +1783,7 @@ Editor::add_region_context_items (StreamView* sv, list<boost::shared_ptr<Region>
|
|||
RegionView* rv = sv->find_view (ar);
|
||||
AudioRegionView* arv = dynamic_cast<AudioRegionView*> (rv);
|
||||
|
||||
if (arv->envelope_visible()) {
|
||||
if (rv && arv && arv->envelope_visible()) {
|
||||
have_envelope_visible = true;
|
||||
} else {
|
||||
have_envelope_invisible = true;
|
||||
|
|
|
|||
|
|
@ -1281,6 +1281,10 @@ Session::switch_to_sync_source (SyncSource src)
|
|||
return;
|
||||
}
|
||||
|
||||
if (config.get_video_pullup() != 0.0f) {
|
||||
return;
|
||||
}
|
||||
|
||||
new_slave = new JACK_Slave (_engine.jack());
|
||||
break;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue