Add "clear" button to RTA Window

This commit is contained in:
Robin Gareus 2025-08-20 12:50:16 +02:00
parent ac9ffefb94
commit b0af872de2
No known key found for this signature in database
GPG key ID: A090BCE02CF57F04
2 changed files with 12 additions and 0 deletions

View file

@ -44,6 +44,7 @@ using namespace ARDOUR;
RTAWindow::RTAWindow () RTAWindow::RTAWindow ()
: ArdourWindow (_("Realtime Perceptual Analyzer")) : ArdourWindow (_("Realtime Perceptual Analyzer"))
, _pause (_("Freeze"), ArdourWidgets::ArdourButton::default_elements, true) , _pause (_("Freeze"), ArdourWidgets::ArdourButton::default_elements, true)
, _clear (_("Clear"), ArdourWidgets::ArdourButton::default_elements)
, _visible (false) , _visible (false)
, _margin (24) , _margin (24)
, _min_dB (-60) , _min_dB (-60)
@ -56,6 +57,8 @@ RTAWindow::RTAWindow ()
_pause.signal_clicked.connect (mem_fun (*this, &RTAWindow::pause_toggled)); _pause.signal_clicked.connect (mem_fun (*this, &RTAWindow::pause_toggled));
_pause.set_name ("rta freeze button"); _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.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_request ().connect (sigc::mem_fun (*this, &RTAWindow::darea_size_request));
_darea.signal_size_allocate ().connect (sigc::mem_fun (*this, &RTAWindow::darea_size_allocate)); _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 (_warp_dropdown, false, false);
_ctrlbox.pack_start (_pointer_info, false, false, 5); _ctrlbox.pack_start (_pointer_info, false, false, 5);
_ctrlbox.pack_end (_pause, false, false); _ctrlbox.pack_end (_pause, false, false);
_ctrlbox.pack_end (_clear, false, false);
_vpacker.pack_start (_darea, true, true); _vpacker.pack_start (_darea, true, true);
_vpacker.pack_start (_ctrlbox, false, false, 5); _vpacker.pack_start (_ctrlbox, false, false, 5);
@ -244,6 +248,12 @@ RTAWindow::pause_toggled ()
RTAManager::instance ()->set_active (_visible && !_pause.get_active ()); RTAManager::instance ()->set_active (_visible && !_pause.get_active ());
} }
void
RTAWindow::clear_clicked ()
{
RTAManager::instance ()->clear ();
}
void void
RTAWindow::rta_settings_changed () RTAWindow::rta_settings_changed ()
{ {

View file

@ -65,6 +65,7 @@ private:
void set_rta_warp (ARDOUR::DSP::PerceptualAnalyzer::Warp); void set_rta_warp (ARDOUR::DSP::PerceptualAnalyzer::Warp);
void pause_toggled (); void pause_toggled ();
void clear_clicked ();
enum DragStatus { enum DragStatus {
DragNone, DragNone,
@ -82,6 +83,7 @@ private:
Gtk::DrawingArea _darea; Gtk::DrawingArea _darea;
Gtk::Label _pointer_info; Gtk::Label _pointer_info;
ArdourWidgets::ArdourButton _pause; ArdourWidgets::ArdourButton _pause;
ArdourWidgets::ArdourButton _clear;
ArdourWidgets::ArdourDropdown _speed_dropdown; ArdourWidgets::ArdourDropdown _speed_dropdown;
ArdourWidgets::ArdourDropdown _warp_dropdown; ArdourWidgets::ArdourDropdown _warp_dropdown;
Cairo::RefPtr<Cairo::ImageSurface> _grid; Cairo::RefPtr<Cairo::ImageSurface> _grid;