//sigc::signal<void,RouteGroup*> LevelMeter::ResetGroupPeakDisplays;
-LevelMeter::LevelMeter (boost::shared_ptr<IO> io, Session& s)
- : _io (io),
- _session (s)
+LevelMeter::LevelMeter (Session& s)
+ : _session (s)
{
set_spacing (1);
LevelMeter::~LevelMeter ()
{
for (vector<MeterInfo>::iterator i = meters.begin(); i != meters.end(); i++) {
- if ((*i).meter) {
- delete (*i).meter;
- }
+ delete (*i).meter;
}
}
+void
+LevelMeter::set_io (boost::shared_ptr<IO> io)
+{
+ _io = io;
+}
+
float
LevelMeter::update_meters ()
{
void
LevelMeter::setup_meters (int len, int initial_width)
{
+ if (!_io) {
+ return; /* do it later */
+ }
+
uint32_t nmeters = _io->n_outputs().n_total();
regular_meter_width = initial_width;