X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Flevel_meter.cc;h=f7b44d1b0861778bb57a9834f45a086200486900;hb=bed58e9f372a6c2671e9f072c19a4c77d06c4292;hp=f6e3731aac1130546759fcf9a59ce038cd1c13db;hpb=68e943265edf04e63a8e8b8f62bab20f99d9c637;p=ardour.git diff --git a/gtk2_ardour/level_meter.cc b/gtk2_ardour/level_meter.cc index f6e3731aac..f7b44d1b08 100644 --- a/gtk2_ardour/level_meter.cc +++ b/gtk2_ardour/level_meter.cc @@ -58,9 +58,8 @@ using namespace std; //sigc::signal LevelMeter::ResetGroupPeakDisplays; -LevelMeter::LevelMeter (boost::shared_ptr io, Session& s) - : _io (io), - _session (s) +LevelMeter::LevelMeter (Session& s) + : _session (s) { set_spacing (1); @@ -79,12 +78,16 @@ LevelMeter::on_theme_changed() LevelMeter::~LevelMeter () { for (vector::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; +} + float LevelMeter::update_meters () { @@ -144,6 +147,10 @@ LevelMeter::hide_all_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;