summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r--libs/ardour/ardour/ardour.h4
-rw-r--r--libs/ardour/ardour/audio_diskstream.h1
-rw-r--r--libs/ardour/ardour/audioengine.h29
-rw-r--r--libs/ardour/ardour/audiofilesource.h2
-rw-r--r--libs/ardour/ardour/audioplaylist.h6
-rw-r--r--libs/ardour/ardour/audiosource.h9
-rw-r--r--libs/ardour/ardour/automation_list.h11
-rw-r--r--libs/ardour/ardour/bundle.h8
-rw-r--r--libs/ardour/ardour/butler.h14
-rw-r--r--libs/ardour/ardour/configuration.h4
-rw-r--r--libs/ardour/ardour/control_protocol_manager.h11
-rw-r--r--libs/ardour/ardour/crossfade.h5
-rw-r--r--libs/ardour/ardour/delivery.h12
-rw-r--r--libs/ardour/ardour/diskstream.h26
-rw-r--r--libs/ardour/ardour/element_importer.h7
-rw-r--r--libs/ardour/ardour/export.h5
-rw-r--r--libs/ardour/ardour/export_channel.h14
-rw-r--r--libs/ardour/ardour/export_channel_configuration.h3
-rw-r--r--libs/ardour/ardour/export_format_base.h4
-rw-r--r--libs/ardour/ardour/export_format_manager.h8
-rw-r--r--libs/ardour/ardour/export_formats.h18
-rw-r--r--libs/ardour/ardour/export_handler.h8
-rw-r--r--libs/ardour/ardour/export_multiplication.h4
-rw-r--r--libs/ardour/ardour/export_processor.h2
-rw-r--r--libs/ardour/ardour/export_profile_manager.h3
-rw-r--r--libs/ardour/ardour/export_status.h8
-rw-r--r--libs/ardour/ardour/export_timespan.h4
-rw-r--r--libs/ardour/ardour/import_status.h1
-rw-r--r--libs/ardour/ardour/internal_return.h3
-rw-r--r--libs/ardour/ardour/internal_send.h2
-rw-r--r--libs/ardour/ardour/io.h23
-rw-r--r--libs/ardour/ardour/io_processor.h5
-rw-r--r--libs/ardour/ardour/jack_port.h1
-rw-r--r--libs/ardour/ardour/ladspa_plugin.h1
-rw-r--r--libs/ardour/ardour/location.h21
-rw-r--r--libs/ardour/ardour/lv2_plugin.h1
-rw-r--r--libs/ardour/ardour/meter.h7
-rw-r--r--libs/ardour/ardour/midi_diskstream.h1
-rw-r--r--libs/ardour/ardour/midi_model.h2
-rw-r--r--libs/ardour/ardour/midi_patch_manager.h11
-rw-r--r--libs/ardour/ardour/midi_source.h5
-rw-r--r--libs/ardour/ardour/midi_ui.h4
-rw-r--r--libs/ardour/ardour/mute_master.h2
-rw-r--r--libs/ardour/ardour/named_selection.h2
-rw-r--r--libs/ardour/ardour/panner.h13
-rw-r--r--libs/ardour/ardour/playlist.h25
-rw-r--r--libs/ardour/ardour/playlist_factory.h2
-rw-r--r--libs/ardour/ardour/plugin.h3
-rw-r--r--libs/ardour/ardour/plugin_insert.h3
-rw-r--r--libs/ardour/ardour/plugin_manager.h2
-rw-r--r--libs/ardour/ardour/port.h7
-rw-r--r--libs/ardour/ardour/port_insert.h1
-rw-r--r--libs/ardour/ardour/processor.h7
-rw-r--r--libs/ardour/ardour/region.h7
-rw-r--r--libs/ardour/ardour/region_factory.h2
-rw-r--r--libs/ardour/ardour/return.h1
-rw-r--r--libs/ardour/ardour/route.h43
-rw-r--r--libs/ardour/ardour/route_group.h10
-rw-r--r--libs/ardour/ardour/route_group_member.h3
-rw-r--r--libs/ardour/ardour/send.h1
-rw-r--r--libs/ardour/ardour/session.h122
-rw-r--r--libs/ardour/ardour/session_event.h1
-rw-r--r--libs/ardour/ardour/session_handle.h57
-rw-r--r--libs/ardour/ardour/session_object.h25
-rw-r--r--libs/ardour/ardour/session_playlists.h8
-rw-r--r--libs/ardour/ardour/slave.h12
-rw-r--r--libs/ardour/ardour/source.h7
-rw-r--r--libs/ardour/ardour/source_factory.h3
-rw-r--r--libs/ardour/ardour/tempo.h3
-rw-r--r--libs/ardour/ardour/ticker.h23
-rw-r--r--libs/ardour/ardour/track.h8
-rw-r--r--libs/ardour/ardour/vst_plugin.h1
72 files changed, 378 insertions, 344 deletions
diff --git a/libs/ardour/ardour/ardour.h b/libs/ardour/ardour/ardour.h
index a1b3d06f62..1333b58d6f 100644
--- a/libs/ardour/ardour/ardour.h
+++ b/libs/ardour/ardour/ardour.h
@@ -26,6 +26,8 @@
#include <limits.h>
#include <signal.h>
+#include <boost/signals2.hpp>
+
#include "pbd/error.h"
#include "pbd/failed_constructor.h"
#include "pbd/locale_guard.h"
@@ -44,7 +46,7 @@ namespace ARDOUR {
class AudioEngine;
static const nframes_t max_frames = JACK_MAX_FRAMES;
- extern sigc::signal<void,std::string> BootMessage;
+ extern boost::signals2::signal<void(std::string)> BootMessage;
int init (bool with_vst, bool try_optimization);
void init_post_engine ();
diff --git a/libs/ardour/ardour/audio_diskstream.h b/libs/ardour/ardour/audio_diskstream.h
index 838c9406ee..4d2209d79b 100644
--- a/libs/ardour/ardour/audio_diskstream.h
+++ b/libs/ardour/ardour/audio_diskstream.h
@@ -19,7 +19,6 @@
#ifndef __ardour_audio_diskstream_h__
#define __ardour_audio_diskstream_h__
-#include <sigc++/signal.h>
#include <cmath>
#include <string>
diff --git a/libs/ardour/ardour/audioengine.h b/libs/ardour/ardour/audioengine.h
index a9c414e566..ac367ddd64 100644
--- a/libs/ardour/ardour/audioengine.h
+++ b/libs/ardour/ardour/audioengine.h
@@ -26,17 +26,19 @@
#include <exception>
#include <string>
-#include <sigc++/signal.h>
#include <glibmm/thread.h>
#include "pbd/rcu.h"
+#include "pbd/scoped_connections.h"
#include "ardour/ardour.h"
#include <jack/jack.h>
#include <jack/transport.h>
-#include "ardour/types.h"
+
#include "ardour/data_type.h"
+#include "ardour/session_handle.h"
+#include "ardour/types.h"
namespace ARDOUR {
@@ -45,7 +47,7 @@ class MidiPort;
class Port;
class Session;
-class AudioEngine : public sigc::trackable
+class AudioEngine : public SessionHandlePtr
{
public:
typedef std::set<Port*> Ports;
@@ -110,7 +112,7 @@ class AudioEngine : public sigc::trackable
}
void set_session (Session *);
- void remove_session ();
+ void remove_session (); // not a replacement for SessionHandle::session_going_away()
class PortRegistrationFailure : public std::exception {
public:
@@ -185,32 +187,32 @@ class AudioEngine : public sigc::trackable
_ the regular process() call to session->process() is not made.
*/
- sigc::signal<int,nframes_t> Freewheel;
+ boost::signals2::signal<int(nframes_t)> Freewheel;
- sigc::signal<void> Xrun;
+ boost::signals2::signal<void()> Xrun;
/* this signal is if JACK notifies us of a graph order event */
- sigc::signal<void> GraphReordered;
+ boost::signals2::signal<void()> GraphReordered;
/* this signal is emitted if the sample rate changes */
- sigc::signal<void,nframes_t> SampleRateChanged;
+ boost::signals2::signal<void(nframes_t)> SampleRateChanged;
/* this signal is sent if JACK ever disconnects us */
- sigc::signal<void> Halted;
+ boost::signals2::signal<void()> Halted;
/* these two are emitted when the engine itself is
started and stopped
*/
- sigc::signal<void> Running;
- sigc::signal<void> Stopped;
+ boost::signals2::signal<void()> Running;
+ boost::signals2::signal<void()> Stopped;
/* this signal is emitted if a JACK port is registered or unregistered */
- sigc::signal<void> PortRegisteredOrUnregistered;
+ boost::signals2::signal<void()> PortRegisteredOrUnregistered;
std::string make_port_name_relative (std::string);
std::string make_port_name_non_relative (std::string);
@@ -221,7 +223,6 @@ _ the regular process() call to session->process() is not made.
private:
static AudioEngine* _instance;
- ARDOUR::Session* session;
jack_client_t* volatile _jack; /* could be reset to null by SIGPIPE or another thread */
std::string jack_client_name;
Glib::Mutex _process_lock;
@@ -241,7 +242,7 @@ _ the regular process() call to session->process() is not made.
bool _freewheeling;
bool _freewheel_pending;
bool _freewheel_thread_registered;
- sigc::slot<int,nframes_t> freewheel_action;
+ boost::function<int(nframes_t)> freewheel_action;
bool reconnect_on_halt;
int _usecs_per_cycle;
diff --git a/libs/ardour/ardour/audiofilesource.h b/libs/ardour/ardour/audiofilesource.h
index 6c04ebffb1..3312bc889d 100644
--- a/libs/ardour/ardour/audiofilesource.h
+++ b/libs/ardour/ardour/audiofilesource.h
@@ -84,7 +84,7 @@ public:
static void set_bwf_serial_number (int);
static void set_header_position_offset (nframes_t offset );
- static sigc::signal<void> HeaderPositionOffsetChanged;
+ static boost::signals2::signal<void()> HeaderPositionOffsetChanged;
protected:
/** Constructor to be called for existing external-to-session files */
diff --git a/libs/ardour/ardour/audioplaylist.h b/libs/ardour/ardour/audioplaylist.h
index 277fe5a8e1..927ccfbe11 100644
--- a/libs/ardour/ardour/audioplaylist.h
+++ b/libs/ardour/ardour/audioplaylist.h
@@ -52,9 +52,9 @@ class AudioPlaylist : public ARDOUR::Playlist
int set_state (const XMLNode&, int version);
- sigc::signal<void,boost::shared_ptr<Crossfade> > NewCrossfade;
-
- void foreach_crossfade (sigc::slot<void, boost::shared_ptr<Crossfade> >);
+ boost::signals2::signal<void(boost::shared_ptr<Crossfade>)> NewCrossfade;
+
+ void foreach_crossfade (boost::function<void (boost::shared_ptr<Crossfade>)>);
void crossfades_at (nframes_t frame, Crossfades&);
bool destroy_region (boost::shared_ptr<Region>);
diff --git a/libs/ardour/ardour/audiosource.h b/libs/ardour/ardour/audiosource.h
index 328a23ac19..dfa103f2e3 100644
--- a/libs/ardour/ardour/audiosource.h
+++ b/libs/ardour/ardour/audiosource.h
@@ -27,8 +27,7 @@
#include <glibmm/thread.h>
#include <glibmm/ustring.h>
-
-#include <sigc++/signal.h>
+#include <boost/function.hpp>
#include "ardour/source.h"
#include "ardour/ardour.h"
@@ -73,10 +72,10 @@ class AudioSource : virtual public Source,
sframes_t start, nframes_t cnt, double samples_per_visual_peak) const;
int build_peaks ();
- bool peaks_ready (sigc::slot<void>, sigc::connection&) const;
+ bool peaks_ready (boost::function<void()> callWhenReady, boost::signals2::connection& connection_established_if_not_ready) const;
- mutable sigc::signal<void> PeaksReady;
- mutable sigc::signal<void,nframes_t,nframes_t> PeakRangeReady;
+ mutable boost::signals2::signal<void()> PeaksReady;
+ mutable boost::signals2::signal<void(nframes_t,nframes_t)> PeakRangeReady;
XMLNode& get_state ();
int set_state (const XMLNode&, int version);
diff --git a/libs/ardour/ardour/automation_list.h b/libs/ardour/ardour/automation_list.h
index 69c8e38c95..c75abda0b7 100644
--- a/libs/ardour/ardour/automation_list.h
+++ b/libs/ardour/ardour/automation_list.h
@@ -24,7 +24,6 @@
#include <list>
#include <cmath>
-#include <sigc++/signal.h>
#include <glibmm/thread.h>
#include "pbd/undo.h"
@@ -57,11 +56,11 @@ class AutomationList : public PBD::StatefulDestructible, public Evoral::ControlL
void set_automation_state (AutoState);
AutoState automation_state() const { return _state; }
- sigc::signal<void> automation_state_changed;
+ boost::signals2::signal<void()> automation_state_changed;
void set_automation_style (AutoStyle m);
AutoStyle automation_style() const { return _style; }
- sigc::signal<void> automation_style_changed;
+ boost::signals2::signal<void()> automation_style_changed;
bool automation_playback() const {
return (_state & Play) || ((_state & Touch) && !_touching);
@@ -70,10 +69,10 @@ class AutomationList : public PBD::StatefulDestructible, public Evoral::ControlL
return (_state & Write) || ((_state & Touch) && _touching);
}
- sigc::signal<void> StateChanged;
+ boost::signals2::signal<void()> StateChanged;
- static sigc::signal<void, AutomationList*> AutomationListCreated;
- mutable sigc::signal<void> Dirty;
+ static boost::signals2::signal<void(AutomationList*)> AutomationListCreated;
+ mutable boost::signals2::signal<void()> Dirty;
void start_touch ();
void stop_touch ();
diff --git a/libs/ardour/ardour/bundle.h b/libs/ardour/ardour/bundle.h
index 196b1f2a09..662c3799a5 100644
--- a/libs/ardour/ardour/bundle.h
+++ b/libs/ardour/ardour/bundle.h
@@ -23,8 +23,10 @@
#include <string>
#include <vector>
#include <glibmm/thread.h>
-#include <sigc++/signal.h>
#include <boost/shared_ptr.hpp>
+
+#include "pbd/scoped_connections.h"
+
#include "ardour/data_type.h"
namespace ARDOUR {
@@ -37,7 +39,7 @@ class AudioEngine;
* `Channel' is a rather overloaded term but I can't think of a better
* one right now.
*/
-class Bundle : public sigc::trackable
+class Bundle : public PBD::ScopedConnectionList
{
public:
@@ -118,7 +120,7 @@ class Bundle : public sigc::trackable
DirectionChanged = 0x10 ///< the direction (whether ports are inputs or outputs) has changed
};
- sigc::signal<void, Change> Changed;
+ boost::signals2::signal<void(Change)> Changed;
protected:
diff --git a/libs/ardour/ardour/butler.h b/libs/ardour/ardour/butler.h
index b88b820736..60697517fb 100644
--- a/libs/ardour/ardour/butler.h
+++ b/libs/ardour/ardour/butler.h
@@ -21,17 +21,18 @@
#define __ardour_butler_h__
#include <glibmm/thread.h>
+
#include "ardour/types.h"
+#include "ardour/session_handle.h"
namespace ARDOUR {
-class Session;
-
-class Butler {
-public:
- Butler(Session* session);
+class Butler : public SessionHandleRef
+{
+ public:
+ Butler (Session& session);
~Butler();
-
+
int start_thread();
void terminate_thread();
void schedule_transport_work();
@@ -58,7 +59,6 @@ public:
};
};
- Session* session;
pthread_t thread;
Glib::Mutex request_lock;
Glib::Cond paused;
diff --git a/libs/ardour/ardour/configuration.h b/libs/ardour/ardour/configuration.h
index 02bbcaca23..1c82309d87 100644
--- a/libs/ardour/ardour/configuration.h
+++ b/libs/ardour/ardour/configuration.h
@@ -19,7 +19,9 @@
#ifndef __ardour_configuration_h__
#define __ardour_configuration_h__
+
#include <boost/function.hpp>
+#include <boost/signals2.hpp>
#include "pbd/stateful.h"
#include "ardour/configuration_variable.h"
@@ -39,7 +41,7 @@ class Configuration : public PBD::Stateful
virtual XMLNode & get_variables () = 0;
virtual void set_variables (XMLNode const &) = 0;
- sigc::signal<void, std::string> ParameterChanged;
+ boost::signals2::signal<void(std::string)> ParameterChanged;
};
} // namespace ARDOUR
diff --git a/libs/ardour/ardour/control_protocol_manager.h b/libs/ardour/ardour/control_protocol_manager.h
index d2b1796b18..6fedc95c6c 100644
--- a/libs/ardour/ardour/control_protocol_manager.h
+++ b/libs/ardour/ardour/control_protocol_manager.h
@@ -23,11 +23,11 @@
#include <string>
#include <list>
-#include <sigc++/sigc++.h>
#include <glibmm/thread.h>
#include "pbd/stateful.h"
+#include "ardour/session_handle.h"
namespace ARDOUR {
@@ -49,16 +49,16 @@ struct ControlProtocolInfo {
~ControlProtocolInfo() { if (state) { delete state; } }
};
- class ControlProtocolManager : public sigc::trackable, public PBD::Stateful
+class ControlProtocolManager : public PBD::Stateful, public ARDOUR::SessionHandlePtr
{
public:
~ControlProtocolManager ();
static ControlProtocolManager& instance();
- void set_session (Session&);
+ void set_session (Session*);
void discover_control_protocols ();
- void foreach_known_protocol (sigc::slot<void,const ControlProtocolInfo*>);
+ void foreach_known_protocol (boost::function<void(const ControlProtocolInfo*)>);
void load_mandatory_protocols ();
ControlProtocol* instantiate (ControlProtocolInfo&);
@@ -77,11 +77,10 @@ struct ControlProtocolInfo {
ControlProtocolManager ();
static ControlProtocolManager* _instance;
- Session* _session;
Glib::Mutex protocols_lock;
std::list<ControlProtocol*> control_protocols;
- void drop_session ();
+ void session_going_away ();
int control_protocol_discover (std::string path);
ControlProtocolDescriptor* get_descriptor (std::string path);
diff --git a/libs/ardour/ardour/crossfade.h b/libs/ardour/ardour/crossfade.h
index 5d8e0235fb..1a492b742b 100644
--- a/libs/ardour/ardour/crossfade.h
+++ b/libs/ardour/ardour/crossfade.h
@@ -24,7 +24,6 @@
#include <algorithm>
#include <boost/shared_ptr.hpp>
-#include <sigc++/signal.h>
#include "pbd/undo.h"
#include "pbd/statefuldestructible.h"
@@ -106,8 +105,8 @@ class Crossfade : public ARDOUR::AudioRegion
nframes_t overlap_length() const;
- sigc::signal<void,boost::shared_ptr<Region> > Invalidated;
- sigc::signal<void,Change> StateChanged;
+ boost::signals2::signal<void(boost::shared_ptr<Region>)> Invalidated;
+ boost::signals2::signal<void(Change)> StateChanged;
bool covers (nframes_t frame) const {
return _position <= frame && frame < _position + _length;
diff --git a/libs/ardour/ardour/delivery.h b/libs/ardour/ardour/delivery.h
index 1b1a217466..7a5931c5fb 100644
--- a/libs/ardour/ardour/delivery.h
+++ b/libs/ardour/ardour/delivery.h
@@ -20,6 +20,7 @@
#define __ardour_delivery_h__
#include <string>
+
#include "ardour/types.h"
#include "ardour/chan_count.h"
#include "ardour/io_processor.h"
@@ -31,7 +32,8 @@ class IO;
class MuteMaster;
class Panner;
-class Delivery : public IOProcessor {
+class Delivery : public IOProcessor
+{
public:
enum Role {
/* main outputs - delivers out-of-place to port buffers, and cannot be removed */
@@ -83,9 +85,9 @@ public:
BufferSet& output_buffers() { return *_output_buffers; }
- sigc::signal<void> MuteChange;
+ boost::signals2::signal<void()> MuteChange;
- static sigc::signal<void,nframes_t> CycleStart;
+ static boost::signals2::signal<void(nframes_t)> CycleStart;
XMLNode& state (bool full);
int set_state (const XMLNode&, int version);
@@ -118,10 +120,10 @@ public:
boost::shared_ptr<Panner> _panner;
static bool panners_legal;
- static sigc::signal<int> PannersLegal;
+ static boost::signals2::signal<int()> PannersLegal;
int panners_became_legal ();
- sigc::connection panner_legal_c;
+ boost::signals2::scoped_connection panner_legal_c;
void output_changed (IOChange, void*);
gain_t target_gain ();
diff --git a/libs/ardour/ardour/diskstream.h b/libs/ardour/ardour/diskstream.h
index 87fffb92f7..a9664daa32 100644
--- a/libs/ardour/ardour/diskstream.h
+++ b/libs/ardour/ardour/diskstream.h
@@ -27,8 +27,6 @@
#include <cmath>
#include <time.h>
-#include <sigc++/signal.h>
-
#include <boost/utility.hpp>
#include "evoral/types.hpp"
@@ -145,15 +143,15 @@ class Diskstream : public SessionObject, public boost::noncopyable
void move_processor_automation (boost::weak_ptr<Processor>,
std::list< Evoral::RangeMove<nframes_t> > const &);
- sigc::signal<void> RecordEnableChanged;
- sigc::signal<void> SpeedChanged;
- sigc::signal<void> ReverseChanged;
- sigc::signal<void> PlaylistChanged;
- sigc::signal<void> AlignmentStyleChanged;
- sigc::signal<void,Location *> LoopSet;
+ boost::signals2::signal<void()> RecordEnableChanged;
+ boost::signals2::signal<void()> SpeedChanged;
+ boost::signals2::signal<void()> ReverseChanged;
+ boost::signals2::signal<void()> PlaylistChanged;
+ boost::signals2::signal<void()> AlignmentStyleChanged;
+ boost::signals2::signal<void(Location *)> LoopSet;
- static sigc::signal<void> DiskOverrun;
- static sigc::signal<void> DiskUnderrun;
+ static boost::signals2::signal<void()> DiskOverrun;
+ static boost::signals2::signal<void()> DiskUnderrun;
protected:
friend class Session;
@@ -306,11 +304,9 @@ class Diskstream : public SessionObject, public boost::noncopyable
nframes_t scrub_buffer_size;
nframes_t scrub_offset;
- sigc::connection ports_created_c;
- sigc::connection plmod_connection;
- sigc::connection plgone_connection;
- sigc::connection plregion_connection;
- sigc::connection ic_connection;
+ PBD::ScopedConnectionList playlist_connections;
+
+ boost::signals2::scoped_connection ic_connection;
Flag _flags;
diff --git a/libs/ardour/ardour/element_importer.h b/libs/ardour/ardour/element_importer.h
index a203c5d37b..d728a4b989 100644
--- a/libs/ardour/ardour/element_importer.h
+++ b/libs/ardour/ardour/element_importer.h
@@ -24,8 +24,7 @@
#include <string>
#include <utility>
-#include <sigc++/signal.h>
-
+#include <boost/signals2.hpp>
#include "ardour/types.h"
class XMLTree;
@@ -73,10 +72,10 @@ class ElementImporter
bool broken () { return _broken; }
/// Signal that requests for anew name
- static sigc::signal <std::pair<bool, std::string>, std::string, std::string> Rename;
+ static boost::signals2::signal <std::pair<bool, std::string> (std::string, std::string)> Rename;
/// Signal for ok/cancel prompting
- static sigc::signal <bool, std::string> Prompt;
+ static boost::signals2::signal <bool(std::string)> Prompt;
protected:
diff --git a/libs/ardour/ardour/export.h b/libs/ardour/ardour/export.h
index 78a0e9abb0..055168118d 100644
--- a/libs/ardour/ardour/export.h
+++ b/libs/ardour/ardour/export.h
@@ -24,7 +24,6 @@
#include <vector>
#include <string>
-#include <sigc++/signal.h>
#include <sndfile.h>
#include <samplerate.h>
@@ -39,7 +38,7 @@ namespace ARDOUR
typedef std::pair<Port *, uint32_t> PortChannelPair;
typedef std::map<uint32_t, std::vector<PortChannelPair> > ExportPortMap;
- struct ExportSpecification : public SF_INFO, public sigc::trackable {
+ struct ExportSpecification : public SF_INFO, public PBD::ScopedConnectionList {
ExportSpecification();
~ExportSpecification ();
@@ -85,7 +84,7 @@ namespace ARDOUR
SRC_STATE* src_state;
nframes_t pos;
- sigc::connection freewheel_connection;
+ boost::signals2::scoped_connection freewheel_connection;
/* shared between UI thread and audio thread */
diff --git a/libs/ardour/ardour/export_channel.h b/libs/ardour/ardour/export_channel.h
index fdb466a06e..4a2f74b775 100644
--- a/libs/ardour/ardour/export_channel.h
+++ b/libs/ardour/ardour/export_channel.h
@@ -21,13 +21,13 @@
#ifndef __ardour_export_channel_h__
#define __ardour_export_channel_h__
-#include "ardour/audioregion.h"
-#include "ardour/buffer_set.h"
-
#include <set>
+#include <boost/signals2.hpp>
#include <boost/shared_ptr.hpp>
-#include <sigc++/signal.h>
+
+#include "ardour/audioregion.h"
+#include "ardour/buffer_set.h"
namespace ARDOUR {
@@ -89,7 +89,7 @@ class PortExportChannel : public ExportChannel
};
/// Handles RegionExportChannels and does actual reading from region
-class RegionExportChannelFactory : public sigc::trackable
+class RegionExportChannelFactory
{
public:
enum Type {
@@ -106,7 +106,7 @@ class RegionExportChannelFactory : public sigc::trackable
private:
- int new_cycle_started () { buffers_up_to_date = false; return 0; }
+ int new_cycle_started (nframes_t) { buffers_up_to_date = false; return 0; }
void update_buffers (nframes_t frames);
AudioRegion const & region;
@@ -122,6 +122,8 @@ class RegionExportChannelFactory : public sigc::trackable
Sample * mixdown_buffer;
Sample * gain_buffer;
+
+ boost::signals2::scoped_connection export_connection;
};
/// Export channel that reads from region channel
diff --git a/libs/ardour/ardour/export_channel_configuration.h b/libs/ardour/ardour/export_channel_configuration.h
index 8ef9bba6dc..b8d7fa6bf1 100644
--- a/libs/ardour/ardour/export_channel_configuration.h
+++ b/libs/ardour/ardour/export_channel_configuration.h
@@ -24,7 +24,6 @@
#include <list>
#include <glibmm/ustring.h>
-#include <sigc++/signal.h>
#include "ardour/export_channel.h"
#include "ardour/export_status.h"
@@ -96,7 +95,7 @@ class ExportChannelConfiguration
/// Writes all files for this channel config @return true if a new thread was spawned
bool write_files (boost::shared_ptr<ExportProcessor> new_processor);
- sigc::signal<void> FilesWritten;
+ boost::signals2::signal<void()> FilesWritten;
// Tells the handler the necessary information for it to handle tempfiles
void register_with_timespan (TimespanPtr timespan);
diff --git a/libs/ardour/ardour/export_format_base.h b/libs/ardour/ardour/export_format_base.h
index 7bc0125004..ceb11a2cc9 100644
--- a/libs/ardour/ardour/export_format_base.h
+++ b/libs/ardour/ardour/export_format_base.h
@@ -115,8 +115,8 @@ class ExportFormatBase {
: _selected (false), _compatible (true) { }
~SelectableCompatible () {}
- sigc::signal<void, bool> SelectChanged;
- sigc::signal<void, bool> CompatibleChanged;
+ boost::signals2::signal<void(bool)> SelectChanged;
+ boost::signals2::signal<void(bool)> CompatibleChanged;
bool selected () const { return _selected; }
bool compatible () const { return _compatible; }
diff --git a/libs/ardour/ardour/export_format_manager.h b/libs/ardour/ardour/export_format_manager.h
index 705b9dcf17..52463350fe 100644
--- a/libs/ardour/ardour/export_format_manager.h
+++ b/libs/ardour/ardour/export_format_manager.h
@@ -26,8 +26,8 @@
#include <boost/shared_ptr.hpp>
#include <boost/weak_ptr.hpp>
-#include <sigc++/signal.h>
-#include <sigc++/trackable.h>
+
+#include "pbd/scoped_connections.h"
#include "ardour/export_formats.h"
@@ -39,7 +39,7 @@ class ExportFormatCompatibility;
class ExportFormatSpecification;
class AnyTime;
-class ExportFormatManager : public sigc::trackable
+class ExportFormatManager : public PBD::ScopedConnectionList
{
public:
@@ -92,7 +92,7 @@ class ExportFormatManager : public sigc::trackable
/* Signals */
- sigc::signal<void, bool> CompleteChanged;
+ boost::signals2::signal<void(bool)> CompleteChanged;
/* Access to lists */
diff --git a/libs/ardour/ardour/export_formats.h b/libs/ardour/ardour/export_formats.h
index 3312e9abd6..3ef207097b 100644
--- a/libs/ardour/ardour/export_formats.h
+++ b/libs/ardour/ardour/export_formats.h
@@ -21,12 +21,14 @@
#ifndef __ardour_export_formats_h__
#define __ardour_export_formats_h__
-#include "ardour/export_format_base.h"
-#include "ardour/export_format_compatibility.h"
-
#include <list>
#include <boost/weak_ptr.hpp>
+
#include "pbd/failed_constructor.h"
+#include "pbd/scoped_connections.h"
+
+#include "ardour/export_format_base.h"
+#include "ardour/export_format_compatibility.h"
namespace ARDOUR
{
@@ -84,7 +86,7 @@ class ExportFormat : public ExportFormatBase, public ExportFormatBase::Selectabl
};
/// Class to be inherited by export formats that have a selectable sample format
-class HasSampleFormat {
+class HasSampleFormat : public PBD::ScopedConnectionList {
public:
class SampleFormatState : public ExportFormatBase::SelectableCompatible {
@@ -126,11 +128,11 @@ class HasSampleFormat {
/* Proxies for signals from sample formats and dither types */
- sigc::signal<void, bool, WeakSampleFormatPtr> SampleFormatSelectChanged;
- sigc::signal<void, bool, WeakSampleFormatPtr> SampleFormatCompatibleChanged;
+ boost::signals2::signal<void(bool, WeakSampleFormatPtr)> SampleFormatSelectChanged;
+ boost::signals2::signal<void(bool, WeakSampleFormatPtr)> SampleFormatCompatibleChanged;
- sigc::signal<void, bool, WeakDitherTypePtr> DitherTypeSelectChanged;
- sigc::signal<void, bool, WeakDitherTypePtr> DitherTypeCompatibleChanged;
+ boost::signals2::signal<void(bool, WeakDitherTypePtr)> DitherTypeSelectChanged;
+ boost::signals2::signal<void(bool, WeakDitherTypePtr)> DitherTypeCompatibleChanged;
static std::string get_sample_format_name (ExportFormatBase::SampleFormat format);
diff --git a/libs/ardour/ardour/export_handler.h b/libs/ardour/ardour/export_handler.h
index fad21ac780..ded6ed5b02 100644
--- a/libs/ardour/ardour/export_handler.h
+++ b/libs/ardour/ardour/export_handler.h
@@ -68,7 +68,7 @@ class ExportElementFactory
Session & session;
};
-class ExportHandler : public ExportElementFactory, public sigc::trackable
+class ExportHandler : public ExportElementFactory
{
private:
@@ -118,8 +118,10 @@ class ExportHandler : public ExportElementFactory, public sigc::trackable
bool realtime;
- sigc::connection files_written_connection;
+ boost::signals2::scoped_connection files_written_connection;
+ boost::signals2::scoped_connection export_read_finished_connection;
std::list<Glib::ustring> files_written;
+ void add_file (const Glib::ustring&);
/* CD Marker stuff */
@@ -175,7 +177,7 @@ class ExportHandler : public ExportElementFactory, public sigc::trackable
TimespanPtr current_timespan;
ConfigMap::iterator current_map_it;
TimespanBounds timespan_bounds;
- sigc::connection channel_config_connection;
+ boost::signals2::scoped_connection channel_config_connection;
};
diff --git a/libs/ardour/ardour/export_multiplication.h b/libs/ardour/ardour/export_multiplication.h
index 4826a35668..aace72cc42 100644
--- a/libs/ardour/ardour/export_multiplication.h
+++ b/libs/ardour/ardour/export_multiplication.h
@@ -36,7 +36,7 @@
bool selected () const { return _selected; }
void select (bool value);
- sigc::signal<void, bool> SelectChanged;
+ boost::signals2::signal<void(bool)> SelectChanged;
protected:
@@ -151,7 +151,7 @@
void split_node (GraphNode * node, float position);
void remove_node (GraphNode * node);
- sigc::signal<void> GraphChanged;
+ boost::signals2::signal<void()> GraphChanged;
private:
diff --git a/libs/ardour/ardour/export_processor.h b/libs/ardour/ardour/export_processor.h
index c2cb5034c7..8e7918d7c5 100644
--- a/libs/ardour/ardour/export_processor.h
+++ b/libs/ardour/ardour/export_processor.h
@@ -80,7 +80,7 @@ class ExportProcessor
void write_files ();
- static sigc::signal<void, Glib::ustring> WritingFile;
+ static boost::signals2::signal<void(const Glib::ustring&)> WritingFile;
private:
diff --git a/libs/ardour/ardour/export_profile_manager.h b/libs/ardour/ardour/export_profile_manager.h
index 47acacd387..30bb3c5b91 100644
--- a/libs/ardour/ardour/export_profile_manager.h
+++ b/libs/ardour/ardour/export_profile_manager.h
@@ -28,7 +28,6 @@
#include <boost/shared_ptr.hpp>
#include <boost/weak_ptr.hpp>
-#include <sigc++/signal.h>
#include <glibmm/ustring.h>
#include "pbd/uuid.h"
@@ -207,7 +206,7 @@ class ExportProfileManager
void remove_format_profile (FormatPtr format);
FormatPtr get_new_format (FormatPtr original);
- sigc::signal<void> FormatListChanged;
+ boost::signals2::signal<void()> FormatListChanged;
private:
diff --git a/libs/ardour/ardour/export_status.h b/libs/ardour/ardour/export_status.h
index 3322ca639c..9fd3c84ecc 100644
--- a/libs/ardour/ardour/export_status.h
+++ b/libs/ardour/ardour/export_status.h
@@ -22,9 +22,9 @@
#define __ardour_export_status_h__
#include <list>
+#include <boost/signals2.hpp>
#include <stdint.h>
-#include <sigc++/signal.h>
namespace ARDOUR
{
@@ -36,7 +36,7 @@ enum ExportStage {
export_Write
};
-struct ExportStatus : public sigc::trackable {
+struct ExportStatus {
ExportStatus ();
void init ();
@@ -46,12 +46,12 @@ struct ExportStatus : public sigc::trackable {
volatile bool stop;
volatile bool running;
- sigc::signal<void> Aborting;
+ boost::signals2::signal<void()> Aborting;
void abort (bool error_occurred = false);
bool aborted () const { return _aborted; }
bool errors () const { return _errors; }
- sigc::signal<void> Finished;
+ boost::signals2::signal<void()> Finished;
void finish ();
bool finished () const { return _finished; }
diff --git a/libs/ardour/ardour/export_timespan.h b/libs/ardour/ardour/export_timespan.h
index 255d1e377d..461caf6dd8 100644
--- a/libs/ardour/ardour/export_timespan.h
+++ b/libs/ardour/ardour/export_timespan.h
@@ -36,7 +36,7 @@ namespace ARDOUR
class ExportChannel;
class ExportTempFile;
-class ExportTimespan : public sigc::trackable
+class ExportTimespan
{
private:
typedef boost::shared_ptr<ExportTempFile> TempFilePtr;
@@ -69,7 +69,7 @@ class ExportTimespan : public sigc::trackable
/// Reads data from each channel and writes to tempfile
int process (nframes_t frames);
- sigc::connection process_connection;
+ boost::signals2::scoped_connection process_connection;
void set_range (nframes_t start, nframes_t end);
nframes_t get_length () const { return end_frame - start_frame; }
diff --git a/libs/ardour/ardour/import_status.h b/libs/ardour/ardour/import_status.h
index 25a14f3fae..e6207c6ee8 100644
--- a/libs/ardour/ardour/import_status.h
+++ b/libs/ardour/ardour/import_status.h
@@ -24,7 +24,6 @@
#include <vector>
#include <stdint.h>
-#include <sigc++/signal.h>
#include "ardour/types.h"
diff --git a/libs/ardour/ardour/internal_return.h b/libs/ardour/ardour/internal_return.h
index 205559fe4e..498c9f3605 100644
--- a/libs/ardour/ardour/internal_return.h
+++ b/libs/ardour/ardour/internal_return.h
@@ -20,7 +20,6 @@
#ifndef __ardour_internal_return_h__
#define __ardour_internal_return_h__
-#include <sigc++/signal.h>
#include "ardour/ardour.h"
#include "ardour/return.h"
@@ -48,7 +47,7 @@ class InternalReturn : public Return
BufferSet* get_buffers();
void release_buffers();
- static sigc::signal<void,nframes_t> CycleStart;
+ static boost::signals2::signal<void(nframes_t)> CycleStart;
private:
BufferSet buffers;
diff --git a/libs/ardour/ardour/internal_send.h b/libs/ardour/ardour/internal_send.h
index 12279b166e..7573efd685 100644
--- a/libs/ardour/ardour/internal_send.h
+++ b/libs/ardour/ardour/internal_send.h
@@ -53,7 +53,7 @@ class InternalSend : public Send
BufferSet* target;
boost::shared_ptr<Route> _send_to;
PBD::ID _send_to_id;
- sigc::connection connect_c;
+ boost::signals2::scoped_connection connect_c;
void send_to_going_away ();
void send_to_name_changed ();
diff --git a/libs/ardour/ardour/io.h b/libs/ardour/ardour/io.h
index da0b88e5fe..eeb7ed64f0 100644
--- a/libs/ardour/ardour/io.h
+++ b/libs/ardour/ardour/io.h
@@ -23,7 +23,6 @@
#include <string>
#include <vector>
#include <cmath>
-#include <sigc++/signal.h>
#include <jack/jack.h>
#include <glibmm/thread.h>
@@ -133,7 +132,7 @@ class IO : public SessionObject, public Latent
const ChanCount& n_ports () const { return _ports.count(); }
- sigc::signal<void,IOChange,void*> changed;
+ boost::signals2::signal<void(IOChange,void*)> changed;
virtual XMLNode& state (bool full);
XMLNode& get_state (void);
@@ -145,7 +144,7 @@ class IO : public SessionObject, public Latent
static int disable_ports (void);
static int enable_ports (void);
- static sigc::signal<void,ChanCount> PortCountChanged; // emitted when the number of ports changes
+ static boost::signals2::signal<void(ChanCount)> PortCountChanged; // emitted when the number of ports changes
static std::string name_from_state (const XMLNode&);
static void set_name_in_state (XMLNode&, const std::string&);
@@ -153,7 +152,7 @@ class IO : public SessionObject, public Latent
/* we have to defer/order port connection. this is how we do it.
*/
- static sigc::signal<int> ConnectingLegal;
+ static boost::signals2::signal<int()> ConnectingLegal;
static bool connecting_legal;
XMLNode *pending_state_node;
@@ -180,20 +179,18 @@ class IO : public SessionObject, public Latent
bool _active;
private:
-
int connecting_became_legal ();
- sigc::connection connection_legal_c;
+ boost::signals2::scoped_connection connection_legal_c;
boost::shared_ptr<Bundle> _bundle; ///< a bundle representing our ports
struct UserBundleInfo {
- UserBundleInfo (IO*, boost::shared_ptr<UserBundle> b);
-
- boost::shared_ptr<UserBundle> bundle;
- sigc::connection changed;
+ UserBundleInfo (IO*, boost::shared_ptr<UserBundle> b);
+ boost::shared_ptr<UserBundle> bundle;
+ boost::signals2::scoped_connection changed;
};
-
- std::vector<UserBundleInfo> _bundles_connected; ///< user bundles connected to our ports
+
+ std::vector<UserBundleInfo*> _bundles_connected; ///< user bundles connected to our ports
static int parse_io_string (const std::string&, std::vector<std::string>& chns);
static int parse_gain_string (const std::string&, std::vector<std::string>& chns);
@@ -201,7 +198,7 @@ class IO : public SessionObject, public Latent
int ensure_ports (ChanCount, bool clear, bool lockit, void *src);
void check_bundles_connected ();
- void check_bundles (std::vector<UserBundleInfo>&, const PortSet&);
+ void check_bundles (std::vector<UserBundleInfo*>&, const PortSet&);
void bundle_changed (Bundle::Change);
diff --git a/libs/ardour/ardour/io_processor.h b/libs/ardour/ardour/io_processor.h
index 0d564bb00c..e4a42a80e2 100644
--- a/libs/ardour/ardour/io_processor.h
+++ b/libs/ardour/ardour/io_processor.h
@@ -22,7 +22,6 @@
#include <string>
#include <boost/shared_ptr.hpp>
-#include <sigc++/signal.h>
#include <glibmm/thread.h>
@@ -68,8 +67,8 @@ class IOProcessor : public Processor
virtual bool feeds (boost::shared_ptr<Route> other) const;
- sigc::signal<void,IOProcessor*,bool> AutomationPlaybackChanged;
- sigc::signal<void,IOProcessor*,uint32_t> AutomationChanged;
+ boost::signals2::signal<void(IOProcessor*,bool)> AutomationPlaybackChanged;
+ boost::signals2::signal<void(IOProcessor*,uint32_t)> AutomationChanged;
XMLNode& state (bool full_state);
int set_state (const XMLNode&, int version);
diff --git a/libs/ardour/ardour/jack_port.h b/libs/ardour/ardour/jack_port.h
index 3101ce9523..0bb0752d55 100644
--- a/libs/ardour/ardour/jack_port.h
+++ b/libs/ardour/ardour/jack_port.h
@@ -20,7 +20,6 @@
#ifndef __ardour_jack_port_h__
#define __ardour_jack_port_h__
-#include <sigc++/signal.h>
#include "pbd/failed_constructor.h"
#include "ardour/port.h"
#include <jack/jack.h>
diff --git a/libs/ardour/ardour/ladspa_plugin.h b/libs/ardour/ardour/ladspa_plugin.h
index 656c13afae..00f00c99b6 100644
--- a/libs/ardour/ardour/ladspa_plugin.h
+++ b/libs/ardour/ardour/ladspa_plugin.h
@@ -25,7 +25,6 @@
#include <string>
#include <dlfcn.h>
-#include <sigc++/signal.h>
#include "pbd/stateful.h"
diff --git a/libs/ardour/ardour/location.h b/libs/ardour/ardour/location.h
index 149a559d85..b50a645a93 100644
--- a/libs/ardour/ardour/location.h
+++ b/libs/ardour/ardour/location.h
@@ -26,7 +26,6 @@
#include <map>
#include <sys/types.h>
-#include <sigc++/signal.h>
#include <glibmm/thread.h>
@@ -109,15 +108,15 @@ class Location : public PBD::StatefulDestructible
bool is_range_marker() const { return _flags & IsRangeMarker; }
bool matches (Flags f) const { return _flags & f; }
- sigc::signal<void,Location*> name_changed;
- sigc::signal<void,Location*> end_changed;
- sigc::signal<void,Location*> start_changed;
+ boost::signals2::signal<void(Location*)> name_changed;
+ boost::signals2::signal<void(Location*)> end_changed;
+ boost::signals2::signal<void(Location*)> start_changed;
- sigc::signal<void,Location*,void*> FlagsChanged;
+ boost::signals2::signal<void(Location*,void*)> FlagsChanged;
/* this is sent only when both start&end change at the same time */
- sigc::signal<void,Location*> changed;
+ boost::signals2::signal<void(Location*)> changed;
/* CD Track / CD-Text info */
@@ -176,11 +175,11 @@ class Locations : public PBD::StatefulDestructible
void find_all_between (nframes64_t start, nframes64_t, LocationList&, Location::Flags);
- sigc::signal<void,Location*> current_changed;
- sigc::signal<void> changed;
- sigc::signal<void,Location*> added;
- sigc::signal<void,Location*> removed;
- sigc::signal<void,Change> StateChanged;
+ boost::signals2::signal<void(Location*)> current_changed;
+ boost::signals2::signal<void()> changed;
+ boost::signals2::signal<void(Location*)> added;
+ boost::signals2::signal<void(Location*)> removed;
+ boost::signals2::signal<void(Change)> StateChanged;
template<class T> void apply (T& obj, void (T::*method)(LocationList&)) {
Glib::Mutex::Lock lm (lock);
diff --git a/libs/ardour/ardour/lv2_plugin.h b/libs/ardour/ardour/lv2_plugin.h
index 9705459ee1..157d9144b8 100644
--- a/libs/ardour/ardour/lv2_plugin.h
+++ b/libs/ardour/ardour/lv2_plugin.h
@@ -26,7 +26,6 @@
#include <string>
#include <dlfcn.h>
-#include <sigc++/signal.h>
#include "pbd/stateful.h"
diff --git a/libs/ardour/ardour/meter.h b/libs/ardour/ardour/meter.h
index ae0a1672db..1f5e3307d6 100644
--- a/libs/ardour/ardour/meter.h
+++ b/libs/ardour/ardour/meter.h
@@ -20,7 +20,6 @@
#define __ardour_meter_h__
#include <vector>
-#include <sigc++/slot.h>
#include "ardour/types.h"
#include "ardour/processor.h"
#include "pbd/fastlog.h"
@@ -34,10 +33,10 @@ class Session;
class Metering {
public:
static void update_meters ();
- static sigc::signal<void> Meter;
+ static boost::signals2::signal<void()> Meter;
- static sigc::connection connect (sigc::slot<void> the_slot);
- static void disconnect (sigc::connection& c);
+ static boost::signals2::connection connect (boost::function<void()>);
+ static void disconnect (boost::signals2::connection& c);
private:
/* this object is not meant to be instantiated */
diff --git a/libs/ardour/ardour/midi_diskstream.h b/libs/ardour/ardour/midi_diskstream.h
index 930d37330a..72667ca662 100644
--- a/libs/ardour/ardour/midi_diskstream.h
+++ b/libs/ardour/ardour/midi_diskstream.h
@@ -21,7 +21,6 @@
#ifndef __ardour_midi_diskstream_h__
#define __ardour_midi_diskstream_h__
-#include <sigc++/signal.h>
#include <cmath>
#include <cassert>
diff --git a/libs/ardour/ardour/midi_model.h b/libs/ardour/ardour/midi_model.h
index b099f575a1..9961b51528 100644
--- a/libs/ardour/ardour/midi_model.h
+++ b/libs/ardour/ardour/midi_model.h
@@ -158,7 +158,7 @@ public:
XMLNode& get_state();
int set_state(const XMLNode&) { return 0; }
- sigc::signal<void> ContentsChanged;
+ boost::signals2::signal<void()> ContentsChanged;
const MidiSource* midi_source() const { return _midi_source; }
void set_midi_source(MidiSource* source) { _midi_source = source; }
diff --git a/libs/ardour/ardour/midi_patch_manager.h b/libs/ardour/ardour/midi_patch_manager.h
index a48c9ddfe7..8c4ff43d5c 100644
--- a/libs/ardour/ardour/midi_patch_manager.h
+++ b/libs/ardour/ardour/midi_patch_manager.h
@@ -22,6 +22,8 @@
#define MIDI_PATCH_MANAGER_H_
#include "midi++/midnam_patch.h"
+#include "pbd/scoped_connections.h"
+#include "ardour/session_handle.h"
namespace ARDOUR {
class Session;
@@ -33,7 +35,7 @@ namespace MIDI
namespace Name
{
-class MidiPatchManager
+class MidiPatchManager : public PBD::ScopedConnectionList, public ARDOUR::SessionHandlePtr
{
/// Singleton
private:
@@ -55,7 +57,7 @@ public:
return *_manager;
}
- void set_session (ARDOUR::Session&);
+ void set_session (ARDOUR::Session*);
boost::shared_ptr<MIDINameDocument> document_by_model(std::string model_name)
{ return _documents[model_name]; }
@@ -76,7 +78,6 @@ public:
}
}
-
boost::shared_ptr<Patch> find_patch(
std::string model,
std::string custom_device_mode,
@@ -133,10 +134,9 @@ public:
const MasterDeviceNames::Models& all_models() const { return _all_models; }
private:
- void drop_session();
+ void session_going_away();
void refresh();
- ARDOUR::Session* _session;
MidiNameDocuments _documents;
MIDINameDocument::MasterDeviceNamesList _master_devices_by_model;
MasterDeviceNames::Models _all_models;
@@ -145,4 +145,5 @@ private:
} // namespace Name
} // namespace MIDI
+
#endif /* MIDI_PATCH_MANAGER_H_ */
diff --git a/libs/ardour/ardour/midi_source.h b/libs/ardour/ardour/midi_source.h
index dfbd5ea6a2..74448991d9 100644
--- a/libs/ardour/ardour/midi_source.h
+++ b/libs/ardour/ardour/midi_source.h
@@ -22,7 +22,6 @@
#include <string>
#include <time.h>
-#include <sigc++/signal.h>
#include <glibmm/thread.h>
#include "pbd/stateful.h"
#include "pbd/xml++.h"
@@ -87,10 +86,10 @@ class MidiSource : virtual public Source
uint32_t read_data_count() const { return _read_data_count; }
uint32_t write_data_count() const { return _write_data_count; }
- static sigc::signal<void,MidiSource*> MidiSourceCreated;
+ static boost::signals2::signal<void(MidiSource*)> MidiSourceCreated;
// Signal a range of recorded data is available for reading from model()
- mutable sigc::signal<void,sframes_t,nframes_t> ViewDataRangeReady;
+ mutable boost::signals2::signal<void(sframes_t,nframes_t)> ViewDataRangeReady;
XMLNode& get_state ();
int set_state (const XMLNode&, int version);
diff --git a/libs/ardour/ardour/midi_ui.h b/libs/ardour/ardour/midi_ui.h
index 2daec06774..0ecf1b0589 100644
--- a/libs/ardour/ardour/midi_ui.h
+++ b/libs/ardour/ardour/midi_ui.h
@@ -2,6 +2,7 @@
#define __libardour_midi_ui_h__
#include <list>
+#include <boost/signals2.hpp>
#include "pbd/abstract_ui.h"
namespace MIDI {
@@ -41,7 +42,8 @@ class MidiControlUI : public AbstractUI<MidiUIRequest>
typedef std::list<GSource*> PortSources;
PortSources port_sources;
ARDOUR::Session& _session;
-
+ boost::signals2::scoped_connection rebind_connection;
+
bool midi_input_handler (Glib::IOCondition, MIDI::Port*);
void reset_ports ();
void clear_ports ();
diff --git a/libs/ardour/ardour/mute_master.h b/libs/ardour/ardour/mute_master.h
index ef65e69aba..a76775c710 100644
--- a/libs/ardour/ardour/mute_master.h
+++ b/libs/ardour/ardour/mute_master.h
@@ -64,7 +64,7 @@ class MuteMaster : public AutomationControl
void set_value (float); /* note: float is used as a bitfield of MutePoints */
float get_value () const;
- sigc::signal<void> MutePointChanged;
+ boost::signals2::signal<void()> MutePointChanged;
XMLNode& get_state();
int set_state(const XMLNode&, int version);
diff --git a/libs/ardour/ardour/named_selection.h b/libs/ardour/ardour/named_selection.h
index d41f104e1a..0c930d5b72 100644
--- a/libs/ardour/ardour/named_selection.h
+++ b/libs/ardour/ardour/named_selection.h
@@ -46,7 +46,7 @@ struct NamedSelection : public PBD::Stateful
int set_state (const XMLNode&, int version);
- static sigc::signal<void,NamedSelection*> NamedSelectionCreated;
+ static boost::signals2::signal<void(NamedSelection*)> NamedSelectionCreated;
};
}/* namespace ARDOUR */
diff --git a/libs/ardour/ardour/panner.h b/libs/ardour/ardour/panner.h
index 7ea37e9974..bf5a04c745 100644
--- a/libs/ardour/ardour/panner.h
+++ b/libs/ardour/ardour/panner.h
@@ -25,7 +25,6 @@
#include <vector>
#include <string>
#include <iostream>
-#include <sigc++/signal.h>
#include "pbd/stateful.h"
#include "pbd/controllable.h"
@@ -41,7 +40,7 @@ class Panner;
class BufferSet;
class AudioBuffer;
-class StreamPanner : public sigc::trackable, public PBD::Stateful
+class StreamPanner : public PBD::Stateful
{
public:
StreamPanner (Panner& p, Evoral::Parameter param);
@@ -82,8 +81,8 @@ class StreamPanner : public sigc::trackable, public PBD::Stateful
boost::shared_ptr<AutomationControl> pan_control() { return _control; }
- sigc::signal<void> Changed; /* for position */
- sigc::signal<void> StateChanged; /* for mute */
+ boost::signals2::signal<void()> Changed; /* for position */
+ boost::signals2::signal<void()> StateChanged; /* for mute */
int set_state (const XMLNode&, int version);
virtual XMLNode& state (bool full_state) = 0;
@@ -271,9 +270,9 @@ public:
StreamPanner &streampanner( uint32_t n ) const { assert( n < _streampanners.size() ); return *_streampanners[n]; }
uint32_t npanners() const { return _streampanners.size(); }
- sigc::signal<void> Changed;
- sigc::signal<void> LinkStateChanged;
- sigc::signal<void> StateChanged; /* for bypass */
+ boost::signals2::signal<void()> Changed;
+ boost::signals2::signal<void()> LinkStateChanged;
+ boost::signals2::signal<void()> StateChanged; /* for bypass */
/* only StreamPanner should call these */
diff --git a/libs/ardour/ardour/playlist.h b/libs/ardour/ardour/playlist.h
index 3ed32f0984..9c089c2f05 100644
--- a/libs/ardour/ardour/playlist.h
+++ b/libs/ardour/ardour/playlist.h
@@ -32,7 +32,6 @@
#include <glib.h>
-#include <sigc++/signal.h>
#include "pbd/undo.h"
#include "pbd/stateful.h"
@@ -51,9 +50,9 @@ namespace ARDOUR {
class Session;
class Region;
-class Playlist : public SessionObject,
- public boost::noncopyable,
- public boost::enable_shared_from_this<Playlist> {
+class Playlist : public SessionObject
+ , public boost::noncopyable
+ , public boost::enable_shared_from_this<Playlist> {
public:
typedef std::list<boost::shared_ptr<Region> > RegionList;
@@ -125,19 +124,19 @@ class Playlist : public SessionObject,
nframes64_t find_next_transient (nframes64_t position, int dir);
- void foreach_region (sigc::slot<void, boost::shared_ptr<Region> >);
+ void foreach_region (boost::function<void (boost::shared_ptr<Region>)>);
XMLNode& get_state ();
int set_state (const XMLNode&, int version);
XMLNode& get_template ();
- sigc::signal<void,bool> InUse;
- sigc::signal<void> Modified;
- sigc::signal<void, boost::weak_ptr<Region> > RegionAdded;
- sigc::signal<void, boost::weak_ptr<Region> > RegionRemoved;
- sigc::signal<void> NameChanged;
- sigc::signal<void> LengthChanged;
- sigc::signal<void, std::list< Evoral::RangeMove<nframes_t> > const &> RangesMoved;
+ boost::signals2::signal<void(bool)> InUse;
+ boost::signals2::signal<void()> Modified;
+ boost::signals2::signal<void(boost::weak_ptr<Region>)> RegionAdded;
+ boost::signals2::signal<void(boost::weak_ptr<Region>)> RegionRemoved;
+ boost::signals2::signal<void()> NameChanged;
+ boost::signals2::signal<void()> LengthChanged;
+ boost::signals2::signal<void(std::list< Evoral::RangeMove<nframes_t> > const &)> RangesMoved;
static std::string bump_name (std::string old_name, Session&);
@@ -195,7 +194,7 @@ class Playlist : public SessionObject,
RegionList regions; /* the current list of regions in the playlist */
std::set<boost::shared_ptr<Region> > all_regions; /* all regions ever added to this playlist */
- std::list<sigc::connection> region_state_changed_connections;
+ PBD::ScopedConnectionList region_state_changed_connections;
DataType _type;
mutable gint block_notifications;
mutable gint ignore_state_changes;
diff --git a/libs/ardour/ardour/playlist_factory.h b/libs/ardour/ardour/playlist_factory.h
index 02bd68ae7a..4c3680ae8e 100644
--- a/libs/ardour/ardour/playlist_factory.h
+++ b/libs/ardour/ardour/playlist_factory.h
@@ -31,7 +31,7 @@ class Session;
class PlaylistFactory {
public:
- static sigc::signal<void,boost::shared_ptr<Playlist>, bool> PlaylistCreated;
+ static boost::signals2::signal<void(boost::shared_ptr<Playlist>, bool)> PlaylistCreated;
static boost::shared_ptr<Playlist> create (Session&, const XMLNode&, bool hidden = false, bool unused = false);
static boost::shared_ptr<Playlist> create (DataType type, Session&, std::string name, bool hidden = false);
diff --git a/libs/ardour/ardour/plugin.h b/libs/ardour/ardour/plugin.h
index 5a86b6e005..ea8f95d8f5 100644
--- a/libs/ardour/ardour/plugin.h
+++ b/libs/ardour/ardour/plugin.h
@@ -21,7 +21,6 @@
#define __ardour_plugin_h__
#include <boost/shared_ptr.hpp>
-#include <sigc++/signal.h>
#include <glibmm/ustring.h>
#include "pbd/statefuldestructible.h"
@@ -144,7 +143,7 @@ class Plugin : public PBD::StatefulDestructible, public Latent
virtual bool has_editor() const = 0;
- sigc::signal<void,uint32_t,float> ParameterChanged;
+ boost::signals2::signal<void(uint32_t,float)> ParameterChanged;
/* NOTE: this block of virtual methods looks like the interface
to a Processor, but Plugin does not inherit from Processor.
diff --git a/libs/ardour/ardour/plugin_insert.h b/libs/ardour/ardour/plugin_insert.h
index 593db1ff0d..6be8f1dda6 100644
--- a/libs/ardour/ardour/plugin_insert.h
+++ b/libs/ardour/ardour/plugin_insert.h
@@ -25,7 +25,6 @@
#include <boost/weak_ptr.hpp>
-#include <sigc++/signal.h>
#include "ardour/ardour.h"
#include "ardour/types.h"
#include "ardour/processor.h"
@@ -107,7 +106,7 @@ class PluginInsert : public Processor
void collect_signal_for_analysis(nframes_t nframes);
- sigc::signal<void, BufferSet*, BufferSet*> AnalysisDataGathered;
+ boost::signals2::signal<void(BufferSet*, BufferSet*)> AnalysisDataGathered;
private:
/* disallow copy construction */
diff --git a/libs/ardour/ardour/plugin_manager.h b/libs/ardour/ardour/plugin_manager.h
index 0a056b574a..44c529835e 100644
--- a/libs/ardour/ardour/plugin_manager.h
+++ b/libs/ardour/ardour/plugin_manager.h
@@ -70,7 +70,7 @@ class PluginManager : public boost::noncopyable {
PluginStatusType get_status (const PluginInfoPtr&);
/** plugins were added to or removed from one of the PluginInfoLists */
- sigc::signal<void> PluginListChanged;
+ boost::signals2::signal<void()> PluginListChanged;
private:
struct PluginStatus {
diff --git a/libs/ardour/ardour/port.h b/libs/ardour/ardour/port.h
index 2597fa9601..be4df6bd02 100644
--- a/libs/ardour/ardour/port.h
+++ b/libs/ardour/ardour/port.h
@@ -25,7 +25,8 @@
#include <vector>
#include <jack/jack.h>
#include <boost/utility.hpp>
-#include <sigc++/trackable.h>
+#include <boost/signals2.hpp>
+
#include "ardour/data_type.h"
#include "ardour/types.h"
@@ -34,7 +35,7 @@ namespace ARDOUR {
class AudioEngine;
class Buffer;
-class Port : public sigc::trackable, public boost::noncopyable
+class Port : public boost::noncopyable
{
public:
enum Flags {
@@ -117,7 +118,7 @@ public:
static void set_engine (AudioEngine *);
- sigc::signal<void, bool> MonitorInputChanged;
+ boost::signals2::signal<void(bool)> MonitorInputChanged;
protected:
diff --git a/libs/ardour/ardour/port_insert.h b/libs/ardour/ardour/port_insert.h
index 97f930df6e..5e50b4775e 100644
--- a/libs/ardour/ardour/port_insert.h
+++ b/libs/ardour/ardour/port_insert.h
@@ -24,7 +24,6 @@
#include <string>
#include <exception>
-#include <sigc++/signal.h>
#include "ardour/ardour.h"
#include "ardour/io_processor.h"
#include "ardour/types.h"
diff --git a/libs/ardour/ardour/processor.h b/libs/ardour/ardour/processor.h
index c57eb4354c..5962e8f44e 100644
--- a/libs/ardour/ardour/processor.h
+++ b/libs/ardour/ardour/processor.h
@@ -26,7 +26,6 @@
#include "pbd/statefuldestructible.h"
-#include <sigc++/signal.h>
#include "ardour/ardour.h"
#include "ardour/automatable_controls.h"
@@ -99,10 +98,10 @@ class Processor : public SessionObject, public AutomatableControls, public Laten
void *get_gui () const { return _gui; }
void set_gui (void *p) { _gui = p; }
- static sigc::signal<void,Processor*> ProcessorCreated;
+ static boost::signals2::signal<void(Processor*)> ProcessorCreated;
- sigc::signal<void> ActiveChanged;
- sigc::signal<void,ChanCount,ChanCount> ConfigurationChanged;
+ boost::signals2::signal<void()> ActiveChanged;
+ boost::signals2::signal<void(ChanCount,ChanCount)> ConfigurationChanged;
protected:
int _pending_active;
diff --git a/libs/ardour/ardour/region.h b/libs/ardour/ardour/region.h
index 7bae98e573..a276fb19ee 100644
--- a/libs/ardour/ardour/region.h
+++ b/libs/ardour/ardour/region.h
@@ -26,6 +26,7 @@
#include <boost/utility.hpp>
#include "pbd/undo.h"
+#include "pbd/scoped_connections.h"
#include "ardour/ardour.h"
#include "ardour/data_type.h"
@@ -95,8 +96,8 @@ class Region
static Change LayerChanged;
static Change HiddenChanged;
- sigc::signal<void,Change> StateChanged;
- static sigc::signal<void,boost::shared_ptr<ARDOUR::Region> > RegionPropertyChanged;
+ boost::signals2::signal<void(Change)> StateChanged;
+ static boost::signals2::signal<void(boost::shared_ptr<ARDOUR::Region>)> RegionPropertyChanged;
void unlock_property_changes () { _flags = Flag (_flags & ~DoNotSendPropertyChanges); }
void block_property_changes () { _flags = Flag (_flags | DoNotSendPropertyChanges); }
@@ -218,7 +219,7 @@ class Region
boost::shared_ptr<ARDOUR::Playlist> playlist() const { return _playlist.lock(); }
virtual void set_playlist (boost::weak_ptr<ARDOUR::Playlist>);
- void source_deleted (boost::shared_ptr<Source>);
+ void source_deleted (boost::weak_ptr<Source>);
boost::shared_ptr<Source> source (uint32_t n=0) const { return _sources[ (n < _sources.size()) ? n : 0 ]; }
uint32_t n_channels() const { return _sources.size(); }
diff --git a/libs/ardour/ardour/region_factory.h b/libs/ardour/ardour/region_factory.h
index e702a2433f..51858e4926 100644
--- a/libs/ardour/ardour/region_factory.h
+++ b/libs/ardour/ardour/region_factory.h
@@ -40,7 +40,7 @@ class RegionFactory {
itself, to permit dynamic_cast<> to be used to
infer the type of Region.
*/
- static sigc::signal<void,boost::shared_ptr<Region> > CheckNewRegion;
+ static boost::signals2::signal<void(boost::shared_ptr<Region>)> CheckNewRegion;
static boost::shared_ptr<Region> create (boost::shared_ptr<const Region>);
diff --git a/libs/ardour/ardour/return.h b/libs/ardour/ardour/return.h
index a3d3859899..f663c109a5 100644
--- a/libs/ardour/ardour/return.h
+++ b/libs/ardour/ardour/return.h
@@ -21,7 +21,6 @@
#ifndef __ardour_return_h__
#define __ardour_return_h__
-#include <sigc++/signal.h>
#include <string>
diff --git a/libs/ardour/ardour/route.h b/libs/ardour/ardour/route.h
index 92a3c8c6b8..dd6173e963 100644
--- a/libs/ardour/ardour/route.h
+++ b/libs/ardour/ardour/route.h
@@ -163,7 +163,7 @@ class Route : public SessionObject, public AutomatableControls, public RouteGrou
void flush_processors ();
- void foreach_processor (sigc::slot<void, boost::weak_ptr<Processor> > method) {
+ void foreach_processor (boost::function<void(boost::weak_ptr<Processor>)> method) {
Glib::RWLock::ReaderLock lm (_processor_lock);
for (ProcessorList::iterator i = _processors.begin(); i != _processors.end(); ++i) {
method (boost::weak_ptr<Processor> (*i));
@@ -227,28 +227,28 @@ class Route : public SessionObject, public AutomatableControls, public RouteGrou
void set_user_latency (nframes_t);
nframes_t initial_delay() const { return _initial_delay; }
- sigc::signal<void> active_changed;
- sigc::signal<void> phase_invert_changed;
- sigc::signal<void> denormal_protection_changed;
- sigc::signal<void,void*> listen_changed;
- sigc::signal<void,void*> solo_changed;
- sigc::signal<void,void*> solo_safe_changed;
- sigc::signal<void,void*> solo_isolated_changed;
- sigc::signal<void,void*> comment_changed;
- sigc::signal<void,void*> mute_changed;
- sigc::signal<void> mute_points_changed;
+ boost::signals2::signal<void()> active_changed;
+ boost::signals2::signal<void()> phase_invert_changed;
+ boost::signals2::signal<void()> denormal_protection_changed;
+ boost::signals2::signal<void(void*)> listen_changed;
+ boost::signals2::signal<void(void*)> solo_changed;
+ boost::signals2::signal<void(void*)> solo_safe_changed;
+ boost::signals2::signal<void(void*)> solo_isolated_changed;
+ boost::signals2::signal<void(void*)> comment_changed;
+ boost::signals2::signal<void(void*)> mute_changed;
+ boost::signals2::signal<void()> mute_points_changed;
/** the processors have changed; the parameter indicates what changed */
- sigc::signal<void, RouteProcessorChange> processors_changed;
- sigc::signal<void,void*> record_enable_changed;
+ boost::signals2::signal<void(RouteProcessorChange)> processors_changed;
+ boost::signals2::signal<void(void*)> record_enable_changed;
/** the metering point has changed */
- sigc::signal<void,void*> meter_change;
- sigc::signal<void> signal_latency_changed;
- sigc::signal<void> initial_delay_changed;
+ boost::signals2::signal<void(void*)> meter_change;
+ boost::signals2::signal<void()> signal_latency_changed;
+ boost::signals2::signal<void()> initial_delay_changed;
/* gui's call this for their own purposes. */
- sigc::signal<void,std::string,void*> gui_changed;
+ boost::signals2::signal<void(std::string,void*)> gui_changed;
/* stateful */
@@ -261,7 +261,7 @@ class Route : public SessionObject, public AutomatableControls, public RouteGrou
int save_as_template (const std::string& path, const std::string& name);
- sigc::signal<void,void*> SelectedChanged;
+ boost::signals2::signal<void(void*)> SelectedChanged;
int listen_via (boost::shared_ptr<Route>, Placement p, bool active, bool aux);
void drop_listen (boost::shared_ptr<Route>);
@@ -306,10 +306,10 @@ class Route : public SessionObject, public AutomatableControls, public RouteGrou
void set_remote_control_id (uint32_t id);
uint32_t remote_control_id () const;
- sigc::signal<void> RemoteControlIDChanged;
+ boost::signals2::signal<void()> RemoteControlIDChanged;
void sync_order_keys (std::string const &);
- static sigc::signal<void, std::string const &> SyncOrderKeys;
+ static boost::signals2::signal<void(std::string const &)> SyncOrderKeys;
protected:
friend class Session;
@@ -379,8 +379,6 @@ class Route : public SessionObject, public AutomatableControls, public RouteGrou
void silence (nframes_t nframes);
- sigc::connection input_signal_connection;
-
ChanCount processor_max_streams;
uint32_t _remote_control_id;
@@ -391,7 +389,6 @@ class Route : public SessionObject, public AutomatableControls, public RouteGrou
boost::shared_ptr<Amp> _amp;
boost::shared_ptr<PeakMeter> _meter;
- sigc::connection _meter_connection;
private:
void init ();
diff --git a/libs/ardour/ardour/route_group.h b/libs/ardour/ardour/route_group.h
index bec9a7e8a9..fe4079050d 100644
--- a/libs/ardour/ardour/route_group.h
+++ b/libs/ardour/ardour/route_group.h
@@ -24,9 +24,11 @@
#include <set>
#include <string>
#include <stdint.h>
-#include <sigc++/signal.h>
+#include <boost/signals2.hpp>
#include "pbd/stateful.h"
+#include "pbd/scoped_connections.h"
+
#include "ardour/types.h"
namespace ARDOUR {
@@ -36,7 +38,7 @@ class Track;
class AudioTrack;
class Session;
-class RouteGroup : public PBD::Stateful, public sigc::trackable {
+class RouteGroup : public PBD::Stateful, public PBD::ScopedConnectionList {
public:
enum Flag {
Relative = 0x1,
@@ -126,8 +128,8 @@ public:
boost::shared_ptr<RouteList> route_list() { return routes; }
- sigc::signal<void> changed;
- sigc::signal<void,void*> FlagsChanged;
+ boost::signals2::signal<void()> changed;
+ boost::signals2::signal<void(void*)> FlagsChanged;
XMLNode& get_state ();
diff --git a/libs/ardour/ardour/route_group_member.h b/libs/ardour/ardour/route_group_member.h
index 4b577121a6..8743423b18 100644
--- a/libs/ardour/ardour/route_group_member.h
+++ b/libs/ardour/ardour/route_group_member.h
@@ -20,7 +20,6 @@
#ifndef __libardour_route_group_member_h__
#define __libardour_route_group_member_h__
-#include <sigc++/signal.h>
namespace ARDOUR {
@@ -34,7 +33,7 @@ class RouteGroupMember
RouteGroup* route_group () const { return _route_group; }
- sigc::signal<void> route_group_changed;
+ boost::signals2::signal<void()> route_group_changed;
protected:
RouteGroup* _route_group;
diff --git a/libs/ardour/ardour/send.h b/libs/ardour/ardour/send.h
index 78a82820df..8b39d12727 100644
--- a/libs/ardour/ardour/send.h
+++ b/libs/ardour/ardour/send.h
@@ -20,7 +20,6 @@
#ifndef __ardour_send_h__
#define __ardour_send_h__
-#include <sigc++/signal.h>
#include <string>
#include "pbd/stateful.h"
diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h
index 192dc09908..273f251f3d 100644
--- a/libs/ardour/ardour/session.h
+++ b/libs/ardour/ardour/session.h
@@ -38,14 +38,12 @@
#include "pbd/error.h"
#include "pbd/rcu.h"
#include "pbd/statefuldestructible.h"
+#include "pbd/scoped_connections.h"
#include "pbd/undo.h"
#include "midi++/mmc.h"
#include "midi++/types.h"
-#include "pbd/destructible.h"
-#include "pbd/stateful.h"
-
#include "ardour/ardour.h"
#include "ardour/click.h"
#include "ardour/chan_count.h"
@@ -120,7 +118,7 @@ class VSTPlugin;
extern void setup_enum_writer ();
-class Session : public PBD::StatefulDestructible, public SessionEventManager, public boost::noncopyable
+class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionList, public SessionEventManager, public boost::noncopyable
{
public:
enum RecordState {
@@ -166,14 +164,14 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
void set_deletion_in_progress ();
void clear_deletion_in_progress ();
bool deletion_in_progress() const { return _state_of_the_state & Deletion; }
- sigc::signal<void> DirtyChanged;
+ boost::signals2::signal<void()> DirtyChanged;
const SessionDirectory& session_directory () const { return *(_session_dir.get()); }
- static sigc::signal<void> AutoBindingOn;
- static sigc::signal<void> AutoBindingOff;
+ static boost::signals2::signal<void()> AutoBindingOn;
+ static boost::signals2::signal<void()> AutoBindingOff;
- static sigc::signal<void,std::string> Dialog;
+ static boost::signals2::signal<void(std::string)> Dialog;
std::string sound_dir (bool with_path = true) const;
std::string peak_dir () const;
@@ -274,29 +272,29 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
/* Proxy signal for region hidden changes */
- sigc::signal<void,boost::shared_ptr<Region> > RegionHiddenChange;
+ boost::signals2::signal<void(boost::shared_ptr<Region>)> RegionHiddenChange;
/* Emitted when all i/o connections are complete */
- sigc::signal<void> IOConnectionsComplete;
+ boost::signals2::signal<void()> IOConnectionsComplete;
/* Record status signals */
- sigc::signal<void> RecordStateChanged;
+ boost::signals2::signal<void()> RecordStateChanged;
/* Transport mechanism signals */
- sigc::signal<void> TransportStateChange; /* generic */
- sigc::signal<void,nframes64_t> PositionChanged; /* sent after any non-sequential motion */
- sigc::signal<void> DurationChanged;
- sigc::signal<void,nframes64_t> Xrun;
- sigc::signal<void> TransportLooped;
+ boost::signals2::signal<void()> TransportStateChange; /* generic */
+ boost::signals2::signal<void(nframes64_t)> PositionChanged; /* sent after any non-sequential motion */
+ boost::signals2::signal<void()> DurationChanged;
+ boost::signals2::signal<void(nframes64_t)> Xrun;
+ boost::signals2::signal<void()> TransportLooped;
/** emitted when a locate has occurred */
- sigc::signal<void> Located;
+ boost::signals2::signal<void()> Located;
- sigc::signal<void,RouteList&> RouteAdded;
- sigc::signal<void> RouteGroupChanged;
+ boost::signals2::signal<void(RouteList&)> RouteAdded;
+ boost::signals2::signal<void()> RouteGroupChanged;
void queue_event (SessionEvent*);
@@ -350,9 +348,9 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
Locations *locations() { return &_locations; }
- sigc::signal<void,Location*> auto_loop_location_changed;
- sigc::signal<void,Location*> auto_punch_location_changed;
- sigc::signal<void> locations_modified;
+ boost::signals2::signal<void(Location*)> auto_loop_location_changed;
+ boost::signals2::signal<void(Location*)> auto_punch_location_changed;
+ boost::signals2::signal<void()> locations_modified;
void set_auto_punch_location (Location *);
void set_auto_loop_location (Location *);
@@ -377,8 +375,8 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
static int rename_template (std::string old_name, std::string new_name);
static int delete_template (std::string name);
- sigc::signal<void,std::string> StateSaved;
- sigc::signal<void> StateReady;
+ boost::signals2::signal<void(std::string)> StateSaved;
+ boost::signals2::signal<void()> StateReady;
std::vector<std::string*>* possible_states() const;
static std::vector<std::string*>* possible_states (std::string path);
@@ -408,12 +406,12 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
RouteGroup *route_group_by_name (std::string);
- sigc::signal<void,RouteGroup*> route_group_added;
- sigc::signal<void> route_group_removed;
+ boost::signals2::signal<void(RouteGroup*)> route_group_added;
+ boost::signals2::signal<void()> route_group_removed;
- void foreach_route_group (sigc::slot<void,RouteGroup*> sl) {
+ void foreach_route_group (boost::function<void(RouteGroup*)> f) {
for (std::list<RouteGroup *>::iterator i = _route_groups.begin(); i != _route_groups.end(); i++) {
- sl (*i);
+ f (*i);
}
}
@@ -478,9 +476,9 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
nframes_t convert_to_frames_at (nframes_t position, AnyTime const &);
- static sigc::signal<void> StartTimeChanged;
- static sigc::signal<void> EndTimeChanged;
- static sigc::signal<void> TimecodeOffsetChanged;
+ static boost::signals2::signal<void()> StartTimeChanged;
+ static boost::signals2::signal<void()> EndTimeChanged;
+ static boost::signals2::signal<void()> TimecodeOffsetChanged;
std::vector<SyncSource> get_available_sync_options() const;
void request_sync_source (Slave*);
@@ -498,15 +496,15 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
TempoMap& tempo_map() { return *_tempo_map; }
/// signals the current transport position in frames, bbt and timecode time (in that order)
- sigc::signal<void, const nframes_t&, const BBT_Time&, const Timecode::Time&> tick;
+ boost::signals2::signal<void(const nframes_t&, const BBT_Time&, const Timecode::Time&)> tick;
/* region info */
void add_regions (std::vector<boost::shared_ptr<Region> >&);
- sigc::signal<void,boost::weak_ptr<Region> > RegionAdded;
- sigc::signal<void,std::vector<boost::weak_ptr<Region> >& > RegionsAdded;
- sigc::signal<void,boost::weak_ptr<Region> > RegionRemoved;
+ boost::signals2::signal<void(boost::weak_ptr<Region>)> RegionAdded;
+ boost::signals2::signal<void(std::vector<boost::weak_ptr<Region> >&)> RegionsAdded;
+ boost::signals2::signal<void(boost::weak_ptr<Region>)> RegionRemoved;
int region_name (std::string& result, std::string base = std::string(""), bool newlevel = false);
std::string new_region_name (std::string);
@@ -531,9 +529,9 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
int start_audio_export (nframes_t position, bool realtime);
- sigc::signal<int, nframes_t> ProcessExport;
- sigc::signal<void> ExportReadFinished;
- static sigc::signal<void, std::string, std::string> Exported;
+ boost::signals2::signal<int(nframes_t)> ProcessExport;
+ boost::signals2::signal<void()> ExportReadFinished;
+ static boost::signals2::signal<void(std::string, std::string)> Exported;
void add_source (boost::shared_ptr<Source>);
void remove_source (boost::weak_ptr<Source>);
@@ -550,16 +548,16 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
0 for "yes, delete this playlist",
1 for "no, don't delete this playlist".
*/
- sigc::signal<int,boost::shared_ptr<Playlist> > AskAboutPlaylistDeletion;
+ boost::signals2::signal<void(boost::shared_ptr<Playlist>)> AskAboutPlaylistDeletion;
/** handlers should return 0 for "ignore the rate mismatch",
!0 for "do not use this session"
*/
- static sigc::signal<int,nframes_t, nframes_t> AskAboutSampleRateMismatch;
+ static boost::signals2::signal<int(nframes_t, nframes_t)> AskAboutSampleRateMismatch;
/** handlers should return !0 for use pending state, 0 for ignore it.
*/
- static sigc::signal<int> AskAboutPendingState;
+ static boost::signals2::signal<int()> AskAboutPendingState;
boost::shared_ptr<AudioFileSource> create_audio_source_for_session (ARDOUR::AudioDiskstream&, uint32_t which_channel, bool destructive);
@@ -577,8 +575,8 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
void remove_named_selection (NamedSelection *);
template<class T> void foreach_named_selection (T& obj, void (T::*func)(NamedSelection&));
- sigc::signal<void> NamedSelectionAdded;
- sigc::signal<void> NamedSelectionRemoved;
+ boost::signals2::signal<void()> NamedSelectionAdded;
+ boost::signals2::signal<void()> NamedSelectionRemoved;
/* Curves and AutomationLists (TODO when they go away) */
void add_automation_list(AutomationList*);
@@ -597,7 +595,7 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
void cancel_audition ();
bool is_auditioning () const;
- sigc::signal<void,bool> AuditionActive;
+ boost::signals2::signal<void(bool)> AuditionActive;
/* flattening stuff */
@@ -619,8 +617,8 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
void set_listen (boost::shared_ptr<RouteList>, bool, SessionEvent::RTeventCallback after = rt_cleanup, bool group_override = false);
void set_record_enable (boost::shared_ptr<RouteList>, bool, SessionEvent::RTeventCallback after = rt_cleanup, bool group_override = false);
- sigc::signal<void,bool> SoloActive;
- sigc::signal<void> SoloChanged;
+ boost::signals2::signal<void(bool)> SoloActive;
+ boost::signals2::signal<void()> SoloChanged;
/* control/master out */
@@ -658,8 +656,8 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
void remove_bundle (boost::shared_ptr<Bundle>);
boost::shared_ptr<Bundle> bundle_by_name (std::string) const;
- sigc::signal<void,boost::shared_ptr<Bundle> > BundleAdded;
- sigc::signal<void,boost::shared_ptr<Bundle> > BundleRemoved;
+ boost::signals2::signal<void(boost::shared_ptr<Bundle>)> BundleAdded;
+ boost::signals2::signal<void(boost::shared_ptr<Bundle>)> BundleRemoved;
/* MIDI control */
@@ -673,10 +671,10 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
MIDI::Port *midi_port() const { return _midi_port; }
MIDI::Port *midi_clock_port() const { return _midi_clock_port; }
- sigc::signal<void> MTC_PortChanged;
- sigc::signal<void> MMC_PortChanged;
- sigc::signal<void> MIDI_PortChanged;
- sigc::signal<void> MIDIClock_PortChanged;
+ boost::signals2::signal<void()> MTC_PortChanged;
+ boost::signals2::signal<void()> MMC_PortChanged;
+ boost::signals2::signal<void()> MIDI_PortChanged;
+ boost::signals2::signal<void()> MIDIClock_PortChanged;
void set_trace_midi_input (bool, MIDI::Port* port = 0);
void set_trace_midi_output (bool, MIDI::Port* port = 0);
@@ -693,7 +691,7 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
void stop_scrub ();
void set_scrub_speed (float);
nframes_t scrub_buffer_size() const;
- sigc::signal<void> ScrubReady;
+ boost::signals2::signal<void()> ScrubReady;
/* History (for editors, mixers, UIs etc.) */
@@ -726,11 +724,11 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
_current_trans.top()->add_command (cmd);
}
- std::map<PBD::ID, PBD::StatefulThingWithGoingAway*> registry;
+ std::map<PBD::ID,PBD::StatefulDestructible*> registry;
// these commands are implemented in libs/ardour/session_command.cc
Command* memento_command_factory(XMLNode* n);
- void register_with_memento_command_factory(PBD::ID, PBD::StatefulThingWithGoingAway*);
+ void register_with_memento_command_factory(PBD::ID, PBD::StatefulDestructible*);
/* clicking */
@@ -767,7 +765,7 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
void* ptr,
float opt);
- static sigc::signal<void> SendFeedback;
+ static boost::signals2::signal<void()> SendFeedback;
/* Controllables */
@@ -945,7 +943,7 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
int stop_audio_export ();
void finalize_audio_export ();
- sigc::connection export_freewheel_connection;
+ boost::signals2::scoped_connection export_freewheel_connection;
void prepare_diskstreams ();
void commit_diskstreams (nframes_t, bool& session_requires_butler);
@@ -1069,16 +1067,12 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
void locations_added (Location*);
void handle_locations_changed (Locations::LocationList&);
- sigc::connection auto_punch_start_changed_connection;
- sigc::connection auto_punch_end_changed_connection;
- sigc::connection auto_punch_changed_connection;
+ PBD::ScopedConnectionList punch_connections;
void auto_punch_start_changed (Location *);
void auto_punch_end_changed (Location *);
void auto_punch_changed (Location *);
- sigc::connection auto_loop_start_changed_connection;
- sigc::connection auto_loop_end_changed_connection;
- sigc::connection auto_loop_changed_connection;
+ PBD::ScopedConnectionList loop_connections;
void auto_loop_changed (Location *);
void first_stage_init (std::string path, std::string snapshot_name);
@@ -1143,7 +1137,7 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
struct timeval last_mmc_step;
double step_speed;
- typedef sigc::slot<bool> MidiTimeoutCallback;
+ typedef boost::function<bool()> MidiTimeoutCallback;
typedef std::list<MidiTimeoutCallback> MidiTimeoutList;
MidiTimeoutList midi_timeouts;
diff --git a/libs/ardour/ardour/session_event.h b/libs/ardour/ardour/session_event.h
index 1a3303087d..66c8720186 100644
--- a/libs/ardour/ardour/session_event.h
+++ b/libs/ardour/ardour/session_event.h
@@ -4,7 +4,6 @@
#include <list>
#include <boost/function.hpp>
#include <boost/shared_ptr.hpp>
-#include <sigc++/signal.h>
#include "pbd/pool.h"
#include "pbd/ringbuffer.h"
diff --git a/libs/ardour/ardour/session_handle.h b/libs/ardour/ardour/session_handle.h
new file mode 100644
index 0000000000..c747ee9976
--- /dev/null
+++ b/libs/ardour/ardour/session_handle.h
@@ -0,0 +1,57 @@
+/*
+ Copyright (C) 2009 Paul Davis
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+#ifndef __libardour_session_handle_h__
+#define __libardour_session_handle_h__
+
+#include "pbd/scoped_connections.h"
+
+namespace ARDOUR {
+ class Session;
+
+class SessionHandleRef : public PBD::ScopedConnectionList
+{
+ public:
+ SessionHandleRef (ARDOUR::Session& s);
+ virtual ~SessionHandleRef () {}
+
+ protected:
+ ARDOUR::Session& _session;
+ virtual void session_going_away ();
+};
+
+class SessionHandlePtr
+{
+ public:
+ SessionHandlePtr (ARDOUR::Session* s);
+ SessionHandlePtr () : _session (0) {}
+ virtual ~SessionHandlePtr () {}
+
+ virtual void set_session (ARDOUR::Session *);
+
+ protected:
+ ARDOUR::Session* _session;
+ PBD::ScopedConnectionList _session_connections;
+
+ virtual void session_going_away ();
+};
+
+} /* namespace */
+
+#endif /* __libardour_session_handle_h__ */
diff --git a/libs/ardour/ardour/session_object.h b/libs/ardour/ardour/session_object.h
index 3a796c75b5..eb1a7c3e30 100644
--- a/libs/ardour/ardour/session_object.h
+++ b/libs/ardour/ardour/session_object.h
@@ -22,24 +22,26 @@
#include <string>
#include "pbd/statefuldestructible.h"
+#include "pbd/scoped_connections.h"
+
+#include "ardour/session_handle.h"
namespace ARDOUR {
class Session;
-/** An object associated with a Session.
- *
- * This is a few common things factored out of IO which weren't IO specific
- * (to fix the problem with e.g. PluginInsert being an IO which it shouldn't be).
+/** A named object associated with a Session. Objects derived from this class are
+ expected to be destroyed before the session calls drop_references().
*/
-class SessionObject : public PBD::StatefulDestructible
+
+class SessionObject : public SessionHandleRef, public PBD::StatefulDestructible
{
-public:
- SessionObject(Session& session, const std::string& name)
- : _session(session)
+ public:
+ SessionObject (Session& session, const std::string& name)
+ : SessionHandleRef (session)
, _name(name)
{}
-
+
Session& session() const { return _session; }
const std::string& name() const { return _name; }
@@ -51,10 +53,9 @@ public:
return true;
}
- sigc::signal<void> NameChanged;
+ boost::signals2::signal<void()> NameChanged;
-protected:
- Session& _session;
+ protected:
std::string _name;
};
diff --git a/libs/ardour/ardour/session_playlists.h b/libs/ardour/ardour/session_playlists.h
index 83f469cfd4..8870794cc0 100644
--- a/libs/ardour/ardour/session_playlists.h
+++ b/libs/ardour/ardour/session_playlists.h
@@ -25,7 +25,9 @@
#include <string>
#include <glibmm/thread.h>
#include <boost/shared_ptr.hpp>
-#include <sigc++/trackable.h>
+#include <boost/function.hpp>
+
+#include "pbd/scoped_connections.h"
class XMLNode;
@@ -36,7 +38,7 @@ class Region;
class Source;
class Session;
-class SessionPlaylists : public sigc::trackable
+class SessionPlaylists : public PBD::ScopedConnectionList
{
public:
~SessionPlaylists ();
@@ -58,7 +60,7 @@ private:
void find_equivalent_playlist_regions (boost::shared_ptr<Region>, std::vector<boost::shared_ptr<Region> >& result);
void update_after_tempo_map_change ();
void add_state (XMLNode *, bool);
- bool maybe_delete_unused (sigc::signal<int, boost::shared_ptr<Playlist> >);
+ bool maybe_delete_unused (boost::function<int(boost::shared_ptr<Playlist>)>);
int load (Session &, const XMLNode&);
int load_unused (Session &, const XMLNode&);
boost::shared_ptr<Playlist> XMLPlaylistFactory (Session &, const XMLNode&);
diff --git a/libs/ardour/ardour/slave.h b/libs/ardour/ardour/slave.h
index 1125e920a0..4fe8e1ec46 100644
--- a/libs/ardour/ardour/slave.h
+++ b/libs/ardour/ardour/slave.h
@@ -23,10 +23,12 @@
#include <vector>
#include <glibmm/thread.h>
+#include <boost/signals2.hpp>
#include <jack/jack.h>
-#include <sigc++/signal.h>
+#include "pbd/scoped_connections.h"
+
#include "ardour/types.h"
#include "midi++/parser.h"
#include "midi++/types.h"
@@ -220,7 +222,7 @@ struct SafeTime {
}
};
-class MTC_Slave : public Slave, public sigc::trackable {
+class MTC_Slave : public Slave {
public:
MTC_Slave (Session&, MIDI::Port&);
~MTC_Slave ();
@@ -240,7 +242,7 @@ class MTC_Slave : public Slave, public sigc::trackable {
private:
Session& session;
MIDI::Port* port;
- std::vector<sigc::connection> connections;
+ PBD::ScopedConnectionList* port_connections;
bool can_notify_on_unknown_rate;
PIChaser* pic;
@@ -277,7 +279,7 @@ class MTC_Slave : public Slave, public sigc::trackable {
void process_apparent_speed (double);
};
-class MIDIClock_Slave : public Slave, public sigc::trackable {
+class MIDIClock_Slave : public Slave {
public:
MIDIClock_Slave (Session&, MIDI::Port&, int ppqn = 24);
@@ -301,7 +303,7 @@ class MIDIClock_Slave : public Slave, public sigc::trackable {
private:
ISlaveSessionProxy* session;
MIDI::Port* port;
- std::vector<sigc::connection> connections;
+ PBD::ScopedConnectionList* port_connections;
/// pulses per quarter note for one MIDI clock frame (default 24)
int ppqn;
diff --git a/libs/ardour/ardour/source.h b/libs/ardour/ardour/source.h
index b2e1381e43..a7a6e2207c 100644
--- a/libs/ardour/ardour/source.h
+++ b/libs/ardour/ardour/source.h
@@ -24,7 +24,6 @@
#include <set>
#include <boost/utility.hpp>
-#include <sigc++/signal.h>
#include "pbd/statefuldestructible.h"
#include "ardour/ardour.h"
@@ -82,15 +81,15 @@ class Source : public SessionObject, public boost::noncopyable
virtual bool set_destructive (bool /*yn*/) { return false; }
virtual bool length_mutable() const { return false; }
- static sigc::signal<void,Source*> SourceCreated;
- sigc::signal<void,boost::shared_ptr<Source> > Switched;
+ static boost::signals2::signal<void(Source*)> SourceCreated;
+ boost::signals2::signal<void(boost::shared_ptr<Source>)> Switched;
bool has_been_analysed() const;
virtual bool can_be_analysed() const { return false; }
virtual void set_been_analysed (bool yn);
virtual bool check_for_analysis_data_on_disk();
- sigc::signal<void> AnalysisChanged;
+ boost::signals2::signal<void()> AnalysisChanged;
AnalysisFeatureList transients;
std::string get_transients_path() const;
diff --git a/libs/ardour/ardour/source_factory.h b/libs/ardour/ardour/source_factory.h
index 21af4ece75..4da285e980 100644
--- a/libs/ardour/ardour/source_factory.h
+++ b/libs/ardour/ardour/source_factory.h
@@ -22,7 +22,6 @@
#include <string>
#include <stdint.h>
-#include <sigc++/sigc++.h>
#include <boost/shared_ptr.hpp>
#include "ardour/source.h"
@@ -38,7 +37,7 @@ class SourceFactory {
public:
static void init ();
- static sigc::signal<void,boost::shared_ptr<Source> > SourceCreated;
+ static boost::signals2::signal<void(boost::shared_ptr<Source>)> SourceCreated;
static boost::shared_ptr<Source> create (Session&, const XMLNode& node, bool async = false);
static boost::shared_ptr<Source> createSilent (Session&, const XMLNode& node,
diff --git a/libs/ardour/ardour/tempo.h b/libs/ardour/ardour/tempo.h
index 28c974bff1..ba7bbbcf7e 100644
--- a/libs/ardour/ardour/tempo.h
+++ b/libs/ardour/ardour/tempo.h
@@ -30,7 +30,6 @@
#include "pbd/stateful.h"
#include "pbd/statefuldestructible.h"
-#include <sigc++/signal.h>
#include "ardour/ardour.h"
@@ -259,7 +258,7 @@ class TempoMap : public PBD::StatefulDestructible
nframes_t frame_rate () const { return _frame_rate; }
- sigc::signal<void,ARDOUR::Change> StateChanged;
+ boost::signals2::signal<void(ARDOUR::Change)> StateChanged;
private:
static Tempo _default_tempo;
diff --git a/libs/ardour/ardour/ticker.h b/libs/ardour/ardour/ticker.h
index 3e0f1844a6..9a26d4d3ff 100644
--- a/libs/ardour/ardour/ticker.h
+++ b/libs/ardour/ardour/ticker.h
@@ -18,10 +18,13 @@
$Id$
*/
-#include <sigc++/sigc++.h>
-#include "ardour/types.h"
#include "midi++/jack.h"
+#include "pbd/scoped_connections.h"
+
+#include "ardour/types.h"
+#include "ardour/session_handle.h"
+
#ifndef TICKER_H_
#define TICKER_H_
@@ -31,22 +34,18 @@ namespace ARDOUR
class Session;
-class Ticker : public sigc::trackable
+class Ticker : public SessionHandlePtr
{
public:
- Ticker() : _session(0) {};
- virtual ~Ticker() {};
+ Ticker() {};
+ virtual ~Ticker() {}
virtual void tick(
const nframes_t& transport_frames,
const BBT_Time& transport_bbt,
const Timecode::Time& transport_timecode) = 0;
- virtual void set_session(Session& s);
- virtual void going_away() { _session = 0; }
-
-protected:
- Session* _session;
+ void set_session (Session* s);
};
class MidiClockTicker : public Ticker
@@ -70,8 +69,8 @@ public:
const BBT_Time& transport_bbt,
const Timecode::Time& transport_timecode);
- void set_session(Session& s);
- void going_away() { _midi_port = 0; Ticker::going_away(); }
+ void set_session (Session* s);
+ void session_going_away();
/// slot for the signal session::MIDIClock_PortChanged
void update_midi_clock_port();
diff --git a/libs/ardour/ardour/track.h b/libs/ardour/ardour/track.h
index 5d8e2dbbd5..c23e159684 100644
--- a/libs/ardour/ardour/track.h
+++ b/libs/ardour/ardour/track.h
@@ -43,7 +43,7 @@ class Track : public Route
TrackMode mode () const { return _mode; }
virtual int set_mode (TrackMode /*m*/) { return false; }
virtual bool can_use_mode (TrackMode /*m*/, bool& /*bounce_required*/) { return false; }
- sigc::signal<void> TrackModeChanged;
+ boost::signals2::signal<void()> TrackModeChanged;
virtual int no_roll (nframes_t nframes, sframes_t start_frame, sframes_t end_frame,
bool state_changing, bool can_record, bool rec_monitors_input);
@@ -90,8 +90,8 @@ class Track : public Route
bool record_enabled() const;
void set_record_enable (bool yn, void *src);
- sigc::signal<void> DiskstreamChanged;
- sigc::signal<void> FreezeChange;
+ boost::signals2::signal<void()> DiskstreamChanged;
+ boost::signals2::signal<void()> FreezeChange;
protected:
Track (Session& sess, const XMLNode& node, DataType default_type = DataType::AUDIO);
@@ -141,7 +141,7 @@ class Track : public Route
FreezeRecord _freeze_record;
XMLNode* pending_state;
- sigc::connection recenable_connection;
+ boost::signals2::scoped_connection recenable_connection;
bool _destructive;
boost::shared_ptr<RecEnableControllable> _rec_enable_control;
diff --git a/libs/ardour/ardour/vst_plugin.h b/libs/ardour/ardour/vst_plugin.h
index 2d9875df57..753d94294f 100644
--- a/libs/ardour/ardour/vst_plugin.h
+++ b/libs/ardour/ardour/vst_plugin.h
@@ -27,7 +27,6 @@
#include <string>
#include <dlfcn.h>
-#include <sigc++/signal.h>
#include "pbd/stateful.h"
#include <jack/types.h>
#include "ardour/plugin.h"