Add a reset-all DSP-load-stats button
This commit is contained in:
parent
d71dfdfd6a
commit
21601f8d56
@ -32,12 +32,16 @@ using namespace ARDOUR;
|
|||||||
|
|
||||||
PluginDSPLoadWindow::PluginDSPLoadWindow ()
|
PluginDSPLoadWindow::PluginDSPLoadWindow ()
|
||||||
: ArdourWindow (_("Plugin DSP Load"))
|
: ArdourWindow (_("Plugin DSP Load"))
|
||||||
|
, _reset_button (_("Reset All Stats"))
|
||||||
{
|
{
|
||||||
_scroller.set_border_width (0);
|
_scroller.set_border_width (0);
|
||||||
_scroller.set_shadow_type (Gtk::SHADOW_NONE);
|
_scroller.set_shadow_type (Gtk::SHADOW_NONE);
|
||||||
_scroller.set_policy (Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC);
|
_scroller.set_policy (Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC);
|
||||||
_scroller.add (_box);
|
_scroller.add (_box);
|
||||||
|
|
||||||
|
_reset_button.set_name ("generic button");
|
||||||
|
_reset_button.signal_clicked.connect (sigc::mem_fun (*this, &PluginDSPLoadWindow::clear_all_stats));
|
||||||
|
|
||||||
add (_scroller);
|
add (_scroller);
|
||||||
_box.show ();
|
_box.show ();
|
||||||
_scroller.show ();
|
_scroller.show ();
|
||||||
@ -83,6 +87,15 @@ PluginDSPLoadWindow::on_hide ()
|
|||||||
drop_references ();
|
drop_references ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
PluginDSPLoadWindow::clear_all_stats ()
|
||||||
|
{
|
||||||
|
RouteList routes = _session->get_routelist ();
|
||||||
|
for (RouteList::const_iterator i = routes.begin(); i != routes.end(); ++i) {
|
||||||
|
(*i)->foreach_processor (sigc::mem_fun (*this, &PluginDSPLoadWindow::clear_processor_stats));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
PluginDSPLoadWindow::drop_references ()
|
PluginDSPLoadWindow::drop_references ()
|
||||||
{
|
{
|
||||||
@ -90,7 +103,9 @@ PluginDSPLoadWindow::drop_references ()
|
|||||||
for (std::list<Gtk::Widget*>::iterator child = children.begin(); child != children.end(); ++child) {
|
for (std::list<Gtk::Widget*>::iterator child = children.begin(); child != children.end(); ++child) {
|
||||||
(*child)->hide ();
|
(*child)->hide ();
|
||||||
_box.remove (**child);
|
_box.remove (**child);
|
||||||
delete *child;
|
if (*child != &_reset_button) {
|
||||||
|
delete *child;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -115,6 +130,9 @@ PluginDSPLoadWindow::refill_processors ()
|
|||||||
if (_box.get_children().size() == 0) {
|
if (_box.get_children().size() == 0) {
|
||||||
_box.add (*Gtk::manage (new Gtk::Label (_("No Plugins"))));
|
_box.add (*Gtk::manage (new Gtk::Label (_("No Plugins"))));
|
||||||
_box.show_all ();
|
_box.show_all ();
|
||||||
|
} else if (_box.get_children().size() > 1) {
|
||||||
|
_box.pack_start (_reset_button, Gtk::PACK_SHRINK, 2);
|
||||||
|
_reset_button.show ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -137,3 +155,13 @@ PluginDSPLoadWindow::add_processor_to_display (boost::weak_ptr<Processor> w, std
|
|||||||
plsg->start_updating ();
|
plsg->start_updating ();
|
||||||
frame->show_all ();
|
frame->show_all ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
PluginDSPLoadWindow::clear_processor_stats (boost::weak_ptr<Processor> w)
|
||||||
|
{
|
||||||
|
boost::shared_ptr<Processor> p = w.lock ();
|
||||||
|
boost::shared_ptr<PluginInsert> pi = boost::dynamic_pointer_cast<PluginInsert> (p);
|
||||||
|
if (pi) {
|
||||||
|
pi->clear_stats ();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
#include <gtkmm/box.h>
|
#include <gtkmm/box.h>
|
||||||
#include <gtkmm/scrolledwindow.h>
|
#include <gtkmm/scrolledwindow.h>
|
||||||
|
|
||||||
|
#include "widgets/ardour_button.h"
|
||||||
#include "pbd/signals.h"
|
#include "pbd/signals.h"
|
||||||
|
|
||||||
#include "ardour_window.h"
|
#include "ardour_window.h"
|
||||||
@ -51,10 +52,13 @@ protected:
|
|||||||
private:
|
private:
|
||||||
void refill_processors ();
|
void refill_processors ();
|
||||||
void drop_references ();
|
void drop_references ();
|
||||||
|
void clear_all_stats ();
|
||||||
void add_processor_to_display (boost::weak_ptr<ARDOUR::Processor>, std::string const&);
|
void add_processor_to_display (boost::weak_ptr<ARDOUR::Processor>, std::string const&);
|
||||||
|
void clear_processor_stats (boost::weak_ptr<ARDOUR::Processor>);
|
||||||
|
|
||||||
Gtk::ScrolledWindow _scroller;
|
Gtk::ScrolledWindow _scroller;
|
||||||
Gtk::VBox _box;
|
Gtk::VBox _box;
|
||||||
|
ArdourWidgets::ArdourButton _reset_button;
|
||||||
|
|
||||||
PBD::ScopedConnectionList _processor_connections;
|
PBD::ScopedConnectionList _processor_connections;
|
||||||
PBD::ScopedConnectionList _route_connections;
|
PBD::ScopedConnectionList _route_connections;
|
||||||
|
Loading…
Reference in New Issue
Block a user