switch to using boost::signals2 instead of sigc++, at least for libardour. not finished yet, but compiles, loads sessions, records and can close a session without a crash

git-svn-id: svn://localhost/ardour2/branches/3.0@6372 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis
2009-12-17 18:24:23 +00:00
parent da762129f1
commit f6fdd8dcbf
352 changed files with 3494 additions and 3547 deletions

View File

@@ -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 ();

View File

@@ -19,7 +19,6 @@
#ifndef __ardour_audio_diskstream_h__
#define __ardour_audio_diskstream_h__
#include <sigc++/signal.h>
#include <cmath>
#include <string>

View File

@@ -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;

View File

@@ -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 */

View File

@@ -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>);

View File

@@ -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);

View File

@@ -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 ();

View File

@@ -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:

View File

@@ -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;

View File

@@ -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

View File

@@ -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);

View File

@@ -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;

View File

@@ -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 ();

View File

@@ -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;

View File

@@ -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:

View File

@@ -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 */

View File

@@ -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

View File

@@ -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);

View File

@@ -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; }

View File

@@ -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 */

View File

@@ -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);

View File

@@ -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;
};

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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; }

View File

@@ -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; }

View File

@@ -24,7 +24,6 @@
#include <vector>
#include <stdint.h>
#include <sigc++/signal.h>
#include "ardour/types.h"

View File

@@ -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;

View File

@@ -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 ();

View File

@@ -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);

View File

@@ -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);

View File

@@ -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>

View File

@@ -25,7 +25,6 @@
#include <string>
#include <dlfcn.h>
#include <sigc++/signal.h>
#include "pbd/stateful.h"

View File

@@ -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);

View File

@@ -26,7 +26,6 @@
#include <string>
#include <dlfcn.h>
#include <sigc++/signal.h>
#include "pbd/stateful.h"

View File

@@ -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 */

View File

@@ -21,7 +21,6 @@
#ifndef __ardour_midi_diskstream_h__
#define __ardour_midi_diskstream_h__
#include <sigc++/signal.h>
#include <cmath>
#include <cassert>

View File

@@ -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; }

View File

@@ -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_ */

View File

@@ -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);

View File

@@ -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 ();

View File

@@ -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);

View File

@@ -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 */

View File

@@ -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 */

View File

@@ -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;

View File

@@ -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);

View File

@@ -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.

View File

@@ -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 */

View File

@@ -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 {

View File

@@ -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:

View File

@@ -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"

View File

@@ -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;

View File

@@ -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(); }

View File

@@ -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>);

View File

@@ -21,7 +21,6 @@
#ifndef __ardour_return_h__
#define __ardour_return_h__
#include <sigc++/signal.h>
#include <string>

View File

@@ -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 ();

View File

@@ -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 ();

View File

@@ -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;

View File

@@ -20,7 +20,6 @@
#ifndef __ardour_send_h__
#define __ardour_send_h__
#include <sigc++/signal.h>
#include <string>
#include "pbd/stateful.h"

View File

@@ -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;

View File

@@ -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"

View File

@@ -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__ */

View File

@@ -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;
};

View File

@@ -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&);

View File

@@ -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;

View File

@@ -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;

View File

@@ -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,

View File

@@ -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;

View File

@@ -18,10 +18,13 @@
$Id$
*/
#include <sigc++/sigc++.h>
#include "midi++/jack.h"
#include "pbd/scoped_connections.h"
#include "ardour/types.h"
#include "midi++/jack.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();

View File

@@ -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;

View File

@@ -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"

View File

@@ -126,8 +126,6 @@ AudioDiskstream::~AudioDiskstream ()
{
DEBUG_TRACE (DEBUG::Destruction, string_compose ("Audio Diskstream %1 destructor\n", _name));
notify_callbacks ();
{
RCUWriter<ChannelList> writer (channels);
boost::shared_ptr<ChannelList> c = writer.get_copy();
@@ -1506,7 +1504,7 @@ AudioDiskstream::transport_stopped (struct tm& when, time_t twhen, bool abort_ca
continue; /* XXX is this OK? */
}
region->GoingAway.connect (sigc::bind (sigc::mem_fun (*this, &Diskstream::remove_region_from_last_capture), boost::weak_ptr<Region>(region)));
scoped_connect (region->GoingAway, boost::bind (&Diskstream::remove_region_from_last_capture, this, boost::weak_ptr<Region>(region)));
_last_capture_regions.push_back (region);

View File

@@ -21,7 +21,6 @@
#include <cstdlib>
#include <sigc++/bind.h>
#include "ardour/types.h"
#include "ardour/configuration.h"
@@ -103,12 +102,10 @@ AudioPlaylist::AudioPlaylist (boost::shared_ptr<const AudioPlaylist> other, nfra
AudioPlaylist::~AudioPlaylist ()
{
GoingAway (); /* EMIT SIGNAL */
drop_references ();
/* drop connections to signals */
notify_callbacks ();
_crossfades.clear ();
}
@@ -531,8 +528,8 @@ AudioPlaylist::add_crossfade (boost::shared_ptr<Crossfade> xfade)
} else {
_crossfades.push_back (xfade);
xfade->Invalidated.connect (sigc::mem_fun (*this, &AudioPlaylist::crossfade_invalidated));
xfade->StateChanged.connect (sigc::mem_fun (*this, &AudioPlaylist::crossfade_changed));
scoped_connect (xfade->Invalidated, boost::bind (&AudioPlaylist::crossfade_invalidated, this, _1));
scoped_connect (xfade->StateChanged, boost::bind (&AudioPlaylist::crossfade_changed, this, _1));
notify_crossfade_added (xfade);
}
@@ -587,8 +584,8 @@ AudioPlaylist::set_state (const XMLNode& node, int version)
try {
boost::shared_ptr<Crossfade> xfade = boost::shared_ptr<Crossfade> (new Crossfade (*((const Playlist *)this), *child));
_crossfades.push_back (xfade);
xfade->Invalidated.connect (sigc::mem_fun (*this, &AudioPlaylist::crossfade_invalidated));
xfade->StateChanged.connect (sigc::mem_fun (*this, &AudioPlaylist::crossfade_changed));
scoped_connect (xfade->Invalidated, boost::bind (&AudioPlaylist::crossfade_invalidated, this, _1));
scoped_connect (xfade->StateChanged, boost::bind (&AudioPlaylist::crossfade_changed, this, _1));
NewCrossfade(xfade);
}
@@ -791,7 +788,7 @@ AudioPlaylist::crossfades_at (nframes_t frame, Crossfades& clist)
}
void
AudioPlaylist::foreach_crossfade (sigc::slot<void, boost::shared_ptr<Crossfade> > s)
AudioPlaylist::foreach_crossfade (boost::function<void (boost::shared_ptr<Crossfade>)> s)
{
RegionLock rl (this, false);
for (Crossfades::iterator i = _crossfades.begin(); i != _crossfades.end(); ++i) {

View File

@@ -170,7 +170,7 @@ AudioPlaylistImporter::_prepare_move ()
{
// Rename
while (session.playlists->by_name (name) || !handler.check_name (name)) {
std::pair<bool, string> rename_pair = Rename (_("A playlist with this name already exists, please rename it."), name);
std::pair<bool, string> rename_pair = *Rename (_("A playlist with this name already exists, please rename it."), name);
if (!rename_pair.first) {
return false;
}

View File

@@ -17,9 +17,6 @@
*/
#include <sigc++/retype.h>
#include <sigc++/retype_return.h>
#include <sigc++/bind.h>
#include "pbd/error.h"
#include "pbd/enumwriter.h"
@@ -185,7 +182,7 @@ AudioTrack::set_diskstream (boost::shared_ptr<AudioDiskstream> ds, void * /*src*
if (audio_diskstream()->deprecated_io_node) {
if (!IO::connecting_legal) {
IO::ConnectingLegal.connect (sigc::mem_fun (*this, &AudioTrack::deprecated_use_diskstream_connections));
scoped_connect (IO::ConnectingLegal, boost::bind (&AudioTrack::deprecated_use_diskstream_connections, this));
} else {
deprecated_use_diskstream_connections ();
}
@@ -307,7 +304,7 @@ AudioTrack::_set_state (const XMLNode& node, int version, bool call_base)
pending_state = const_cast<XMLNode*> (&node);
if (_session.state_of_the_state() & Session::Loading) {
_session.StateReady.connect (sigc::mem_fun (*this, &AudioTrack::set_state_part_two));
scoped_connect (_session.StateReady, boost::bind (&AudioTrack::set_state_part_two, this));
} else {
set_state_part_two ();
}

View File

@@ -240,7 +240,7 @@ AudioTrackImporter::_prepare_move ()
/* Rename */
while (session.route_by_name (name) || !track_handler.check_name (name)) {
std::pair<bool, string> rename_pair = Rename (_("A playlist with this name already exists, please rename it."), name);
std::pair<bool, string> rename_pair = *Rename (_("A playlist with this name already exists, please rename it."), name);
if (!rename_pair.first) {
return false;
}

View File

@@ -66,7 +66,6 @@ AudioEngine::AudioEngine (string client_name)
{
_instance = this; /* singleton */
session = 0;
session_remove_pending = false;
_running = false;
_has_run = false;
@@ -158,24 +157,24 @@ AudioEngine::start ()
nframes_t blocksize = jack_get_buffer_size (_priv_jack);
if (session) {
if (_session) {
BootMessage (_("Connect session to engine"));
session->set_block_size (blocksize);
session->set_frame_rate (jack_get_sample_rate (_priv_jack));
_session->set_block_size (blocksize);
_session->set_frame_rate (jack_get_sample_rate (_priv_jack));
/* page in as much of the session process code as we
can before we really start running.
*/
session->process (blocksize);
session->process (blocksize);
session->process (blocksize);
session->process (blocksize);
session->process (blocksize);
session->process (blocksize);
session->process (blocksize);
session->process (blocksize);
_session->process (blocksize);
_session->process (blocksize);
_session->process (blocksize);
_session->process (blocksize);
_session->process (blocksize);
_session->process (blocksize);
_session->process (blocksize);
_session->process (blocksize);
}
_processed_frames = 0;
@@ -192,7 +191,7 @@ AudioEngine::start ()
jack_set_freewheel_callback (_priv_jack, _freewheel_callback, this);
jack_set_port_registration_callback (_priv_jack, _registration_callback, this);
if (session && session->config.get_jack_time_master()) {
if (_session && _session->config.get_jack_time_master()) {
jack_set_timebase_callback (_priv_jack, 0, _jack_timebase_callback, this);
}
@@ -269,8 +268,8 @@ void
AudioEngine::jack_timebase_callback (jack_transport_state_t state, nframes_t nframes,
jack_position_t* pos, int new_position)
{
if (_jack && session && session->synced_to_jack()) {
session->jack_timebase_callback (state, nframes, pos, new_position);
if (_jack && _session && _session->synced_to_jack()) {
_session->jack_timebase_callback (state, nframes, pos, new_position);
}
}
@@ -283,8 +282,8 @@ AudioEngine::_jack_sync_callback (jack_transport_state_t state, jack_position_t*
int
AudioEngine::jack_sync_callback (jack_transport_state_t state, jack_position_t* pos)
{
if (_jack && session) {
return session->jack_sync_callback (state, pos);
if (_jack && _session) {
return _session->jack_sync_callback (state, pos);
}
return true;
@@ -372,7 +371,7 @@ AudioEngine::process_callback (nframes_t nframes)
next_processed_frames = _processed_frames + nframes;
}
if (!tm.locked() || session == 0) {
if (!tm.locked() || _session == 0) {
/* return having done nothing */
_processed_frames = next_processed_frames;
return 0;
@@ -380,7 +379,7 @@ AudioEngine::process_callback (nframes_t nframes)
if (session_remove_pending) {
/* perform the actual session removal */
session = 0;
_session = 0;
session_remove_pending = false;
session_removed.signal();
_processed_frames = next_processed_frames;
@@ -402,14 +401,16 @@ AudioEngine::process_callback (nframes_t nframes)
}
if (_freewheeling) {
/* emit the Freewheel signal and stop freewheeling in the event of trouble */
if (Freewheel (nframes)) {
/* emit the Freewheel signal and stop freewheeling in the event of trouble
* the indirection is to pick up the return value of the signal.
*/
if (*Freewheel (nframes)) {
jack_set_freewheel (_priv_jack, false);
}
} else {
if (session) {
session->process (nframes);
if (_session) {
_session->process (nframes);
}
}
@@ -442,7 +443,7 @@ AudioEngine::process_callback (nframes_t nframes)
last_monitor_check = next_processed_frames;
}
if (session->silent()) {
if (_session->silent()) {
boost::shared_ptr<Ports> p = ports.reader();
@@ -483,8 +484,8 @@ AudioEngine::jack_sample_rate_callback (nframes_t nframes)
monitor_check_interval = nframes / 10;
last_monitor_check = 0;
if (session) {
session->set_frame_rate (nframes);
if (_session) {
_session->set_frame_rate (nframes);
}
SampleRateChanged (nframes); /* EMIT SIGNAL */
@@ -514,8 +515,8 @@ AudioEngine::jack_bufsize_callback (nframes_t nframes)
(*i)->reset();
}
if (session) {
session->set_block_size (_buffer_size);
if (_session) {
_session->set_block_size (_buffer_size);
}
return 0;
@@ -536,7 +537,7 @@ AudioEngine::start_metering_thread ()
{
if (m_meter_thread == 0) {
g_atomic_int_set (&m_meter_exit, 0);
m_meter_thread = Glib::Thread::create (sigc::mem_fun(this, &AudioEngine::meter_thread),
m_meter_thread = Glib::Thread::create (boost::bind (&AudioEngine::meter_thread, this),
500000, true, true, Glib::THREAD_PRIORITY_NORMAL);
}
}
@@ -558,31 +559,31 @@ AudioEngine::set_session (Session *s)
{
Glib::Mutex::Lock pl (_process_lock);
if (!session) {
session = s;
SessionHandlePtr::set_session (s);
if (_session) {
nframes_t blocksize = jack_get_buffer_size (_jack);
/* page in as much of the session process code as we
can before we really start running.
*/
boost::shared_ptr<Ports> p = ports.reader();
for (Ports::iterator i = p->begin(); i != p->end(); ++i) {
(*i)->cycle_start (blocksize);
}
s->process (blocksize);
s->process (blocksize);
s->process (blocksize);
s->process (blocksize);
s->process (blocksize);
s->process (blocksize);
s->process (blocksize);
s->process (blocksize);
_session->process (blocksize);
_session->process (blocksize);
_session->process (blocksize);
_session->process (blocksize);
_session->process (blocksize);
_session->process (blocksize);
_session->process (blocksize);
_session->process (blocksize);
for (Ports::iterator i = p->begin(); i != p->end(); ++i) {
(*i)->cycle_end (blocksize);
}
@@ -596,13 +597,13 @@ AudioEngine::remove_session ()
if (_running) {
if (session) {
if (_session) {
session_remove_pending = true;
session_removed.wait(_process_lock);
}
} else {
session = 0;
SessionHandlePtr::set_session (0);
}
remove_all_ports ();
@@ -1081,8 +1082,8 @@ int
AudioEngine::reset_timebase ()
{
GET_PRIVATE_JACK_POINTER_RET (_jack, -1);
if (session) {
if (session->config.get_jack_time_master()) {
if (_session) {
if (_session->config.get_jack_time_master()) {
return jack_set_timebase_callback (_priv_jack, 0, _jack_timebase_callback, this);
} else {
return jack_release_timebase (_jack);
@@ -1214,11 +1215,11 @@ AudioEngine::reconnect_to_jack ()
GET_PRIVATE_JACK_POINTER_RET (_jack,-1);
if (session) {
session->reset_jack_connection (_priv_jack);
if (_session) {
_session->reset_jack_connection (_priv_jack);
nframes_t blocksize = jack_get_buffer_size (_priv_jack);
session->set_block_size (blocksize);
session->set_frame_rate (jack_get_sample_rate (_priv_jack));
_session->set_block_size (blocksize);
_session->set_frame_rate (jack_get_sample_rate (_priv_jack));
_raw_buffer_sizes[DataType::AUDIO] = blocksize * sizeof(float);
cout << "FIXME: Assuming maximum MIDI buffer size " << blocksize * 4 << "bytes" << endl;
@@ -1237,7 +1238,7 @@ AudioEngine::reconnect_to_jack ()
jack_set_sync_callback (_priv_jack, _jack_sync_callback, this);
jack_set_freewheel_callback (_priv_jack, _freewheel_callback, this);
if (session && session->config.get_jack_time_master()) {
if (_session && _session->config.get_jack_time_master()) {
jack_set_timebase_callback (_priv_jack, 0, _jack_timebase_callback, this);
}

View File

@@ -70,7 +70,7 @@ using namespace Glib;
ustring AudioFileSource::peak_dir = "";
sigc::signal<void> AudioFileSource::HeaderPositionOffsetChanged;
boost::signals2::signal<void()> AudioFileSource::HeaderPositionOffsetChanged;
uint64_t AudioFileSource::header_position_offset = 0;
/* XXX maybe this too */

View File

@@ -24,8 +24,6 @@
#include <set>
#include <sigc++/bind.h>
#include <sigc++/class_slot.h>
#include <glibmm/thread.h>
@@ -98,7 +96,7 @@ AudioRegion::AudioRegion (boost::shared_ptr<AudioSource> src, nframes_t start, n
{
boost::shared_ptr<AudioFileSource> afs = boost::dynamic_pointer_cast<AudioFileSource> (src);
if (afs) {
afs->HeaderPositionOffsetChanged.connect (sigc::mem_fun (*this, &AudioRegion::source_offset_changed));
scoped_connect (afs->HeaderPositionOffsetChanged, boost::bind (&AudioRegion::source_offset_changed, this));
}
init ();
@@ -115,7 +113,7 @@ AudioRegion::AudioRegion (boost::shared_ptr<AudioSource> src, nframes_t start, n
{
boost::shared_ptr<AudioFileSource> afs = boost::dynamic_pointer_cast<AudioFileSource> (src);
if (afs) {
afs->HeaderPositionOffsetChanged.connect (sigc::mem_fun (*this, &AudioRegion::source_offset_changed));
scoped_connect (afs->HeaderPositionOffsetChanged, boost::bind (&AudioRegion::source_offset_changed, this));
}
init ();
@@ -207,7 +205,7 @@ AudioRegion::AudioRegion (boost::shared_ptr<const AudioRegion> other, const Sour
boost::shared_ptr<AudioFileSource> afs = boost::dynamic_pointer_cast<AudioFileSource> ((*i));
if (afs) {
afs->HeaderPositionOffsetChanged.connect (sigc::mem_fun (*this, &AudioRegion::source_offset_changed));
scoped_connect (afs->HeaderPositionOffsetChanged, boost::bind (&AudioRegion::source_offset_changed, this));
}
}
@@ -231,7 +229,7 @@ AudioRegion::AudioRegion (boost::shared_ptr<AudioSource> src, const XMLNode& nod
{
boost::shared_ptr<AudioFileSource> afs = boost::dynamic_pointer_cast<AudioFileSource> (src);
if (afs) {
afs->HeaderPositionOffsetChanged.connect (sigc::mem_fun (*this, &AudioRegion::source_offset_changed));
scoped_connect (afs->HeaderPositionOffsetChanged, boost::bind (&AudioRegion::source_offset_changed, this));
}
init ();
@@ -272,7 +270,7 @@ void
AudioRegion::connect_to_analysis_changed ()
{
for (SourceList::const_iterator i = _sources.begin(); i != _sources.end(); ++i) {
(*i)->AnalysisChanged.connect (sigc::mem_fun (*this, &AudioRegion::invalidate_transients));
scoped_connect ((*i)->AnalysisChanged, boost::bind (&AudioRegion::invalidate_transients, this));
}
}
@@ -287,7 +285,7 @@ AudioRegion::connect_to_header_position_offset_changed ()
unique_srcs.insert (*i);
boost::shared_ptr<AudioFileSource> afs = boost::dynamic_pointer_cast<AudioFileSource> (*i);
if (afs) {
afs->HeaderPositionOffsetChanged.connect (sigc::mem_fun (*this, &AudioRegion::source_offset_changed));
scoped_connect (afs->HeaderPositionOffsetChanged, boost::bind (&AudioRegion::source_offset_changed, this));
}
}
}
@@ -296,9 +294,9 @@ AudioRegion::connect_to_header_position_offset_changed ()
void
AudioRegion::listen_to_my_curves ()
{
_envelope->StateChanged.connect (sigc::mem_fun (*this, &AudioRegion::envelope_changed));
_fade_in->StateChanged.connect (sigc::mem_fun (*this, &AudioRegion::fade_in_changed));
_fade_out->StateChanged.connect (sigc::mem_fun (*this, &AudioRegion::fade_out_changed));
scoped_connect (_envelope->StateChanged, boost::bind (&AudioRegion::envelope_changed, this));
scoped_connect (_fade_in->StateChanged, boost::bind (&AudioRegion::fade_in_changed, this));
scoped_connect (_fade_out->StateChanged, boost::bind (&AudioRegion::fade_out_changed, this));
}
void

View File

@@ -149,7 +149,7 @@ AudioSource::update_length (sframes_t pos, sframes_t cnt)
***********************************************************************/
bool
AudioSource::peaks_ready (sigc::slot<void> the_slot, sigc::connection& conn) const
AudioSource::peaks_ready (boost::function<void()> doThisWhenReady, boost::signals2::connection& connect_here_if_not) const
{
bool ret;
Glib::Mutex::Lock lm (_peaks_ready_lock);
@@ -159,7 +159,7 @@ AudioSource::peaks_ready (sigc::slot<void> the_slot, sigc::connection& conn) con
*/
if (!(ret = _peaks_built)) {
conn = PeaksReady.connect (the_slot);
connect_here_if_not = PeaksReady.connect (doThisWhenReady);
}
return ret;

View File

@@ -72,7 +72,7 @@ Auditioner::Auditioner (Session& s)
_main_outs->allow_pan_reset ();
_main_outs->reset_panner ();
_output->changed.connect (sigc::mem_fun (*this, &Auditioner::output_changed));
scoped_connect (_output->changed, boost::bind (&Auditioner::output_changed, this, _1, _2));
the_region.reset ((AudioRegion*) 0);
g_atomic_int_set (&_active, 0);

View File

@@ -23,7 +23,6 @@
#include <cmath>
#include <sstream>
#include <algorithm>
#include <sigc++/bind.h>
#include "ardour/automation_list.h"
#include "ardour/event_type_map.h"
#include "evoral/Curve.hpp"
@@ -36,7 +35,7 @@ using namespace std;
using namespace ARDOUR;
using namespace PBD;
sigc::signal<void,AutomationList *> AutomationList::AutomationListCreated;
boost::signals2::signal<void(AutomationList *)> AutomationList::AutomationListCreated;
#if 0
static void dumpit (const AutomationList& al, string prefix = "")
@@ -113,7 +112,7 @@ AutomationList::AutomationList (const XMLNode& node, Evoral::Parameter id)
AutomationList::~AutomationList()
{
GoingAway ();
drop_references ();
}
boost::shared_ptr<Evoral::ControlList>

View File

@@ -38,8 +38,8 @@ static float _write_data_rate;
namespace ARDOUR {
Butler::Butler(Session* s)
: session(s)
Butler::Butler(Session& s)
: SessionHandleRef (s)
, thread(0)
, audio_dstream_buffer_size(0)
, midi_dstream_buffer_size(0)
@@ -54,7 +54,7 @@ Butler::~Butler()
int
Butler::start_thread()
{
const float rate = (float)session->frame_rate();
const float rate = (float)_session.frame_rate();
/* size is in Samples, not bytes */
audio_dstream_buffer_size = (uint32_t) floor (Config->get_audio_track_buffer_seconds() * rate);
@@ -194,7 +194,7 @@ Butler::thread_work ()
}
if (transport_work_requested()) {
session->butler_transport_work ();
_session.butler_transport_work ();
}
disk_work_outstanding = false;
@@ -203,7 +203,7 @@ Butler::thread_work ()
begin = get_microseconds();
boost::shared_ptr<Session::DiskstreamList> dsl = session->diskstream_list().reader ();
boost::shared_ptr<Session::DiskstreamList> dsl = _session.diskstream_list().reader ();
// for (i = dsl->begin(); i != dsl->end(); ++i) {
// cerr << "BEFORE " << (*i)->name() << ": pb = " << (*i)->playback_buffer_load() << " cp = " << (*i)->capture_buffer_load() << endl;
@@ -285,11 +285,11 @@ Butler::thread_work ()
}
}
if (err && session->actively_recording()) {
if (err && _session.actively_recording()) {
/* stop the transport and try to catch as much possible
captured state as we can.
*/
session->request_stop ();
_session.request_stop ();
}
if (i != dsl->end()) {
@@ -304,15 +304,15 @@ Butler::thread_work ()
if (compute_io) {
// there are no apparent users for this calculation?
end = get_microseconds();
if(end-begin > 0) {
_write_data_rate = (float) bytes / (float) (end - begin);
if (end - begin > 0) {
_write_data_rate = (float) bytes / (float) (end - begin);
} else {
_write_data_rate = 0; // Well, infinity would be better
_write_data_rate = 0; // Well, infinity would be better
}
}
if (!disk_work_outstanding) {
session->refresh_disk_space ();
_session.refresh_disk_space ();
}

View File

@@ -39,7 +39,6 @@ ControlProtocolManager* ControlProtocolManager::_instance = 0;
const string ControlProtocolManager::state_node_name = X_("ControlProtocols");
ControlProtocolManager::ControlProtocolManager ()
: _session (0)
{
}
@@ -63,36 +62,42 @@ ControlProtocolManager::~ControlProtocolManager()
}
void
ControlProtocolManager::set_session (Session& s)
ControlProtocolManager::set_session (Session* s)
{
_session = &s;
_session->GoingAway.connect (sigc::mem_fun (*this, &ControlProtocolManager::drop_session));
SessionHandlePtr::set_session (s);
for (list<ControlProtocolInfo*>::iterator i = control_protocol_info.begin(); i != control_protocol_info.end(); ++i) {
if ((*i)->requested || (*i)->mandatory) {
instantiate (**i);
(*i)->requested = false;
if (_session) {
Glib::Mutex::Lock lm (protocols_lock);
if ((*i)->protocol && (*i)->state) {
(*i)->protocol->set_state (*(*i)->state, Stateful::loading_state_version);
for (list<ControlProtocolInfo*>::iterator i = control_protocol_info.begin(); i != control_protocol_info.end(); ++i) {
if ((*i)->requested || (*i)->mandatory) {
instantiate (**i);
(*i)->requested = false;
if ((*i)->protocol && (*i)->state) {
(*i)->protocol->set_state (*(*i)->state, Stateful::loading_state_version);
}
}
}
}
}
void
ControlProtocolManager::drop_session ()
ControlProtocolManager::session_going_away()
{
_session = 0;
SessionHandlePtr::session_going_away ();
{
Glib::Mutex::Lock lm (protocols_lock);
for (list<ControlProtocol*>::iterator p = control_protocols.begin(); p != control_protocols.end(); ++p) {
delete *p;
}
control_protocols.clear ();
for (list<ControlProtocolInfo*>::iterator p = control_protocol_info.begin(); p != control_protocol_info.end(); ++p) {
// mark existing protocols as requested
// otherwise the ControlProtocol instances are not recreated in set_session
if ((*p)->protocol) {
(*p)->requested = true;
@@ -263,7 +268,7 @@ ControlProtocolManager::get_descriptor (string path)
}
void
ControlProtocolManager::foreach_known_protocol (sigc::slot<void,const ControlProtocolInfo*> method)
ControlProtocolManager::foreach_known_protocol (boost::function<void(const ControlProtocolInfo*)> method)
{
for (list<ControlProtocolInfo*>::iterator i = control_protocol_info.begin(); i != control_protocol_info.end(); ++i) {
method (*i);

View File

@@ -90,7 +90,7 @@ CoreAudioSource::init_cafile ()
CoreAudioSource::~CoreAudioSource ()
{
GoingAway (); /* EMIT SIGNAL */
drop_references ();
}
int

View File

@@ -17,7 +17,6 @@
*/
#include <sigc++/bind.h>
#include "pbd/stacktrace.h"
@@ -192,7 +191,6 @@ Crossfade::Crossfade (boost::shared_ptr<Crossfade> orig, boost::shared_ptr<Audio
Crossfade::~Crossfade ()
{
notify_callbacks ();
}
void

View File

@@ -42,9 +42,9 @@ using namespace std;
using namespace PBD;
using namespace ARDOUR;
sigc::signal<void,nframes_t> Delivery::CycleStart;
sigc::signal<int> Delivery::PannersLegal;
bool Delivery::panners_legal = false;
boost::signals2::signal<void(nframes_t)> Delivery::CycleStart;
boost::signals2::signal<int()> Delivery::PannersLegal;
bool Delivery::panners_legal = false;
/* deliver to an existing IO object */
@@ -64,10 +64,10 @@ Delivery::Delivery (Session& s, boost::shared_ptr<IO> io, boost::shared_ptr<Mute
_display_to_user = false;
if (_output) {
_output->changed.connect (sigc::mem_fun (*this, &Delivery::output_changed));
scoped_connect (_output->changed, boost::bind (&Delivery::output_changed, this, _1, _2));
}
CycleStart.connect (sigc::mem_fun (*this, &Delivery::cycle_start));
scoped_connect (CycleStart, boost::bind (&Delivery::cycle_start, this, _1));
}
/* deliver to a new IO object */
@@ -88,10 +88,10 @@ Delivery::Delivery (Session& s, boost::shared_ptr<MuteMaster> mm, const string&
_display_to_user = false;
if (_output) {
_output->changed.connect (sigc::mem_fun (*this, &Delivery::output_changed));
scoped_connect (_output->changed, boost::bind (&Delivery::output_changed, this, _1, _2));
}
CycleStart.connect (sigc::mem_fun (*this, &Delivery::cycle_start));
scoped_connect (CycleStart, boost::bind (&Delivery::cycle_start, this, _1));
}
/* deliver to a new IO object, reconstruct from XML */
@@ -116,10 +116,10 @@ Delivery::Delivery (Session& s, boost::shared_ptr<MuteMaster> mm, const XMLNode&
}
if (_output) {
_output->changed.connect (sigc::mem_fun (*this, &Delivery::output_changed));
scoped_connect (_output->changed, boost::bind (&Delivery::output_changed, this, _1, _2));
}
CycleStart.connect (sigc::mem_fun (*this, &Delivery::cycle_start));
scoped_connect (CycleStart, boost::bind (&Delivery::cycle_start, this, _1));
}
/* deliver to an existing IO object, reconstruct from XML */
@@ -144,10 +144,10 @@ Delivery::Delivery (Session& s, boost::shared_ptr<IO> out, boost::shared_ptr<Mut
}
if (_output) {
_output->changed.connect (sigc::mem_fun (*this, &Delivery::output_changed));
scoped_connect (_output->changed, boost::bind (&Delivery::output_changed, this, _1, _2));
}
CycleStart.connect (sigc::mem_fun (*this, &Delivery::cycle_start));
scoped_connect (CycleStart, boost::bind (&Delivery::cycle_start, this, _1));
}
std::string
@@ -419,7 +419,7 @@ Delivery::reset_panner ()
}
} else {
panner_legal_c.disconnect ();
panner_legal_c = PannersLegal.connect (sigc::mem_fun (*this, &Delivery::panners_became_legal));
panner_legal_c = PannersLegal.connect (boost::bind (&Delivery::panners_became_legal, this));
}
}
@@ -465,7 +465,7 @@ int
Delivery::reset_panners ()
{
panners_legal = true;
return PannersLegal ();
return *PannersLegal ();
}

View File

@@ -31,7 +31,6 @@
#include <sys/stat.h>
#include <sys/mman.h>
#include <sigc++/bind.h>
#include "pbd/error.h"
#include "pbd/basename.h"
@@ -69,8 +68,8 @@ using namespace PBD;
*/
ARDOUR::nframes_t Diskstream::disk_io_chunk_frames = 1024 * 256;
sigc::signal<void> Diskstream::DiskOverrun;
sigc::signal<void> Diskstream::DiskUnderrun;
boost::signals2::signal<void()> Diskstream::DiskOverrun;
boost::signals2::signal<void()> Diskstream::DiskUnderrun;
Diskstream::Diskstream (Session &sess, const string &name, Flag flag)
: SessionObject(sess, name)
@@ -143,13 +142,13 @@ Diskstream::set_route (Route& r)
_io = _route->input();
ic_connection.disconnect();
ic_connection = _io->changed.connect (sigc::mem_fun (*this, &Diskstream::handle_input_change));
ic_connection = _io->changed.connect (boost::bind (&Diskstream::handle_input_change, this, _1, _2));
input_change_pending = ConfigurationChanged;
non_realtime_input_change ();
set_align_style_from_io ();
_route->GoingAway.connect (sigc::mem_fun (*this, &Diskstream::route_going_away));
scoped_connect (_route->GoingAway, boost::bind (&Diskstream::route_going_away, this));
}
void
@@ -327,9 +326,7 @@ Diskstream::use_playlist (boost::shared_ptr<Playlist> playlist)
return 0;
}
plmod_connection.disconnect ();
plgone_connection.disconnect ();
plregion_connection.disconnect ();
playlist_connections.drop_connections ();
if (_playlist) {
_playlist->release();
@@ -342,9 +339,9 @@ Diskstream::use_playlist (boost::shared_ptr<Playlist> playlist)
reset_write_sources (false);
}
plmod_connection = _playlist->Modified.connect (sigc::mem_fun (*this, &Diskstream::playlist_modified));
plgone_connection = _playlist->GoingAway.connect (sigc::bind (sigc::mem_fun (*this, &Diskstream::playlist_deleted), boost::weak_ptr<Playlist>(_playlist)));
plregion_connection = _playlist->RangesMoved.connect (sigc::mem_fun (*this, &Diskstream::playlist_ranges_moved));
playlist_connections.add_connection (_playlist->Modified.connect (boost::bind (&Diskstream::playlist_modified, this)));
playlist_connections.add_connection (_playlist->GoingAway.connect (boost::bind (&Diskstream::playlist_deleted, this, boost::weak_ptr<Playlist>(_playlist))));
playlist_connections.add_connection (_playlist->RangesMoved.connect (boost::bind (&Diskstream::playlist_ranges_moved, this, _1)));
}
/* don't do this if we've already asked for it *or* if we are setting up
@@ -457,12 +454,11 @@ Diskstream::playlist_ranges_moved (list< Evoral::RangeMove<nframes_t> > const &
}
/* move processor automation */
_route->foreach_processor (sigc::bind (sigc::mem_fun (*this, &Diskstream::move_processor_automation), movements_frames));
_route->foreach_processor (boost::bind (&Diskstream::move_processor_automation, this, _1, movements_frames));
}
void
Diskstream::move_processor_automation (boost::weak_ptr<Processor> p,
list< Evoral::RangeMove<nframes_t> > const & movements_frames)
Diskstream::move_processor_automation (boost::weak_ptr<Processor> p, list< Evoral::RangeMove<nframes_t> > const & movements_frames)
{
boost::shared_ptr<Processor> processor (p.lock ());
if (!processor) {

View File

@@ -32,8 +32,8 @@ using namespace std;
using namespace PBD;
using namespace ARDOUR;
sigc::signal <std::pair<bool, string>, string, string> ElementImporter::Rename;
sigc::signal <bool, string> ElementImporter::Prompt;
boost::signals2::signal <std::pair<bool, string> (string, string)> ElementImporter::Rename;
boost::signals2::signal <bool (string)> ElementImporter::Prompt;
ElementImporter::ElementImporter (XMLTree const & source, ARDOUR::Session & session) :
source (source),

View File

@@ -108,7 +108,7 @@ RegionExportChannelFactory::RegionExportChannelFactory (Session * session, Audio
throw ExportFailed ("Unhandled type in ExportChannelFactory constructor");
}
session->ProcessExport.connect (sigc::hide (sigc::mem_fun (*this, &RegionExportChannelFactory::new_cycle_started)));
export_connection = session->ProcessExport.connect (boost::bind (&RegionExportChannelFactory::new_cycle_started, this, _1));
buffers.set_count (ChanCount (DataType::AUDIO, n_channels));
buffers.ensure_buffers (DataType::AUDIO, n_channels, frames_per_cycle);

View File

@@ -211,13 +211,13 @@ void
ExportFormatManager::add_compatibility (CompatPtr ptr)
{
compatibilities.push_back (ptr);
ptr->SelectChanged.connect (sigc::bind (sigc::mem_fun (*this, &ExportFormatManager::change_compatibility_selection), WeakCompatPtr (ptr)));
scoped_connect (ptr->SelectChanged, boost::bind (&ExportFormatManager::change_compatibility_selection, this, _1, WeakCompatPtr (ptr)));
}
void
ExportFormatManager::add_quality (QualityPtr ptr)
{
ptr->SelectChanged.connect (sigc::bind (sigc::mem_fun (*this, &ExportFormatManager::change_quality_selection), WeakQualityPtr (ptr)));
scoped_connect (ptr->SelectChanged, boost::bind (&ExportFormatManager::change_quality_selection, this, _1, WeakQualityPtr (ptr)));
qualities.push_back (ptr);
}
@@ -225,7 +225,7 @@ void
ExportFormatManager::add_format (FormatPtr ptr)
{
formats.push_back (ptr);
ptr->SelectChanged.connect (sigc::bind (sigc::mem_fun (*this, &ExportFormatManager::change_format_selection), WeakFormatPtr (ptr)));
scoped_connect (ptr->SelectChanged, boost::bind (&ExportFormatManager::change_format_selection, this, _1, WeakFormatPtr (ptr)));
universal_set = universal_set->get_union (*ptr);
/* Encoding options */
@@ -233,15 +233,15 @@ ExportFormatManager::add_format (FormatPtr ptr)
boost::shared_ptr<HasSampleFormat> hsf;
if (hsf = boost::dynamic_pointer_cast<HasSampleFormat> (ptr)) {
hsf->SampleFormatSelectChanged.connect (sigc::mem_fun (*this, &ExportFormatManager::change_sample_format_selection));
hsf->DitherTypeSelectChanged.connect (sigc::mem_fun (*this, &ExportFormatManager::change_dither_type_selection));
scoped_connect (hsf->SampleFormatSelectChanged, boost::bind (&ExportFormatManager::change_sample_format_selection, this, _1, _2));
scoped_connect (hsf->DitherTypeSelectChanged, boost::bind (&ExportFormatManager::change_dither_type_selection, this, _1, _2));
}
}
void
ExportFormatManager::add_sample_rate (SampleRatePtr ptr)
{
ptr->SelectChanged.connect (sigc::bind (sigc::mem_fun (*this, &ExportFormatManager::change_sample_rate_selection), WeakSampleRatePtr (ptr)));
scoped_connect (ptr->SelectChanged, boost::bind (&ExportFormatManager::change_sample_rate_selection, this, _1, WeakSampleRatePtr (ptr)));
sample_rates.push_back (ptr);
}

View File

@@ -59,9 +59,10 @@ HasSampleFormat::add_sample_format (ExportFormatBase::SampleFormat format)
SampleFormatPtr ptr (new SampleFormatState (format, get_sample_format_name (format)));
sample_format_states.push_back (ptr);
ptr->SelectChanged.connect (sigc::bind (SampleFormatSelectChanged.make_slot(), WeakSampleFormatPtr (ptr)));
ptr->SelectChanged.connect (sigc::mem_fun (*this, &HasSampleFormat::update_sample_format_selection));
ptr->CompatibleChanged.connect (sigc::bind (SampleFormatCompatibleChanged.make_slot(), WeakSampleFormatPtr (ptr)));
scoped_connect (ptr->SelectChanged, boost::bind (&HasSampleFormat::update_sample_format_selection, this, _1));
// BOOST SIGNALS how to connect one signal to another
// scoped_connect (ptr->SelectChanged, boost::bind (SampleFormatSelectChanged, _1, WeakSampleFormatPtr (ptr));
// scoped_connect (ptr->CompatibleChanged, boost::bind (SampleFormatCompatibleChanged, _1, WeakSampleFormatPtr (ptr));
}
void
@@ -69,9 +70,10 @@ HasSampleFormat::add_dither_type (ExportFormatBase::DitherType type, Glib::ustri
{
DitherTypePtr ptr (new DitherTypeState (type, name));
dither_type_states.push_back (ptr);
ptr->SelectChanged.connect (sigc::bind (DitherTypeSelectChanged.make_slot(), WeakDitherTypePtr (ptr)));
ptr->SelectChanged.connect (sigc::mem_fun (*this, &HasSampleFormat::update_dither_type_selection));
ptr->CompatibleChanged.connect (sigc::bind (DitherTypeCompatibleChanged.make_slot(), WeakDitherTypePtr (ptr)));
scoped_connect (ptr->SelectChanged, boost::bind (&HasSampleFormat::update_dither_type_selection, this, _1));
// BOOST SIGNALS how to connect one signal to another
// scoped_connect (ptr->SelectChanged, boost::bind (DitherTypeSelectChanged, _1, WeakDitherTypePtr (ptr));
// scoped_connect (ptr->CompatibleChanged, boost::bind (DitherTypeCompatibleChanged, _1, WeakDitherTypePtr (ptr));
}
HasSampleFormat::SampleFormatPtr

View File

@@ -98,15 +98,15 @@ ExportElementFactory::add_filename_copy (FilenamePtr other)
/*** ExportHandler ***/
ExportHandler::ExportHandler (Session & session) :
ExportElementFactory (session),
session (session),
export_status (session.get_export_status ()),
realtime (false)
ExportHandler::ExportHandler (Session & session)
: ExportElementFactory (session)
, session (session)
, export_status (session.get_export_status ())
, realtime (false)
{
processor.reset (new ExportProcessor (session));
files_written_connection = ExportProcessor::WritingFile.connect (sigc::mem_fun (files_written, &std::list<Glib::ustring>::push_back));
files_written_connection = ExportProcessor::WritingFile.connect (boost::bind (&ExportHandler::add_file, this, _1));
}
ExportHandler::~ExportHandler ()
@@ -121,6 +121,12 @@ ExportHandler::~ExportHandler ()
files_written_connection.disconnect();
}
void
ExportHandler::add_file (const Glib::ustring& str)
{
files_written.push_back (str);
}
bool
ExportHandler::add_export_config (TimespanPtr timespan, ChannelConfigPtr channel_config, FormatPtr format, FilenamePtr filename)
{
@@ -162,7 +168,7 @@ ExportHandler::do_export (bool rt)
realtime = rt;
session.ExportReadFinished.connect (sigc::mem_fun (*this, &ExportHandler::finish_timespan));
export_read_finished_connection = session.ExportReadFinished.connect (boost::bind (&ExportHandler::finish_timespan, this));
start_timespan ();
}
@@ -499,7 +505,7 @@ ExportHandler::start_timespan ()
/* connect stuff and start export */
current_timespan->process_connection = session.ProcessExport.connect (sigc::mem_fun (*current_timespan, &ExportTimespan::process));
current_timespan->process_connection = session.ProcessExport.connect (boost::bind (&ExportTimespan::process, current_timespan, _1));
session.start_audio_export (current_timespan->get_start(), realtime);
}
@@ -538,6 +544,7 @@ void
ExportHandler::timespan_thread_finished ()
{
channel_config_connection.disconnect();
export_read_finished_connection.disconnect ();
if (current_map_it != timespan_bounds.second) {
@@ -559,7 +566,7 @@ ExportHandler::timespan_thread_finished ()
cc = current_map_it->second.channel_config;
}
channel_config_connection = cc->FilesWritten.connect (sigc::mem_fun (*this, &ExportHandler::timespan_thread_finished));
channel_config_connection = cc->FilesWritten.connect (boost::bind (&ExportHandler::timespan_thread_finished, this));
++current_map_it;
} else { /* All files are written from current timespan, reset timespan and start new */

View File

@@ -38,7 +38,7 @@ using namespace PBD;
namespace ARDOUR
{
sigc::signal<void, Glib::ustring> ExportProcessor::WritingFile;
boost::signals2::signal<void (const Glib::ustring&)> ExportProcessor::WritingFile;
ExportProcessor::ExportProcessor (Session & session) :
session (session),

View File

@@ -109,7 +109,7 @@ apply_gain_to_buffer_t ARDOUR::apply_gain_to_buffer = 0;
mix_buffers_with_gain_t ARDOUR::mix_buffers_with_gain = 0;
mix_buffers_no_gain_t ARDOUR::mix_buffers_no_gain = 0;
sigc::signal<void,std::string> ARDOUR::BootMessage;
boost::signals2::signal<void(std::string)> ARDOUR::BootMessage;
void ARDOUR::setup_enum_writer ();

View File

@@ -27,20 +27,20 @@
using namespace std;
using namespace ARDOUR;
sigc::signal<void,nframes_t> InternalReturn::CycleStart;
boost::signals2::signal<void(nframes_t)> InternalReturn::CycleStart;
InternalReturn::InternalReturn (Session& s)
: Return (s, true)
, user_count (0)
{
CycleStart.connect (sigc::mem_fun (*this, &InternalReturn::cycle_start));
scoped_connect (CycleStart, boost::bind (&InternalReturn::cycle_start, this, _1));
}
InternalReturn::InternalReturn (Session& s, const XMLNode& node)
: Return (s, node, true)
, user_count (0)
{
CycleStart.connect (sigc::mem_fun (*this, &InternalReturn::cycle_start));
scoped_connect (CycleStart, boost::bind (&InternalReturn::cycle_start, this, _1));
}
void

View File

@@ -43,8 +43,8 @@ InternalSend::InternalSend (Session& s, boost::shared_ptr<MuteMaster> mm, boost:
set_name (sendto->name());
_send_to->GoingAway.connect (sigc::mem_fun (*this, &InternalSend::send_to_going_away));
_send_to->NameChanged.connect (sigc::mem_fun (*this, &InternalSend::send_to_name_changed));
scoped_connect (_send_to->GoingAway, boost::bind (&InternalSend::send_to_going_away, this));
scoped_connect (_send_to->NameChanged, boost::bind (&InternalSend::send_to_name_changed, this));
}
InternalSend::InternalSend (Session& s, boost::shared_ptr<MuteMaster> mm, const XMLNode& node)
@@ -187,7 +187,7 @@ InternalSend::set_our_state (const XMLNode& node, int version)
*/
if (!IO::connecting_legal) {
connect_c = IO::ConnectingLegal.connect (sigc::mem_fun (*this, &InternalSend::connect_when_legal));
connect_c = IO::ConnectingLegal.connect (boost::bind (&InternalSend::connect_when_legal, this));
} else {
connect_when_legal ();
}

View File

@@ -22,7 +22,6 @@
#include <locale.h>
#include <errno.h>
#include <sigc++/bind.h>
#include <glibmm.h>
#include <glibmm/thread.h>
@@ -68,8 +67,8 @@ using namespace PBD;
const string IO::state_node_name = "IO";
bool IO::connecting_legal = false;
sigc::signal<int> IO::ConnectingLegal;
sigc::signal<void,ChanCount> IO::PortCountChanged;
boost::signals2::signal<int()> IO::ConnectingLegal;
boost::signals2::signal<void(ChanCount)> IO::PortCountChanged;
/** @param default_type The type of port that will be created by ensure_io
* and friends if no type is explicitly requested (to avoid breakage).
@@ -124,13 +123,13 @@ IO::check_bundles_connected ()
}
void
IO::check_bundles (std::vector<UserBundleInfo>& list, const PortSet& ports)
IO::check_bundles (std::vector<UserBundleInfo*>& list, const PortSet& ports)
{
std::vector<UserBundleInfo> new_list;
std::vector<UserBundleInfo*> new_list;
for (std::vector<UserBundleInfo>::iterator i = list.begin(); i != list.end(); ++i) {
for (std::vector<UserBundleInfo*>::iterator i = list.begin(); i != list.end(); ++i) {
uint32_t const N = i->bundle->nchannels ();
uint32_t const N = (*i)->bundle->nchannels ();
if (_ports.num_ports (default_type()) < N) {
continue;
@@ -140,7 +139,7 @@ IO::check_bundles (std::vector<UserBundleInfo>& list, const PortSet& ports)
for (uint32_t j = 0; j < N; ++j) {
/* Every port on bundle channel j must be connected to our input j */
Bundle::PortList const pl = i->bundle->channel_ports (j);
Bundle::PortList const pl = (*i)->bundle->channel_ports (j);
for (uint32_t k = 0; k < pl.size(); ++k) {
if (ports.port(j)->connected_to (pl[k]) == false) {
ok = false;
@@ -156,7 +155,7 @@ IO::check_bundles (std::vector<UserBundleInfo>& list, const PortSet& ports)
if (ok) {
new_list.push_back (*i);
} else {
i->changed.disconnect ();
delete *i;
}
}
@@ -475,9 +474,9 @@ IO::state (bool /*full_state*/)
node->add_property ("direction", enum_2_string (_direction));
node->add_property ("default-type", _default_type.to_string());
for (std::vector<UserBundleInfo>::iterator i = _bundles_connected.begin(); i != _bundles_connected.end(); ++i) {
for (std::vector<UserBundleInfo*>::iterator i = _bundles_connected.begin(); i != _bundles_connected.end(); ++i) {
XMLNode* n = new XMLNode ("Bundle");
n->add_property ("name", i->bundle->name ());
n->add_property ("name", (*i)->bundle->name ());
node->add_child_nocopy (*n);
}
@@ -567,7 +566,7 @@ IO::set_state (const XMLNode& node, int version)
pending_state_node = new XMLNode (node);
pending_state_node_version = version;
pending_state_node_in = false;
connection_legal_c = ConnectingLegal.connect (sigc::mem_fun (*this, &IO::connecting_became_legal));
connection_legal_c = ConnectingLegal.connect (boost::bind (&IO::connecting_became_legal, this));
}
@@ -620,7 +619,7 @@ IO::set_state_2X (const XMLNode& node, int version, bool in)
pending_state_node = new XMLNode (node);
pending_state_node_version = version;
pending_state_node_in = in;
connection_legal_c = ConnectingLegal.connect (sigc::mem_fun (*this, &IO::connecting_became_legal));
connection_legal_c = ConnectingLegal.connect (boost::bind (&IO::connecting_became_legal, this));
}
return 0;
@@ -1164,14 +1163,14 @@ IO::connect_ports_to_bundle (boost::shared_ptr<Bundle> c, void* src)
if (ub) {
/* See if we already know about this one */
std::vector<UserBundleInfo>::iterator i = _bundles_connected.begin();
while (i != _bundles_connected.end() && i->bundle != ub) {
std::vector<UserBundleInfo*>::iterator i = _bundles_connected.begin();
while (i != _bundles_connected.end() && (*i)->bundle != ub) {
++i;
}
if (i == _bundles_connected.end()) {
/* We don't, so make a note */
_bundles_connected.push_back (UserBundleInfo (this, ub));
_bundles_connected.push_back (new UserBundleInfo (this, ub));
}
}
}
@@ -1194,12 +1193,13 @@ IO::disconnect_ports_from_bundle (boost::shared_ptr<Bundle> c, void* src)
boost::shared_ptr<UserBundle> ub = boost::dynamic_pointer_cast<UserBundle> (c);
if (ub) {
std::vector<UserBundleInfo>::iterator i = _bundles_connected.begin();
while (i != _bundles_connected.end() && i->bundle != ub) {
std::vector<UserBundleInfo*>::iterator i = _bundles_connected.begin();
while (i != _bundles_connected.end() && (*i)->bundle != ub) {
++i;
}
if (i != _bundles_connected.end()) {
delete *i;
_bundles_connected.erase (i);
}
}
@@ -1221,7 +1221,7 @@ int
IO::enable_connecting ()
{
connecting_legal = true;
return ConnectingLegal ();
return *ConnectingLegal ();
}
void
@@ -1362,8 +1362,8 @@ IO::bundles_connected ()
BundleList bundles;
/* User bundles */
for (std::vector<UserBundleInfo>::iterator i = _bundles_connected.begin(); i != _bundles_connected.end(); ++i) {
bundles.push_back (i->bundle);
for (std::vector<UserBundleInfo*>::iterator i = _bundles_connected.begin(); i != _bundles_connected.end(); ++i) {
bundles.push_back ((*i)->bundle);
}
/* Session bundles */
@@ -1399,9 +1399,7 @@ IO::bundles_connected ()
IO::UserBundleInfo::UserBundleInfo (IO* io, boost::shared_ptr<UserBundle> b)
{
bundle = b;
changed = b->Changed.connect (
sigc::mem_fun (*io, &IO::bundle_changed)
);
changed = b->Changed.connect (boost::bind (&IO::bundle_changed, io, _1));
}
std::string

View File

@@ -24,7 +24,6 @@
#include <unistd.h>
#include <sstream>
#include <sigc++/bind.h>
#include "pbd/xml++.h"
#include "pbd/enumwriter.h"
@@ -89,7 +88,6 @@ IOProcessor::IOProcessor (Session& s, boost::shared_ptr<IO> in, boost::shared_pt
IOProcessor::~IOProcessor ()
{
notify_callbacks ();
}
void

Some files were not shown because too many files have changed in this diff Show More