From b4e592a469245ec952e175393b4bcbd16fd7bcfa Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sat, 18 Nov 2023 18:40:50 -0700 Subject: [PATCH] adjust relationship between VerboseCursor and Editor to use EditingContext --- gtk2_ardour/editing_context.cc | 3 +++ gtk2_ardour/editing_context.h | 3 ++- gtk2_ardour/editor.h | 2 -- gtk2_ardour/editor_canvas.cc | 1 - gtk2_ardour/verbose_cursor.cc | 22 +++++++++++----------- gtk2_ardour/verbose_cursor.h | 6 +++--- 6 files changed, 19 insertions(+), 18 deletions(-) diff --git a/gtk2_ardour/editing_context.cc b/gtk2_ardour/editing_context.cc index dd66baf245..e65d02431d 100644 --- a/gtk2_ardour/editing_context.cc +++ b/gtk2_ardour/editing_context.cc @@ -31,6 +31,7 @@ #include "midi_region_view.h" #include "selection.h" #include "selection_memento.h" +#include "verbose_cursor.h" #include "pbd/i18n.h" @@ -91,6 +92,8 @@ EditingContext::EditingContext () , _verbose_cursor (nullptr) { grid_type_strings = I18N (_grid_type_strings); + + _verbose_cursor = new VerboseCursor (*this); } EditingContext::~EditingContext() diff --git a/gtk2_ardour/editing_context.h b/gtk2_ardour/editing_context.h index e41c40c406..4871a1d4e2 100644 --- a/gtk2_ardour/editing_context.h +++ b/gtk2_ardour/editing_context.h @@ -255,6 +255,8 @@ public: ArdourCanvas::Rectangle* rubberband_rect; + virtual ArdourCanvas::Container* get_noscroll_group() const = 0; + protected: Glib::RefPtr _midi_actions; @@ -339,7 +341,6 @@ public: MouseCursors* _cursors; - friend class VerboseCursor; VerboseCursor* _verbose_cursor; }; diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index 7acb82f35a..059d4de433 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -855,8 +855,6 @@ private: bool within_track_canvas; - friend class VerboseCursor; - RegionPeakCursor* _region_peak_cursor; void parameter_changed (std::string); diff --git a/gtk2_ardour/editor_canvas.cc b/gtk2_ardour/editor_canvas.cc index d4d2e073a9..f73cdcbe79 100644 --- a/gtk2_ardour/editor_canvas.cc +++ b/gtk2_ardour/editor_canvas.cc @@ -112,7 +112,6 @@ Editor::initialize_canvas () CANVAS_DEBUG_NAME (cursor_scroll_group, "canvas cursor scroll"); _track_canvas->add_scroller (*cg); - _verbose_cursor = new VerboseCursor (this); _region_peak_cursor = new RegionPeakCursor (get_noscroll_group ()); /*a group to hold global rects like punch/loop indicators */ diff --git a/gtk2_ardour/verbose_cursor.cc b/gtk2_ardour/verbose_cursor.cc index 8a2e88ee1c..8c49a43703 100644 --- a/gtk2_ardour/verbose_cursor.cc +++ b/gtk2_ardour/verbose_cursor.cc @@ -30,7 +30,7 @@ #include "canvas/tracking_text.h" #include "audio_clock.h" -#include "editor.h" +#include "editing_context.h" #include "editor_drag.h" #include "main_clock.h" #include "verbose_cursor.h" @@ -43,10 +43,10 @@ using namespace std; using namespace ARDOUR; using namespace Temporal; -VerboseCursor::VerboseCursor (Editor* editor) +VerboseCursor::VerboseCursor (EditingContext& editor) : _editor (editor) { - _canvas_item = new ArdourCanvas::TrackingText (_editor->get_noscroll_group()); + _canvas_item = new ArdourCanvas::TrackingText (_editor.get_noscroll_group()); CANVAS_DEBUG_NAME (_canvas_item, "verbose canvas cursor"); _canvas_item->set_font_description (Pango::FontDescription (UIConfiguration::instance().get_LargerBoldFont())); color_handler (); @@ -103,7 +103,7 @@ VerboseCursor::set_time (samplepos_t sample) Timecode::Time timecode; Temporal::BBT_Time bbt; - if (_editor->_session == 0) { + if (_editor.session() == 0) { return; } @@ -118,16 +118,16 @@ VerboseCursor::set_time (samplepos_t sample) break; case AudioClock::Timecode: - _editor->_session->timecode_time (sample, timecode); + _editor.session()->timecode_time (sample, timecode); snprintf (buf, sizeof (buf), "%s", Timecode::timecode_format_time (timecode).c_str()); break; case AudioClock::MinSec: - AudioClock::print_minsec (sample, buf, sizeof (buf), _editor->_session->sample_rate()); + AudioClock::print_minsec (sample, buf, sizeof (buf), _editor.session()->sample_rate()); break; case AudioClock::Seconds: - snprintf (buf, sizeof(buf), "%.1f", sample / (float)_editor->_session->sample_rate()); + snprintf (buf, sizeof(buf), "%.1f", sample / (float)_editor.session()->sample_rate()); break; default: @@ -147,7 +147,7 @@ VerboseCursor::set_duration (samplepos_t start, samplepos_t end) Temporal::BBT_Time ebbt; Meter const & meter_at_start (TempoMap::use()->metric_at (timepos_t (start)).meter()); - if (_editor->_session == 0) { + if (_editor.session() == 0) { return; } @@ -191,16 +191,16 @@ VerboseCursor::set_duration (samplepos_t start, samplepos_t end) } case AudioClock::Timecode: - _editor->_session->timecode_duration (end - start, timecode); + _editor.session()->timecode_duration (end - start, timecode); snprintf (buf, sizeof (buf), "%s", Timecode::timecode_format_time (timecode).c_str()); break; case AudioClock::MinSec: - AudioClock::print_minsec (end - start, buf, sizeof (buf), _editor->_session->sample_rate()); + AudioClock::print_minsec (end - start, buf, sizeof (buf), _editor.session()->sample_rate()); break; case AudioClock::Seconds: - snprintf (buf, sizeof(buf), "%.1f", (end - start) / (float)_editor->_session->sample_rate()); + snprintf (buf, sizeof(buf), "%.1f", (end - start) / (float)_editor.session()->sample_rate()); break; default: diff --git a/gtk2_ardour/verbose_cursor.h b/gtk2_ardour/verbose_cursor.h index c208c1ef63..ecbe8f3984 100644 --- a/gtk2_ardour/verbose_cursor.h +++ b/gtk2_ardour/verbose_cursor.h @@ -23,7 +23,7 @@ #include "ardour/types.h" #include "canvas/canvas.h" -class Editor; +class EditingContext; namespace ArdourCanvas { class TrackingText; @@ -32,7 +32,7 @@ namespace ArdourCanvas { class VerboseCursor { public: - VerboseCursor (Editor *); + VerboseCursor (EditingContext&); ArdourCanvas::Item* canvas_item () const; bool visible () const; @@ -46,7 +46,7 @@ public: void hide (); private: - Editor* _editor; + EditingContext& _editor; ArdourCanvas::TrackingText* _canvas_item; void color_handler ();