meterbridge shift|ctrl reset [group] peaks
This commit is contained in:
parent
94fbfb9658
commit
f4557194ab
@ -30,6 +30,7 @@
|
||||
#include "ardour/midi_track.h"
|
||||
|
||||
#include <gtkmm2ext/gtk_ui.h>
|
||||
#include <gtkmm2ext/keyboard.h>
|
||||
#include <gtkmm2ext/utils.h>
|
||||
#include <gtkmm2ext/rgb_macros.h>
|
||||
|
||||
@ -52,6 +53,9 @@ using namespace Gtkmm2ext;
|
||||
using namespace std;
|
||||
|
||||
PBD::Signal1<void,MeterStrip*> MeterStrip::CatchDeletion;
|
||||
PBD::Signal0<void> MeterStrip::ResetAllPeakDisplays;
|
||||
PBD::Signal1<void,RouteGroup*> MeterStrip::ResetGroupPeakDisplays;
|
||||
|
||||
|
||||
MeterStrip::MetricPatterns MeterStrip::metric_patterns;
|
||||
MeterStrip::TickPatterns MeterStrip::ticks_patterns;
|
||||
@ -814,6 +818,14 @@ MeterStrip::reset_peak_display ()
|
||||
bool
|
||||
MeterStrip::peak_button_release (GdkEventButton* ev)
|
||||
{
|
||||
reset_peak_display ();
|
||||
if (ev->button == 1 && Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier|Keyboard::TertiaryModifier)) {
|
||||
ResetAllPeakDisplays ();
|
||||
} else if (ev->button == 1 && Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
|
||||
if (_route) {
|
||||
ResetGroupPeakDisplays (_route->route_group());
|
||||
}
|
||||
} else {
|
||||
reset_peak_display ();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -35,6 +35,7 @@
|
||||
|
||||
namespace ARDOUR {
|
||||
class Route;
|
||||
class RouteGroup;
|
||||
class Session;
|
||||
}
|
||||
namespace Gtk {
|
||||
@ -53,6 +54,11 @@ class MeterStrip : public Gtk::VBox, public RouteUI
|
||||
boost::shared_ptr<ARDOUR::Route> route() { return _route; }
|
||||
|
||||
static PBD::Signal1<void,MeterStrip*> CatchDeletion;
|
||||
static PBD::Signal0<void> ResetAllPeakDisplays;
|
||||
static PBD::Signal1<void,ARDOUR::RouteGroup*> ResetGroupPeakDisplays;
|
||||
|
||||
void reset_peak_display ();
|
||||
void reset_group_peak_display (ARDOUR::RouteGroup*);
|
||||
|
||||
protected:
|
||||
boost::shared_ptr<ARDOUR::Route> _route;
|
||||
@ -78,8 +84,6 @@ class MeterStrip : public Gtk::VBox, public RouteUI
|
||||
void on_size_allocate (Gtk::Allocation&);
|
||||
void on_size_request (Gtk::Requisition*);
|
||||
|
||||
bool peak_button_release (GdkEventButton*);
|
||||
|
||||
/* route UI */
|
||||
void update_rec_display ();
|
||||
std::string state_id() const;
|
||||
@ -105,14 +109,13 @@ class MeterStrip : public Gtk::VBox, public RouteUI
|
||||
LevelMeter *level_meter;
|
||||
void meter_changed ();
|
||||
|
||||
void reset_peak_display ();
|
||||
void reset_group_peak_display (ARDOUR::RouteGroup*);
|
||||
|
||||
PBD::ScopedConnection _config_connection;
|
||||
void strip_property_changed (const PBD::PropertyChange&);
|
||||
void meter_configuration_changed (ARDOUR::ChanCount);
|
||||
|
||||
static int max_pattern_metric_size; // == FastMeter::max_pattern_metric_size
|
||||
|
||||
bool peak_button_release (GdkEventButton*);
|
||||
};
|
||||
|
||||
#endif /* __ardour_mixer_strip__ */
|
||||
|
@ -145,6 +145,8 @@ Meterbridge::Meterbridge ()
|
||||
signal_configure_event().connect (sigc::mem_fun (*ARDOUR_UI::instance(), &ARDOUR_UI::configure_handler));
|
||||
Route::SyncOrderKeys.connect (*this, invalidator (*this), boost::bind (&Meterbridge::sync_order_keys, this, _1), gui_context());
|
||||
MeterStrip::CatchDeletion.connect (*this, invalidator (*this), boost::bind (&Meterbridge::remove_strip, this, _1), gui_context());
|
||||
MeterStrip::ResetAllPeakDisplays.connect_same_thread (*this, boost::bind(&Meterbridge::reset_all_peaks, this));
|
||||
MeterStrip::ResetGroupPeakDisplays.connect_same_thread (*this, boost::bind (&Meterbridge::reset_group_peaks, this, _1));
|
||||
|
||||
global_hpacker.set_spacing(0);
|
||||
scroller.add (global_hpacker);
|
||||
@ -439,6 +441,22 @@ Meterbridge::remove_strip (MeterStrip* strip)
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
Meterbridge::reset_all_peaks ()
|
||||
{
|
||||
for (list<MeterStrip *>::iterator i = strips.begin(); i != strips.end(); ++i) {
|
||||
(*i)->reset_peak_display ();
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
Meterbridge::reset_group_peaks (RouteGroup* rg)
|
||||
{
|
||||
for (list<MeterStrip *>::iterator i = strips.begin(); i != strips.end(); ++i) {
|
||||
(*i)->reset_group_peak_display (rg);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
Meterbridge::sync_order_keys (RouteSortOrderKey src)
|
||||
{
|
||||
|
@ -74,6 +74,9 @@ class Meterbridge :
|
||||
void add_strips (ARDOUR::RouteList&);
|
||||
void remove_strip (MeterStrip *);
|
||||
|
||||
void reset_all_peaks ();
|
||||
void reset_group_peaks (ARDOUR::RouteGroup*);
|
||||
|
||||
void session_going_away ();
|
||||
void sync_order_keys (ARDOUR::RouteSortOrderKey src);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user