From b0af872de25a6e7ccd955d938f50c210c130dadb Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Wed, 20 Aug 2025 12:50:16 +0200 Subject: [PATCH] Add "clear" button to RTA Window --- gtk2_ardour/rta_window.cc | 10 ++++++++++ gtk2_ardour/rta_window.h | 2 ++ 2 files changed, 12 insertions(+) diff --git a/gtk2_ardour/rta_window.cc b/gtk2_ardour/rta_window.cc index c38b83df40..5a7d1c19a0 100644 --- a/gtk2_ardour/rta_window.cc +++ b/gtk2_ardour/rta_window.cc @@ -44,6 +44,7 @@ using namespace ARDOUR; RTAWindow::RTAWindow () : ArdourWindow (_("Realtime Perceptual Analyzer")) , _pause (_("Freeze"), ArdourWidgets::ArdourButton::default_elements, true) + , _clear (_("Clear"), ArdourWidgets::ArdourButton::default_elements) , _visible (false) , _margin (24) , _min_dB (-60) @@ -56,6 +57,8 @@ RTAWindow::RTAWindow () _pause.signal_clicked.connect (mem_fun (*this, &RTAWindow::pause_toggled)); _pause.set_name ("rta freeze button"); + _clear.signal_clicked.connect (mem_fun (*this, &RTAWindow::clear_clicked)); + _darea.add_events (Gdk::BUTTON_PRESS_MASK | Gdk::BUTTON_RELEASE_MASK | Gdk::POINTER_MOTION_MASK | Gdk::LEAVE_NOTIFY_MASK); _darea.signal_size_request ().connect (sigc::mem_fun (*this, &RTAWindow::darea_size_request)); _darea.signal_size_allocate ().connect (sigc::mem_fun (*this, &RTAWindow::darea_size_allocate)); @@ -101,6 +104,7 @@ RTAWindow::RTAWindow () _ctrlbox.pack_start (_warp_dropdown, false, false); _ctrlbox.pack_start (_pointer_info, false, false, 5); _ctrlbox.pack_end (_pause, false, false); + _ctrlbox.pack_end (_clear, false, false); _vpacker.pack_start (_darea, true, true); _vpacker.pack_start (_ctrlbox, false, false, 5); @@ -244,6 +248,12 @@ RTAWindow::pause_toggled () RTAManager::instance ()->set_active (_visible && !_pause.get_active ()); } +void +RTAWindow::clear_clicked () +{ + RTAManager::instance ()->clear (); +} + void RTAWindow::rta_settings_changed () { diff --git a/gtk2_ardour/rta_window.h b/gtk2_ardour/rta_window.h index 88f2f64c54..434d866722 100644 --- a/gtk2_ardour/rta_window.h +++ b/gtk2_ardour/rta_window.h @@ -65,6 +65,7 @@ private: void set_rta_warp (ARDOUR::DSP::PerceptualAnalyzer::Warp); void pause_toggled (); + void clear_clicked (); enum DragStatus { DragNone, @@ -82,6 +83,7 @@ private: Gtk::DrawingArea _darea; Gtk::Label _pointer_info; ArdourWidgets::ArdourButton _pause; + ArdourWidgets::ArdourButton _clear; ArdourWidgets::ArdourDropdown _speed_dropdown; ArdourWidgets::ArdourDropdown _warp_dropdown; Cairo::RefPtr _grid;