diff --git a/doc/mainpage.md b/doc/mainpage.md
index cf5a01a7ff..67eca802c4 100755
--- a/doc/mainpage.md
+++ b/doc/mainpage.md
@@ -91,7 +91,7 @@ A few specific libraries are compiled statically (e.g. fluidsynth for use in plu
Mini Ardour inside Ardour to export audio-files from sessions.
It is a combination of AudioGrapher::Source and AudioGrapher::Sink classes that are chained together by ARDOUR::ExportGraphBuilder as shown in the ASCII art
- [Export Graph](https://git.ardour.org/ardour/ardour/src/commit/0df0e14e2309a00d433827fa34b87638b87f4fff/libs/ardour/export_graph_builder.cc#L73-L154).
+ [Export Graph](https://github.com/Ardour/ardour/blob/56647acc25aa91ccf920e5ac21452bccf35b78e7/libs/ardour/export_graph_builder.cc#L73-L154).
* `libs/ardour/`
diff --git a/gtk2_ardour/ardour.keys.in b/gtk2_ardour/ardour.keys.in
index 5bad418aed..839936a471 100644
--- a/gtk2_ardour/ardour.keys.in
+++ b/gtk2_ardour/ardour.keys.in
@@ -210,8 +210,8 @@ This mode provides many different operations on both regions and control points,
@edit|Editor/multi-duplicate| <@SECONDARY@>d|duplicate (multi)
@select|Editor/select-all-in-punch-range| <@TERTIARY@>d|select all in punch range
@vis|Editor/fit-selection| f|fit selection vertically
-@edit|Editing/toggle-follow-playhead| <@PRIMARY@>f|toggle playhead tracking
-@edit|Editor/toggle-stationary-playhead| <@TERTIARY@>f|toggle stationary playhead
+@edit|EditorEditing/toggle-follow-playhead| <@PRIMARY@>f|toggle playhead tracking
+@edit|EditorEditing/toggle-stationary-playhead| <@TERTIARY@>f|toggle stationary playhead
@rop|Region/show-rhythm-ferret| <@SECONDARY@>f|show rhythm ferret window
@wvis|Common/ToggleMaximalEditor| <@PRIMARY@><@SECONDARY@>f|maximise editor space
@wvis|Common/ToggleMaximalMixer| <@PRIMARY@><@TERTIARY@>f|maximise mixer space
diff --git a/gtk2_ardour/ardour.menus.in b/gtk2_ardour/ardour.menus.in
index d66a2fb919..8e18630777 100644
--- a/gtk2_ardour/ardour.menus.in
+++ b/gtk2_ardour/ardour.menus.in
@@ -187,7 +187,7 @@
-
+
diff --git a/gtk2_ardour/audio_clip_editor.cc b/gtk2_ardour/audio_clip_editor.cc
index 18420b0ca6..e6913305ca 100644
--- a/gtk2_ardour/audio_clip_editor.cc
+++ b/gtk2_ardour/audio_clip_editor.cc
@@ -112,11 +112,9 @@ AudioClipEditor::AudioClipEditor (std::string const & name, bool with_transport)
load_bindings ();
register_actions ();
- build_canvas ();
-
build_grid_type_menu ();
-
build_upper_toolbar ();
+ build_canvas ();
build_lower_toolbar ();
set_action_defaults ();
@@ -125,6 +123,8 @@ AudioClipEditor::AudioClipEditor (std::string const & name, bool with_transport)
void
AudioClipEditor::load_shared_bindings ()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
/* Full shared binding loading must have preceded this in some other EditingContext */
assert (!need_shared_actions);
@@ -146,6 +146,8 @@ AudioClipEditor::load_shared_bindings ()
void
AudioClipEditor::pack_inner (Gtk::Box& box)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
box.pack_start (snap_box, false, false);
box.pack_start (grid_box, false, false);
}
@@ -153,6 +155,8 @@ AudioClipEditor::pack_inner (Gtk::Box& box)
void
AudioClipEditor::pack_outer (Gtk::Box& box)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
if (with_transport_controls) {
box.pack_start (play_box, false, false);
}
@@ -164,12 +168,16 @@ AudioClipEditor::pack_outer (Gtk::Box& box)
void
AudioClipEditor::build_lower_toolbar ()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
_toolbox.pack_start (*_canvas_hscrollbar, false, false);
}
void
AudioClipEditor::build_canvas ()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
_canvas.set_background_color (UIConfiguration::instance().color ("arrange base"));
_canvas.signal_event().connect (sigc::mem_fun (*this, &CueEditor::canvas_pre_event), false);
_canvas.use_nsglview (UIConfiguration::instance().get_nsgl_view_mode () == NSGLHiRes);
@@ -213,14 +221,14 @@ AudioClipEditor::build_canvas ()
CANVAS_DEBUG_NAME (time_line_group, "audioclip time line group");
n_timebars = 0;
- minsec_ruler = new ArdourCanvas::Ruler (time_line_group, clip_metric, ArdourCanvas::Rect (0, 0, ArdourCanvas::COORD_MAX, timebar_height));
- // minsec_ruler->set_name ("audio clip editor ruler");
- minsec_ruler->set_font_description (UIConfiguration::instance ().get_SmallerFont ());
- minsec_ruler->set_fill_color (UIConfiguration::instance().color (X_("theme:bg1")));
- minsec_ruler->set_outline_color (UIConfiguration::instance().color (X_("theme:contrasting less")));
+ main_ruler = new ArdourCanvas::Ruler (time_line_group, clip_metric, ArdourCanvas::Rect (0, 0, ArdourCanvas::COORD_MAX, timebar_height));
+ // main_ruler->set_name ("audio clip editor ruler");
+ main_ruler->set_font_description (UIConfiguration::instance ().get_SmallerFont ());
+ main_ruler->set_fill_color (UIConfiguration::instance().color (X_("ruler base")));
+ main_ruler->set_outline_color (UIConfiguration::instance().color (X_("ruler text")));
n_timebars++;
- minsec_ruler->Event.connect (sigc::mem_fun (*this, &CueEditor::ruler_event));
+ main_ruler->Event.connect (sigc::mem_fun (*this, &CueEditor::ruler_event));
data_group = new ArdourCanvas::Container (hv_scroll_group);
CANVAS_DEBUG_NAME (data_group, "cue data group");
@@ -230,8 +238,6 @@ AudioClipEditor::build_canvas ()
cursor_scroll_group->set_position (ArdourCanvas::Duple (_timeline_origin, timebar_height * n_timebars));
h_scroll_group->set_position (Duple (_timeline_origin, 0.));
- _verbose_cursor = new VerboseCursor (*this);
-
// _playhead_cursor = new EditorCursor (*this, &Editor::canvas_playhead_cursor_event, X_("playhead"));
_playhead_cursor = new EditorCursor (*this, X_("playhead"));
_playhead_cursor->set_sensitive (UIConfiguration::instance().get_sensitize_playhead());
@@ -274,6 +280,8 @@ AudioClipEditor::build_canvas ()
AudioClipEditor::~AudioClipEditor ()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
drop_waves ();
delete clip_metric;
}
@@ -281,6 +289,8 @@ AudioClipEditor::~AudioClipEditor ()
bool
AudioClipEditor::line_event_handler (GdkEvent* ev, ArdourCanvas::Line* l)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
std::cerr << "event type " << Gtkmm2ext::event_type_string (ev->type) << " on line " << std::endl;
switch (ev->type) {
@@ -317,12 +327,16 @@ AudioClipEditor::line_event_handler (GdkEvent* ev, ArdourCanvas::Line* l)
bool
AudioClipEditor::key_press (GdkEventKey* ev)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
return false;
}
void
AudioClipEditor::position_lines ()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
if (!_region) {
return;
}
@@ -362,6 +376,8 @@ AudioClipEditor::LineDrag::motion (GdkEventMotion* ev)
void
AudioClipEditor::set_colors ()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
_canvas.set_background_color (UIConfiguration::instance ().color (X_("theme:bg")));
start_line->set_outline_color (UIConfiguration::instance ().color (X_("theme:contrasting clock")));
@@ -374,6 +390,8 @@ AudioClipEditor::set_colors ()
void
AudioClipEditor::drop_waves ()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
for (auto& wave : waves) {
delete wave;
}
@@ -384,6 +402,8 @@ AudioClipEditor::drop_waves ()
void
AudioClipEditor::set_trigger (TriggerReference& tr)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
if (tr == ref) {
return;
}
@@ -391,13 +411,15 @@ AudioClipEditor::set_trigger (TriggerReference& tr)
CueEditor::set_trigger (tr);
rec_box.show ();
- minsec_ruler->show ();
- minsec_ruler->set_range (0, pixel_to_sample (_visible_canvas_width - 2.));
+ main_ruler->show ();
+ main_ruler->set_range (0, pixel_to_sample (_visible_canvas_width - 2.));
}
void
AudioClipEditor::set_region (std::shared_ptr region)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
CueEditor::set_region (region);
if (_visible_pending_region) {
@@ -425,7 +447,7 @@ AudioClipEditor::set_region (std::shared_ptr region)
delete clip_metric;
clip_metric = new ClipBBTMetric (ref);
- minsec_ruler->set_metric (clip_metric);
+ main_ruler->set_metric (clip_metric);
uint32_t n_chans = r->n_channels ();
samplecnt_t len;
@@ -474,6 +496,8 @@ AudioClipEditor::set_region (std::shared_ptr region)
void
AudioClipEditor::canvas_allocate (Gtk::Allocation& alloc)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
_canvas.size_allocate (alloc);
_visible_canvas_width = alloc.get_width();
@@ -482,7 +506,7 @@ AudioClipEditor::canvas_allocate (Gtk::Allocation& alloc)
/* no track header here, "track width" is the whole canvas */
_track_canvas_width = _visible_canvas_width;
- minsec_ruler->set (ArdourCanvas::Rect (2, 2, alloc.get_width() - 4, timebar_height));
+ main_ruler->set (ArdourCanvas::Rect (2, 2, alloc.get_width() - 4, timebar_height));
position_lines ();
@@ -500,6 +524,8 @@ AudioClipEditor::canvas_allocate (Gtk::Allocation& alloc)
void
AudioClipEditor::set_spp_from_length (samplecnt_t len)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
if (_visible_canvas_width) {
set_samples_per_pixel (floor (len / _visible_canvas_width));
}
@@ -508,6 +534,8 @@ AudioClipEditor::set_spp_from_length (samplecnt_t len)
void
AudioClipEditor::set_wave_heights ()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
if (waves.empty ()) {
return;
}
@@ -526,6 +554,8 @@ AudioClipEditor::set_wave_heights ()
void
AudioClipEditor::set_waveform_colors ()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
Gtkmm2ext::Color clip = UIConfiguration::instance ().color ("clipped waveform");
Gtkmm2ext::Color zero = UIConfiguration::instance ().color ("zero line");
Gtkmm2ext::Color fill = UIConfiguration::instance ().color ("waveform fill");
@@ -542,17 +572,23 @@ AudioClipEditor::set_waveform_colors ()
Gtk::Widget&
AudioClipEditor::contents ()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
return _contents;
}
void
AudioClipEditor::region_changed (const PBD::PropertyChange& what_changed)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
}
void
AudioClipEditor::set_samples_per_pixel (samplecnt_t spp)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
CueEditor::set_samples_per_pixel (spp);
clip_metric->units_per_pixel = samples_per_pixel;
@@ -572,12 +608,16 @@ AudioClipEditor::set_samples_per_pixel (samplecnt_t spp)
samplecnt_t
AudioClipEditor::current_page_samples() const
{
+ EC_LOCAL_TEMPO_SCOPE;
+
return (samplecnt_t) _track_canvas_width * samples_per_pixel;
}
bool
AudioClipEditor::canvas_enter_leave (GdkEventCrossing* ev)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
switch (ev->type) {
case GDK_ENTER_NOTIFY:
if (ev->detail != GDK_NOTIFY_INFERIOR) {
@@ -602,26 +642,36 @@ AudioClipEditor::canvas_enter_leave (GdkEventCrossing* ev)
void
AudioClipEditor::begin_write ()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
}
void
AudioClipEditor::end_write ()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
}
void
AudioClipEditor::show_count_in (std::string const &)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
}
void
AudioClipEditor::hide_count_in ()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
}
void
AudioClipEditor::maybe_update ()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
ARDOUR::TriggerPtr playing_trigger;
if (ref.trigger()) {
@@ -679,6 +729,8 @@ AudioClipEditor::maybe_update ()
void
AudioClipEditor::unset (bool trigger_too)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
drop_waves ();
CueEditor::unset (trigger_too);
}
diff --git a/gtk2_ardour/audio_clip_editor.h b/gtk2_ardour/audio_clip_editor.h
index 81060fec57..511b804cc6 100644
--- a/gtk2_ardour/audio_clip_editor.h
+++ b/gtk2_ardour/audio_clip_editor.h
@@ -134,7 +134,7 @@ public:
ArdourCanvas::Line* end_line;
ArdourCanvas::Line* loop_line;
ArdourCanvas::Container* ruler_container;
- ArdourCanvas::Ruler* minsec_ruler;
+ ArdourCanvas::Ruler* main_ruler;
class ClipBBTMetric : public ArdourCanvas::Ruler::Metric
{
diff --git a/gtk2_ardour/cue_editor.cc b/gtk2_ardour/cue_editor.cc
index 1f4b682cdc..cec71ef348 100644
--- a/gtk2_ardour/cue_editor.cc
+++ b/gtk2_ardour/cue_editor.cc
@@ -71,11 +71,15 @@ CueEditor::~CueEditor ()
void
CueEditor::set_snapped_cursor_position (Temporal::timepos_t const & pos)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
}
std::vector
CueEditor::filter_to_unique_midi_region_views (RegionSelection const & ms) const
{
+ EC_LOCAL_TEMPO_SCOPE;
+
std::vector mrv;
return mrv;
}
@@ -83,17 +87,23 @@ CueEditor::filter_to_unique_midi_region_views (RegionSelection const & ms) const
void
CueEditor::get_regionviews_by_id (PBD::ID const id, RegionSelection & regions) const
{
+ EC_LOCAL_TEMPO_SCOPE;
+
}
StripableTimeAxisView*
CueEditor::get_stripable_time_axis_by_id (const PBD::ID& id) const
{
+ EC_LOCAL_TEMPO_SCOPE;
+
return nullptr;
}
TrackViewList
CueEditor::axis_views_from_routes (std::shared_ptr) const
{
+ EC_LOCAL_TEMPO_SCOPE;
+
TrackViewList tvl;
return tvl;
}
@@ -101,42 +111,56 @@ CueEditor::axis_views_from_routes (std::shared_ptr) const
ARDOUR::Location*
CueEditor::find_location_from_marker (ArdourMarker*, bool&) const
{
+ EC_LOCAL_TEMPO_SCOPE;
+
return nullptr;
}
ArdourMarker*
CueEditor::find_marker_from_location_id (PBD::ID const&, bool) const
{
+ EC_LOCAL_TEMPO_SCOPE;
+
return nullptr;
}
TempoMarker*
CueEditor::find_marker_for_tempo (Temporal::TempoPoint const &)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
return nullptr;
}
MeterMarker*
CueEditor::find_marker_for_meter (Temporal::MeterPoint const &)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
return nullptr;
}
void
CueEditor::redisplay_grid (bool immediate_redraw)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
update_grid ();
}
Temporal::timecnt_t
CueEditor::get_nudge_distance (Temporal::timepos_t const & pos, Temporal::timecnt_t& next) const
{
+ EC_LOCAL_TEMPO_SCOPE;
+
return Temporal::timecnt_t (Temporal::AudioTime);
}
void
CueEditor::instant_save()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
if (!_region) {
return;
}
@@ -158,42 +182,58 @@ CueEditor::instant_save()
void
CueEditor::begin_selection_op_history ()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
}
void
CueEditor::begin_reversible_selection_op (std::string cmd_name)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
}
void
CueEditor::commit_reversible_selection_op ()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
}
void
CueEditor::abort_reversible_selection_op ()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
}
void
CueEditor::undo_selection_op ()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
}
void
CueEditor::redo_selection_op ()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
}
double
CueEditor::get_y_origin () const
{
+ EC_LOCAL_TEMPO_SCOPE;
+
return 0.;
}
void
CueEditor::set_zoom_focus (Editing::ZoomFocus zf)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
using namespace Editing;
/* We don't allow playhead for zoom focus here */
@@ -208,6 +248,8 @@ CueEditor::set_zoom_focus (Editing::ZoomFocus zf)
void
CueEditor::set_samples_per_pixel (samplecnt_t n)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
samples_per_pixel = n;
ZoomChanged(); /* EMIT SIGNAL */
}
@@ -215,12 +257,16 @@ CueEditor::set_samples_per_pixel (samplecnt_t n)
samplecnt_t
CueEditor::get_current_zoom () const
{
+ EC_LOCAL_TEMPO_SCOPE;
+
return samples_per_pixel;
}
void
CueEditor::reposition_and_zoom (samplepos_t pos, double spp)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
pending_visual_change.add (VisualChange::ZoomLevel);
pending_visual_change.samples_per_pixel = spp;
@@ -233,36 +279,30 @@ CueEditor::reposition_and_zoom (samplepos_t pos, double spp)
void
CueEditor::set_mouse_mode (Editing::MouseMode, bool force)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
}
void
CueEditor::step_mouse_mode (bool next)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
}
Gdk::Cursor*
CueEditor::get_canvas_cursor () const
{
+ EC_LOCAL_TEMPO_SCOPE;
+
return nullptr;
}
-std::shared_ptr
-CueEditor::start_local_tempo_map (std::shared_ptr map)
-{
- std::shared_ptr tmp = Temporal::TempoMap::use();
- Temporal::TempoMap::set (map);
- return tmp;
-}
-
-void
-CueEditor::end_local_tempo_map (std::shared_ptr map)
-{
- Temporal::TempoMap::set (map);
-}
-
void
CueEditor::do_undo (uint32_t n)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
if (_drags->active ()) {
_drags->abort ();
}
@@ -273,6 +313,8 @@ CueEditor::do_undo (uint32_t n)
void
CueEditor::do_redo (uint32_t n)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
if (_drags->active ()) {
_drags->abort ();
}
@@ -283,12 +325,16 @@ CueEditor::do_redo (uint32_t n)
void
CueEditor::history_changed ()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
update_undo_redo_actions (_history);
}
Temporal::timepos_t
CueEditor::_get_preferred_edit_position (Editing::EditIgnoreOption ignore, bool from_context_menu, bool from_outside_canvas)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
samplepos_t where;
bool in_track_canvas = false;
@@ -302,6 +348,8 @@ CueEditor::_get_preferred_edit_position (Editing::EditIgnoreOption ignore, bool
void
CueEditor::build_upper_toolbar ()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
using namespace Gtk::Menu_Helpers;
Gtk::HBox* mode_box = manage(new Gtk::HBox);
@@ -423,6 +471,8 @@ CueEditor::build_upper_toolbar ()
void
CueEditor::build_zoom_focus_menu ()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
using namespace Gtk::Menu_Helpers;
using namespace Editing;
@@ -436,6 +486,8 @@ CueEditor::build_zoom_focus_menu ()
bool
CueEditor::bang_button_press (GdkEventButton* ev)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
if (!ref.trigger()) {
return true;
}
@@ -448,6 +500,8 @@ CueEditor::bang_button_press (GdkEventButton* ev)
bool
CueEditor::play_button_press (GdkEventButton* ev)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
if (_session && _region) {
_session->request_locate (_region->position().samples());
_session->request_roll ();
@@ -459,6 +513,8 @@ CueEditor::play_button_press (GdkEventButton* ev)
bool
CueEditor::loop_button_press (GdkEventButton* ev)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
if (!_region) {
return true;
}
@@ -476,6 +532,8 @@ CueEditor::loop_button_press (GdkEventButton* ev)
bool
CueEditor::solo_button_press (GdkEventButton* ev)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
if (!_track) {
return true;
}
@@ -488,6 +546,8 @@ CueEditor::solo_button_press (GdkEventButton* ev)
bool
CueEditor::rec_button_press (GdkEventButton* ev)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
if (ev->button != 1) {
return false;
}
@@ -510,6 +570,8 @@ CueEditor::rec_button_press (GdkEventButton* ev)
void
CueEditor::blink_rec_enable (bool onoff)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
if (onoff) {
rec_enable_button.set_active_state (Gtkmm2ext::ExplicitActive);
} else {
@@ -520,6 +582,8 @@ CueEditor::blink_rec_enable (bool onoff)
void
CueEditor::trigger_arm_change ()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
if (!ref.trigger()) {
return;
}
@@ -536,6 +600,8 @@ CueEditor::trigger_arm_change ()
void
CueEditor::rec_enable_change ()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
if (!ref.box()) {
return;
}
@@ -568,12 +634,16 @@ CueEditor::rec_enable_change ()
void
CueEditor::set_recording_length (Temporal::BBT_Offset dur)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
rec_length = dur;
}
void
CueEditor::scrolled ()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
pending_visual_change.add (VisualChange::TimeOrigin);
pending_visual_change.time_origin = horizontal_adjustment.get_value() * samples_per_pixel;
ensure_visual_change_idle_handler ();
@@ -582,6 +652,8 @@ CueEditor::scrolled ()
bool
CueEditor::canvas_pre_event (GdkEvent* ev)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
switch (ev->type) {
case GDK_ENTER_NOTIFY:
case GDK_LEAVE_NOTIFY:
@@ -599,6 +671,8 @@ CueEditor::canvas_pre_event (GdkEvent* ev)
bool
CueEditor::autoscroll_active () const
{
+ EC_LOCAL_TEMPO_SCOPE;
+
return autoscroll_connection.connected ();
}
@@ -610,6 +684,8 @@ CueEditor::autoscroll_active () const
void
CueEditor::maybe_autoscroll (bool allow_horiz, bool allow_vert, bool from_headers)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
if (!UIConfiguration::instance().get_autoscroll_editor () || autoscroll_active ()) {
return;
}
@@ -681,6 +757,8 @@ CueEditor::maybe_autoscroll (bool allow_horiz, bool allow_vert, bool from_header
bool
CueEditor::autoscroll_canvas ()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
using std::max;
using std::min;
int x, y;
@@ -881,6 +959,8 @@ CueEditor::autoscroll_canvas ()
void
CueEditor::start_canvas_autoscroll (bool allow_horiz, bool allow_vert, const ArdourCanvas::Rect& boundary)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
if (!_session) {
return;
}
@@ -904,6 +984,8 @@ CueEditor::start_canvas_autoscroll (bool allow_horiz, bool allow_vert, const Ard
void
CueEditor::stop_canvas_autoscroll ()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
autoscroll_connection.disconnect ();
autoscroll_cnt = 0;
}
@@ -911,6 +993,8 @@ CueEditor::stop_canvas_autoscroll ()
void
CueEditor::visual_changer (const VisualChange& vc)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
/**
* Changed first so the correct horizontal canvas position is calculated in
* EditingContext::set_horizontal_position
@@ -951,6 +1035,8 @@ CueEditor::visual_changer (const VisualChange& vc)
void
CueEditor::catch_pending_show_region ()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
if (_visible_pending_region) {
std::shared_ptr r (_visible_pending_region);
_visible_pending_region.reset ();
@@ -961,6 +1047,8 @@ CueEditor::catch_pending_show_region ()
RegionSelection
CueEditor::region_selection()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
RegionSelection rs;
/* there is never any region-level selection in a pianoroll */
return rs;
@@ -969,6 +1057,8 @@ CueEditor::region_selection()
void
CueEditor::mouse_mode_chosen (Editing::MouseMode m)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
if (!mouse_mode_actions[m]->get_active()) {
/* this was just the notification that the old mode has been
* left. we'll get called again with the new mode active in a
@@ -989,6 +1079,8 @@ CueEditor::mouse_mode_chosen (Editing::MouseMode m)
std::pair
CueEditor::max_zoom_extent() const
{
+ EC_LOCAL_TEMPO_SCOPE;
+
if (_region) {
Temporal::Beats len;
@@ -1011,6 +1103,8 @@ CueEditor::max_zoom_extent() const
void
CueEditor::zoom_to_show (Temporal::timecnt_t const & duration)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
if (!_track_canvas_width) {
zoom_in_allocate = true;
return;
@@ -1022,6 +1116,8 @@ CueEditor::zoom_to_show (Temporal::timecnt_t const & duration)
void
CueEditor::full_zoom_clicked()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
/* XXXX NEED LOCAL TEMPO MAP */
std::pair dur (max_zoom_extent());
@@ -1032,12 +1128,16 @@ CueEditor::full_zoom_clicked()
void
CueEditor::set_show_source (bool yn)
{
+ EC_LOCAL_TEMPO_SCOPE;
+
show_source = yn;
}
void
CueEditor::update_solo_display ()
{
+ EC_LOCAL_TEMPO_SCOPE;
+
if (_track->solo_control()->get_value()) {
solo_button.set_active_state (Gtkmm2ext::ExplicitActive);
} else {
@@ -1048,6 +1148,8 @@ CueEditor::update_solo_display ()
void
CueEditor::set_track (std::shared_ptr