From 315f41f82f1e5e5cf941e83895848a6372670935 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 14 Sep 2011 20:39:03 +0000 Subject: Option to glue new markers to bars and beats (part of #4202). git-svn-id: svn://localhost/ardour2/branches/3.0@10087 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/session_option_editor.cc | 9 +++++++++ libs/ardour/ardour/session_configuration_vars.h | 1 + libs/ardour/location.cc | 3 ++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/gtk2_ardour/session_option_editor.cc b/gtk2_ardour/session_option_editor.cc index 73663ebe22..bd5f359297 100644 --- a/gtk2_ardour/session_option_editor.cc +++ b/gtk2_ardour/session_option_editor.cc @@ -293,6 +293,15 @@ SessionOptionEditor::SessionOptionEditor (Session* s) sigc::mem_fun (*_session_config, &SessionConfiguration::get_bwf_organization_code), sigc::mem_fun (*_session_config, &SessionConfiguration::set_bwf_organization_code) )); + + add_option (_("Misc"), new OptionEditorHeading (_("Glue to bars and beats"))); + + add_option (_("Misc"), new BoolOption ( + "glue-new-markers-to-bars-and-beats", + _("Glue new markers to bars and beats"), + sigc::mem_fun (*_session_config, &SessionConfiguration::get_glue_new_markers_to_bars_and_beats), + sigc::mem_fun (*_session_config, &SessionConfiguration::set_glue_new_markers_to_bars_and_beats) + )); } void diff --git a/libs/ardour/ardour/session_configuration_vars.h b/libs/ardour/ardour/session_configuration_vars.h index 5924adcc86..acefc92506 100644 --- a/libs/ardour/ardour/session_configuration_vars.h +++ b/libs/ardour/ardour/session_configuration_vars.h @@ -61,3 +61,4 @@ CONFIG_VARIABLE (SyncSource, sync_source, "sync-source", JACK) CONFIG_VARIABLE (InsertMergePolicy, insert_merge_policy, "insert-merge-policy", InsertMergeRelax) CONFIG_VARIABLE (framecnt_t, timecode_offset, "timecode-offset", 0) CONFIG_VARIABLE (bool, timecode_offset_negative, "timecode-offset-negative", true) +CONFIG_VARIABLE (bool, glue_new_markers_to_bars_and_beats, "glue-new-markers-to-bars-and-beats", false) diff --git a/libs/ardour/location.cc b/libs/ardour/location.cc index 7095596101..b6a09d863a 100644 --- a/libs/ardour/location.cc +++ b/libs/ardour/location.cc @@ -54,6 +54,7 @@ Location::Location (Session& s) assert (_end >= 0); } +/** Construct a new Location, giving it the position lock style determined by glue-new-markers-to-bars-and-beats */ Location::Location (Session& s, framepos_t sample_start, framepos_t sample_end, const std::string &name, Flags bits) : SessionHandleRef (s) , _name (name) @@ -61,7 +62,7 @@ Location::Location (Session& s, framepos_t sample_start, framepos_t sample_end, , _end (sample_end) , _flags (bits) , _locked (false) - , _position_lock_style (AudioTime) + , _position_lock_style (s.config.get_glue_new_markers_to_bars_and_beats() ? MusicTime : AudioTime) { recompute_bbt_from_frames (); -- cgit v1.2.3