#include "i18n.h"
+using namespace std;
using namespace ARDOUR;
using namespace PBD;
using namespace Gtkmm2ext;
void
PannerUI::set_io (boost::shared_ptr<IO> io)
{
- if (!io->panner()) {
+ if (io && !io->panner()) {
cerr << "PannerUI::set_io IO has no panners" << endl;
return;
}
_io = io;
- connections.push_back (_io->panner()->Changed.connect (
- mem_fun(*this, &PannerUI::panner_changed)));
- connections.push_back (_io->panner()->LinkStateChanged.connect (
- mem_fun(*this, &PannerUI::update_pan_linkage)));
- connections.push_back (_io->panner()->StateChanged.connect (
- mem_fun(*this, &PannerUI::update_pan_state)));
-
delete panner;
panner = 0;
+
+ if (!_io) {
+ return;
+ }
+
+ connections.push_back (_io->panner()->Changed.connect (mem_fun(*this, &PannerUI::panner_changed)));
+ connections.push_back (_io->panner()->LinkStateChanged.connect (mem_fun(*this, &PannerUI::update_pan_linkage)));
+ connections.push_back (_io->panner()->StateChanged.connect (mem_fun(*this, &PannerUI::update_pan_state)));
setup_pan ();
void
PannerUI::setup_pan ()
{
- if (!_io->panner()) {
+ if (!_io || !_io->panner()) {
return;
}