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:
@@ -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 ();
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
#ifndef __ardour_audio_diskstream_h__
|
||||
#define __ardour_audio_diskstream_h__
|
||||
|
||||
#include <sigc++/signal.h>
|
||||
|
||||
#include <cmath>
|
||||
#include <string>
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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>);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 ();
|
||||
|
||||
@@ -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:
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 ();
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
|
||||
@@ -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 */
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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; }
|
||||
|
||||
@@ -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 */
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
|
||||
@@ -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; }
|
||||
|
||||
|
||||
@@ -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; }
|
||||
|
||||
@@ -24,7 +24,6 @@
|
||||
#include <vector>
|
||||
|
||||
#include <stdint.h>
|
||||
#include <sigc++/signal.h>
|
||||
|
||||
#include "ardour/types.h"
|
||||
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
#ifndef __ardour_internal_return_h__
|
||||
#define __ardour_internal_return_h__
|
||||
|
||||
#include <sigc++/signal.h>
|
||||
|
||||
#include "ardour/ardour.h"
|
||||
#include "ardour/return.h"
|
||||
@@ -48,7 +47,7 @@ class InternalReturn : public Return
|
||||
BufferSet* get_buffers();
|
||||
void release_buffers();
|
||||
|
||||
static sigc::signal<void,nframes_t> CycleStart;
|
||||
static boost::signals2::signal<void(nframes_t)> CycleStart;
|
||||
|
||||
private:
|
||||
BufferSet buffers;
|
||||
|
||||
@@ -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 ();
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
#include <string>
|
||||
#include <dlfcn.h>
|
||||
|
||||
#include <sigc++/signal.h>
|
||||
|
||||
#include "pbd/stateful.h"
|
||||
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
#include <map>
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sigc++/signal.h>
|
||||
|
||||
#include <glibmm/thread.h>
|
||||
|
||||
@@ -109,15 +108,15 @@ class Location : public PBD::StatefulDestructible
|
||||
bool is_range_marker() const { return _flags & IsRangeMarker; }
|
||||
bool matches (Flags f) const { return _flags & f; }
|
||||
|
||||
sigc::signal<void,Location*> name_changed;
|
||||
sigc::signal<void,Location*> end_changed;
|
||||
sigc::signal<void,Location*> start_changed;
|
||||
boost::signals2::signal<void(Location*)> name_changed;
|
||||
boost::signals2::signal<void(Location*)> end_changed;
|
||||
boost::signals2::signal<void(Location*)> start_changed;
|
||||
|
||||
sigc::signal<void,Location*,void*> FlagsChanged;
|
||||
boost::signals2::signal<void(Location*,void*)> FlagsChanged;
|
||||
|
||||
/* this is sent only when both start&end change at the same time */
|
||||
|
||||
sigc::signal<void,Location*> changed;
|
||||
boost::signals2::signal<void(Location*)> changed;
|
||||
|
||||
/* CD Track / CD-Text info */
|
||||
|
||||
@@ -176,11 +175,11 @@ class Locations : public PBD::StatefulDestructible
|
||||
|
||||
void find_all_between (nframes64_t start, nframes64_t, LocationList&, Location::Flags);
|
||||
|
||||
sigc::signal<void,Location*> current_changed;
|
||||
sigc::signal<void> changed;
|
||||
sigc::signal<void,Location*> added;
|
||||
sigc::signal<void,Location*> removed;
|
||||
sigc::signal<void,Change> StateChanged;
|
||||
boost::signals2::signal<void(Location*)> current_changed;
|
||||
boost::signals2::signal<void()> changed;
|
||||
boost::signals2::signal<void(Location*)> added;
|
||||
boost::signals2::signal<void(Location*)> removed;
|
||||
boost::signals2::signal<void(Change)> StateChanged;
|
||||
|
||||
template<class T> void apply (T& obj, void (T::*method)(LocationList&)) {
|
||||
Glib::Mutex::Lock lm (lock);
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
#include <string>
|
||||
#include <dlfcn.h>
|
||||
|
||||
#include <sigc++/signal.h>
|
||||
|
||||
#include "pbd/stateful.h"
|
||||
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
#define __ardour_meter_h__
|
||||
|
||||
#include <vector>
|
||||
#include <sigc++/slot.h>
|
||||
#include "ardour/types.h"
|
||||
#include "ardour/processor.h"
|
||||
#include "pbd/fastlog.h"
|
||||
@@ -34,10 +33,10 @@ class Session;
|
||||
class Metering {
|
||||
public:
|
||||
static void update_meters ();
|
||||
static sigc::signal<void> Meter;
|
||||
static boost::signals2::signal<void()> Meter;
|
||||
|
||||
static sigc::connection connect (sigc::slot<void> the_slot);
|
||||
static void disconnect (sigc::connection& c);
|
||||
static boost::signals2::connection connect (boost::function<void()>);
|
||||
static void disconnect (boost::signals2::connection& c);
|
||||
|
||||
private:
|
||||
/* this object is not meant to be instantiated */
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
#ifndef __ardour_midi_diskstream_h__
|
||||
#define __ardour_midi_diskstream_h__
|
||||
|
||||
#include <sigc++/signal.h>
|
||||
|
||||
#include <cmath>
|
||||
#include <cassert>
|
||||
|
||||
@@ -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; }
|
||||
|
||||
@@ -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_ */
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 ();
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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 */
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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:
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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(); }
|
||||
|
||||
@@ -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>);
|
||||
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
#ifndef __ardour_return_h__
|
||||
#define __ardour_return_h__
|
||||
|
||||
#include <sigc++/signal.h>
|
||||
#include <string>
|
||||
|
||||
|
||||
|
||||
@@ -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 ();
|
||||
|
||||
@@ -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 ();
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
#ifndef __ardour_send_h__
|
||||
#define __ardour_send_h__
|
||||
|
||||
#include <sigc++/signal.h>
|
||||
#include <string>
|
||||
|
||||
#include "pbd/stateful.h"
|
||||
|
||||
@@ -38,14 +38,12 @@
|
||||
#include "pbd/error.h"
|
||||
#include "pbd/rcu.h"
|
||||
#include "pbd/statefuldestructible.h"
|
||||
#include "pbd/scoped_connections.h"
|
||||
#include "pbd/undo.h"
|
||||
|
||||
#include "midi++/mmc.h"
|
||||
#include "midi++/types.h"
|
||||
|
||||
#include "pbd/destructible.h"
|
||||
#include "pbd/stateful.h"
|
||||
|
||||
#include "ardour/ardour.h"
|
||||
#include "ardour/click.h"
|
||||
#include "ardour/chan_count.h"
|
||||
@@ -120,7 +118,7 @@ class VSTPlugin;
|
||||
|
||||
extern void setup_enum_writer ();
|
||||
|
||||
class Session : public PBD::StatefulDestructible, public SessionEventManager, public boost::noncopyable
|
||||
class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionList, public SessionEventManager, public boost::noncopyable
|
||||
{
|
||||
public:
|
||||
enum RecordState {
|
||||
@@ -166,14 +164,14 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
|
||||
void set_deletion_in_progress ();
|
||||
void clear_deletion_in_progress ();
|
||||
bool deletion_in_progress() const { return _state_of_the_state & Deletion; }
|
||||
sigc::signal<void> DirtyChanged;
|
||||
boost::signals2::signal<void()> DirtyChanged;
|
||||
|
||||
const SessionDirectory& session_directory () const { return *(_session_dir.get()); }
|
||||
|
||||
static sigc::signal<void> AutoBindingOn;
|
||||
static sigc::signal<void> AutoBindingOff;
|
||||
static boost::signals2::signal<void()> AutoBindingOn;
|
||||
static boost::signals2::signal<void()> AutoBindingOff;
|
||||
|
||||
static sigc::signal<void,std::string> Dialog;
|
||||
static boost::signals2::signal<void(std::string)> Dialog;
|
||||
|
||||
std::string sound_dir (bool with_path = true) const;
|
||||
std::string peak_dir () const;
|
||||
@@ -274,29 +272,29 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
|
||||
|
||||
/* Proxy signal for region hidden changes */
|
||||
|
||||
sigc::signal<void,boost::shared_ptr<Region> > RegionHiddenChange;
|
||||
boost::signals2::signal<void(boost::shared_ptr<Region>)> RegionHiddenChange;
|
||||
|
||||
/* Emitted when all i/o connections are complete */
|
||||
|
||||
sigc::signal<void> IOConnectionsComplete;
|
||||
boost::signals2::signal<void()> IOConnectionsComplete;
|
||||
|
||||
/* Record status signals */
|
||||
|
||||
sigc::signal<void> RecordStateChanged;
|
||||
boost::signals2::signal<void()> RecordStateChanged;
|
||||
|
||||
/* Transport mechanism signals */
|
||||
|
||||
sigc::signal<void> TransportStateChange; /* generic */
|
||||
sigc::signal<void,nframes64_t> PositionChanged; /* sent after any non-sequential motion */
|
||||
sigc::signal<void> DurationChanged;
|
||||
sigc::signal<void,nframes64_t> Xrun;
|
||||
sigc::signal<void> TransportLooped;
|
||||
boost::signals2::signal<void()> TransportStateChange; /* generic */
|
||||
boost::signals2::signal<void(nframes64_t)> PositionChanged; /* sent after any non-sequential motion */
|
||||
boost::signals2::signal<void()> DurationChanged;
|
||||
boost::signals2::signal<void(nframes64_t)> Xrun;
|
||||
boost::signals2::signal<void()> TransportLooped;
|
||||
|
||||
/** emitted when a locate has occurred */
|
||||
sigc::signal<void> Located;
|
||||
boost::signals2::signal<void()> Located;
|
||||
|
||||
sigc::signal<void,RouteList&> RouteAdded;
|
||||
sigc::signal<void> RouteGroupChanged;
|
||||
boost::signals2::signal<void(RouteList&)> RouteAdded;
|
||||
boost::signals2::signal<void()> RouteGroupChanged;
|
||||
|
||||
void queue_event (SessionEvent*);
|
||||
|
||||
@@ -350,9 +348,9 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
|
||||
|
||||
Locations *locations() { return &_locations; }
|
||||
|
||||
sigc::signal<void,Location*> auto_loop_location_changed;
|
||||
sigc::signal<void,Location*> auto_punch_location_changed;
|
||||
sigc::signal<void> locations_modified;
|
||||
boost::signals2::signal<void(Location*)> auto_loop_location_changed;
|
||||
boost::signals2::signal<void(Location*)> auto_punch_location_changed;
|
||||
boost::signals2::signal<void()> locations_modified;
|
||||
|
||||
void set_auto_punch_location (Location *);
|
||||
void set_auto_loop_location (Location *);
|
||||
@@ -377,8 +375,8 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
|
||||
static int rename_template (std::string old_name, std::string new_name);
|
||||
static int delete_template (std::string name);
|
||||
|
||||
sigc::signal<void,std::string> StateSaved;
|
||||
sigc::signal<void> StateReady;
|
||||
boost::signals2::signal<void(std::string)> StateSaved;
|
||||
boost::signals2::signal<void()> StateReady;
|
||||
|
||||
std::vector<std::string*>* possible_states() const;
|
||||
static std::vector<std::string*>* possible_states (std::string path);
|
||||
@@ -408,12 +406,12 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
|
||||
|
||||
RouteGroup *route_group_by_name (std::string);
|
||||
|
||||
sigc::signal<void,RouteGroup*> route_group_added;
|
||||
sigc::signal<void> route_group_removed;
|
||||
boost::signals2::signal<void(RouteGroup*)> route_group_added;
|
||||
boost::signals2::signal<void()> route_group_removed;
|
||||
|
||||
void foreach_route_group (sigc::slot<void,RouteGroup*> sl) {
|
||||
void foreach_route_group (boost::function<void(RouteGroup*)> f) {
|
||||
for (std::list<RouteGroup *>::iterator i = _route_groups.begin(); i != _route_groups.end(); i++) {
|
||||
sl (*i);
|
||||
f (*i);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -478,9 +476,9 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
|
||||
|
||||
nframes_t convert_to_frames_at (nframes_t position, AnyTime const &);
|
||||
|
||||
static sigc::signal<void> StartTimeChanged;
|
||||
static sigc::signal<void> EndTimeChanged;
|
||||
static sigc::signal<void> TimecodeOffsetChanged;
|
||||
static boost::signals2::signal<void()> StartTimeChanged;
|
||||
static boost::signals2::signal<void()> EndTimeChanged;
|
||||
static boost::signals2::signal<void()> TimecodeOffsetChanged;
|
||||
|
||||
std::vector<SyncSource> get_available_sync_options() const;
|
||||
void request_sync_source (Slave*);
|
||||
@@ -498,15 +496,15 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
|
||||
TempoMap& tempo_map() { return *_tempo_map; }
|
||||
|
||||
/// signals the current transport position in frames, bbt and timecode time (in that order)
|
||||
sigc::signal<void, const nframes_t&, const BBT_Time&, const Timecode::Time&> tick;
|
||||
boost::signals2::signal<void(const nframes_t&, const BBT_Time&, const Timecode::Time&)> tick;
|
||||
|
||||
/* region info */
|
||||
|
||||
void add_regions (std::vector<boost::shared_ptr<Region> >&);
|
||||
|
||||
sigc::signal<void,boost::weak_ptr<Region> > RegionAdded;
|
||||
sigc::signal<void,std::vector<boost::weak_ptr<Region> >& > RegionsAdded;
|
||||
sigc::signal<void,boost::weak_ptr<Region> > RegionRemoved;
|
||||
boost::signals2::signal<void(boost::weak_ptr<Region>)> RegionAdded;
|
||||
boost::signals2::signal<void(std::vector<boost::weak_ptr<Region> >&)> RegionsAdded;
|
||||
boost::signals2::signal<void(boost::weak_ptr<Region>)> RegionRemoved;
|
||||
|
||||
int region_name (std::string& result, std::string base = std::string(""), bool newlevel = false);
|
||||
std::string new_region_name (std::string);
|
||||
@@ -531,9 +529,9 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
|
||||
|
||||
int start_audio_export (nframes_t position, bool realtime);
|
||||
|
||||
sigc::signal<int, nframes_t> ProcessExport;
|
||||
sigc::signal<void> ExportReadFinished;
|
||||
static sigc::signal<void, std::string, std::string> Exported;
|
||||
boost::signals2::signal<int(nframes_t)> ProcessExport;
|
||||
boost::signals2::signal<void()> ExportReadFinished;
|
||||
static boost::signals2::signal<void(std::string, std::string)> Exported;
|
||||
|
||||
void add_source (boost::shared_ptr<Source>);
|
||||
void remove_source (boost::weak_ptr<Source>);
|
||||
@@ -550,16 +548,16 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
|
||||
0 for "yes, delete this playlist",
|
||||
1 for "no, don't delete this playlist".
|
||||
*/
|
||||
sigc::signal<int,boost::shared_ptr<Playlist> > AskAboutPlaylistDeletion;
|
||||
boost::signals2::signal<void(boost::shared_ptr<Playlist>)> AskAboutPlaylistDeletion;
|
||||
|
||||
/** handlers should return 0 for "ignore the rate mismatch",
|
||||
!0 for "do not use this session"
|
||||
*/
|
||||
static sigc::signal<int,nframes_t, nframes_t> AskAboutSampleRateMismatch;
|
||||
static boost::signals2::signal<int(nframes_t, nframes_t)> AskAboutSampleRateMismatch;
|
||||
|
||||
/** handlers should return !0 for use pending state, 0 for ignore it.
|
||||
*/
|
||||
static sigc::signal<int> AskAboutPendingState;
|
||||
static boost::signals2::signal<int()> AskAboutPendingState;
|
||||
|
||||
boost::shared_ptr<AudioFileSource> create_audio_source_for_session (ARDOUR::AudioDiskstream&, uint32_t which_channel, bool destructive);
|
||||
|
||||
@@ -577,8 +575,8 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
|
||||
void remove_named_selection (NamedSelection *);
|
||||
|
||||
template<class T> void foreach_named_selection (T& obj, void (T::*func)(NamedSelection&));
|
||||
sigc::signal<void> NamedSelectionAdded;
|
||||
sigc::signal<void> NamedSelectionRemoved;
|
||||
boost::signals2::signal<void()> NamedSelectionAdded;
|
||||
boost::signals2::signal<void()> NamedSelectionRemoved;
|
||||
|
||||
/* Curves and AutomationLists (TODO when they go away) */
|
||||
void add_automation_list(AutomationList*);
|
||||
@@ -597,7 +595,7 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
|
||||
void cancel_audition ();
|
||||
bool is_auditioning () const;
|
||||
|
||||
sigc::signal<void,bool> AuditionActive;
|
||||
boost::signals2::signal<void(bool)> AuditionActive;
|
||||
|
||||
/* flattening stuff */
|
||||
|
||||
@@ -619,8 +617,8 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
|
||||
void set_listen (boost::shared_ptr<RouteList>, bool, SessionEvent::RTeventCallback after = rt_cleanup, bool group_override = false);
|
||||
void set_record_enable (boost::shared_ptr<RouteList>, bool, SessionEvent::RTeventCallback after = rt_cleanup, bool group_override = false);
|
||||
|
||||
sigc::signal<void,bool> SoloActive;
|
||||
sigc::signal<void> SoloChanged;
|
||||
boost::signals2::signal<void(bool)> SoloActive;
|
||||
boost::signals2::signal<void()> SoloChanged;
|
||||
|
||||
|
||||
/* control/master out */
|
||||
@@ -658,8 +656,8 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
|
||||
void remove_bundle (boost::shared_ptr<Bundle>);
|
||||
boost::shared_ptr<Bundle> bundle_by_name (std::string) const;
|
||||
|
||||
sigc::signal<void,boost::shared_ptr<Bundle> > BundleAdded;
|
||||
sigc::signal<void,boost::shared_ptr<Bundle> > BundleRemoved;
|
||||
boost::signals2::signal<void(boost::shared_ptr<Bundle>)> BundleAdded;
|
||||
boost::signals2::signal<void(boost::shared_ptr<Bundle>)> BundleRemoved;
|
||||
|
||||
/* MIDI control */
|
||||
|
||||
@@ -673,10 +671,10 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
|
||||
MIDI::Port *midi_port() const { return _midi_port; }
|
||||
MIDI::Port *midi_clock_port() const { return _midi_clock_port; }
|
||||
|
||||
sigc::signal<void> MTC_PortChanged;
|
||||
sigc::signal<void> MMC_PortChanged;
|
||||
sigc::signal<void> MIDI_PortChanged;
|
||||
sigc::signal<void> MIDIClock_PortChanged;
|
||||
boost::signals2::signal<void()> MTC_PortChanged;
|
||||
boost::signals2::signal<void()> MMC_PortChanged;
|
||||
boost::signals2::signal<void()> MIDI_PortChanged;
|
||||
boost::signals2::signal<void()> MIDIClock_PortChanged;
|
||||
|
||||
void set_trace_midi_input (bool, MIDI::Port* port = 0);
|
||||
void set_trace_midi_output (bool, MIDI::Port* port = 0);
|
||||
@@ -693,7 +691,7 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
|
||||
void stop_scrub ();
|
||||
void set_scrub_speed (float);
|
||||
nframes_t scrub_buffer_size() const;
|
||||
sigc::signal<void> ScrubReady;
|
||||
boost::signals2::signal<void()> ScrubReady;
|
||||
|
||||
/* History (for editors, mixers, UIs etc.) */
|
||||
|
||||
@@ -726,11 +724,11 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
|
||||
_current_trans.top()->add_command (cmd);
|
||||
}
|
||||
|
||||
std::map<PBD::ID, PBD::StatefulThingWithGoingAway*> registry;
|
||||
std::map<PBD::ID,PBD::StatefulDestructible*> registry;
|
||||
|
||||
// these commands are implemented in libs/ardour/session_command.cc
|
||||
Command* memento_command_factory(XMLNode* n);
|
||||
void register_with_memento_command_factory(PBD::ID, PBD::StatefulThingWithGoingAway*);
|
||||
void register_with_memento_command_factory(PBD::ID, PBD::StatefulDestructible*);
|
||||
|
||||
/* clicking */
|
||||
|
||||
@@ -767,7 +765,7 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
|
||||
void* ptr,
|
||||
float opt);
|
||||
|
||||
static sigc::signal<void> SendFeedback;
|
||||
static boost::signals2::signal<void()> SendFeedback;
|
||||
|
||||
/* Controllables */
|
||||
|
||||
@@ -945,7 +943,7 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
|
||||
int stop_audio_export ();
|
||||
void finalize_audio_export ();
|
||||
|
||||
sigc::connection export_freewheel_connection;
|
||||
boost::signals2::scoped_connection export_freewheel_connection;
|
||||
|
||||
void prepare_diskstreams ();
|
||||
void commit_diskstreams (nframes_t, bool& session_requires_butler);
|
||||
@@ -1069,16 +1067,12 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
|
||||
void locations_added (Location*);
|
||||
void handle_locations_changed (Locations::LocationList&);
|
||||
|
||||
sigc::connection auto_punch_start_changed_connection;
|
||||
sigc::connection auto_punch_end_changed_connection;
|
||||
sigc::connection auto_punch_changed_connection;
|
||||
PBD::ScopedConnectionList punch_connections;
|
||||
void auto_punch_start_changed (Location *);
|
||||
void auto_punch_end_changed (Location *);
|
||||
void auto_punch_changed (Location *);
|
||||
|
||||
sigc::connection auto_loop_start_changed_connection;
|
||||
sigc::connection auto_loop_end_changed_connection;
|
||||
sigc::connection auto_loop_changed_connection;
|
||||
PBD::ScopedConnectionList loop_connections;
|
||||
void auto_loop_changed (Location *);
|
||||
|
||||
void first_stage_init (std::string path, std::string snapshot_name);
|
||||
@@ -1143,7 +1137,7 @@ class Session : public PBD::StatefulDestructible, public SessionEventManager, pu
|
||||
struct timeval last_mmc_step;
|
||||
double step_speed;
|
||||
|
||||
typedef sigc::slot<bool> MidiTimeoutCallback;
|
||||
typedef boost::function<bool()> MidiTimeoutCallback;
|
||||
typedef std::list<MidiTimeoutCallback> MidiTimeoutList;
|
||||
|
||||
MidiTimeoutList midi_timeouts;
|
||||
|
||||
@@ -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"
|
||||
|
||||
57
libs/ardour/ardour/session_handle.h
Normal file
57
libs/ardour/ardour/session_handle.h
Normal 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__ */
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
@@ -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&);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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 ();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 ();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -90,7 +90,7 @@ CoreAudioSource::init_cafile ()
|
||||
|
||||
CoreAudioSource::~CoreAudioSource ()
|
||||
{
|
||||
GoingAway (); /* EMIT SIGNAL */
|
||||
drop_references ();
|
||||
}
|
||||
|
||||
int
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 ();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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 ();
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 ();
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user