summaryrefslogtreecommitdiff
path: root/libs/surfaces
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-12-20 16:50:41 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-12-20 16:50:41 +0000
commit738387f9a417537e768d56d3fc4afcb9dc82d66b (patch)
tree47227ac3b82b8813b489904f785a3e52694a5707 /libs/surfaces
parent96cd6c993b0ed9a775f7ea096e2afe01be9d00b9 (diff)
remove a couple of boost::signals2 trouble spots; fix some --strict compile time warnings
git-svn-id: svn://localhost/ardour2/branches/3.0@6378 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/surfaces')
-rw-r--r--libs/surfaces/control_protocol/control_protocol/control_protocol.h2
-rw-r--r--libs/surfaces/generic_midi/generic_midi_control_protocol.cc32
-rw-r--r--libs/surfaces/generic_midi/generic_midi_control_protocol.h3
3 files changed, 21 insertions, 16 deletions
diff --git a/libs/surfaces/control_protocol/control_protocol/control_protocol.h b/libs/surfaces/control_protocol/control_protocol/control_protocol.h
index 8a50caf05f..c80ba9b4b6 100644
--- a/libs/surfaces/control_protocol/control_protocol/control_protocol.h
+++ b/libs/surfaces/control_protocol/control_protocol/control_protocol.h
@@ -109,7 +109,7 @@ class ControlProtocol : virtual public sigc::trackable, public PBD::Stateful, pu
void prev_track (uint32_t initial_id);
private:
- ControlProtocol (const ControlProtocol&) {} /* noncopyable */
+ ControlProtocol (const ControlProtocol&); /* noncopyable */
};
extern "C" {
diff --git a/libs/surfaces/generic_midi/generic_midi_control_protocol.cc b/libs/surfaces/generic_midi/generic_midi_control_protocol.cc
index efe2089237..e9f12638b6 100644
--- a/libs/surfaces/generic_midi/generic_midi_control_protocol.cc
+++ b/libs/surfaces/generic_midi/generic_midi_control_protocol.cc
@@ -149,9 +149,10 @@ GenericMidiControlProtocol::start_learning (Controllable* c)
for (MIDIPendingControllables::iterator i = pending_controllables.begin(); i != pending_controllables.end(); ) {
ptmp = i;
++ptmp;
- if (((*i).first)->get_controllable() == c) {
- (*i).second.disconnect();
- delete (*i).first;
+ if (((*i)->first)->get_controllable() == c) {
+ (*i)->second.disconnect();
+ delete (*i)->first;
+ delete *i;
pending_controllables.erase (i);
}
i = ptmp;
@@ -174,13 +175,11 @@ GenericMidiControlProtocol::start_learning (Controllable* c)
{
Glib::Mutex::Lock lm (pending_lock);
-#if 0 // BOOST SIGNALS
- std::pair<MIDIControllable *, boost::signals2::scoped_connection> element;
- element.first = mc;
- element.second = c->LearningFinished.connect (bind (mem_fun (*this, &GenericMidiControlProtocol::learning_stopped), mc));
+ MIDIPendingControllable* element = new MIDIPendingControllable;
+ element->first = mc;
+ c->LearningFinished.connect (element->second, boost::bind (&GenericMidiControlProtocol::learning_stopped, this, mc));
pending_controllables.push_back (element);
-#endif
}
mc->learn_about_external_control ();
@@ -199,8 +198,9 @@ GenericMidiControlProtocol::learning_stopped (MIDIControllable* mc)
tmp = i;
++tmp;
- if ( (*i).first == mc) {
- (*i).second.disconnect();
+ if ( (*i)->first == mc) {
+ (*i)->second.disconnect();
+ delete *i;
pending_controllables.erase(i);
}
@@ -222,11 +222,12 @@ GenericMidiControlProtocol::stop_learning (Controllable* c)
*/
for (MIDIPendingControllables::iterator i = pending_controllables.begin(); i != pending_controllables.end(); ++i) {
- if (((*i).first)->get_controllable() == c) {
- (*i).first->stop_learning ();
- dptr = (*i).first;
- (*i).second.disconnect();
+ if (((*i)->first)->get_controllable() == c) {
+ (*i)->first->stop_learning ();
+ dptr = (*i)->first;
+ (*i)->second.disconnect();
+ delete *i;
pending_controllables.erase (i);
break;
}
@@ -350,6 +351,9 @@ GenericMidiControlProtocol::set_state (const XMLNode& node, int version)
{
Glib::Mutex::Lock lm (pending_lock);
+ for (MIDIPendingControllables::iterator i = pending_controllables.begin(); i != pending_controllables.end(); ++i) {
+ delete *i;
+ }
pending_controllables.clear ();
}
diff --git a/libs/surfaces/generic_midi/generic_midi_control_protocol.h b/libs/surfaces/generic_midi/generic_midi_control_protocol.h
index 828bb4e6be..c42d796e81 100644
--- a/libs/surfaces/generic_midi/generic_midi_control_protocol.h
+++ b/libs/surfaces/generic_midi/generic_midi_control_protocol.h
@@ -51,7 +51,8 @@ class GenericMidiControlProtocol : public ARDOUR::ControlProtocol {
typedef std::set<MIDIControllable*> MIDIControllables;
MIDIControllables controllables;
- typedef std::list<std::pair<MIDIControllable*,sigc::connection> > MIDIPendingControllables;
+ typedef std::pair<MIDIControllable*,PBD::Connection> MIDIPendingControllable;
+ typedef std::list<MIDIPendingControllable* > MIDIPendingControllables;
MIDIPendingControllables pending_controllables;
Glib::Mutex controllables_lock;
Glib::Mutex pending_lock;