summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/io.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/ardour/io.h')
-rw-r--r--libs/ardour/ardour/io.h33
1 files changed, 11 insertions, 22 deletions
diff --git a/libs/ardour/ardour/io.h b/libs/ardour/ardour/io.h
index 0b86eb4088..3952d14c0e 100644
--- a/libs/ardour/ardour/io.h
+++ b/libs/ardour/ardour/io.h
@@ -34,6 +34,7 @@
#include <pbd/controllable.h>
#include <ardour/ardour.h>
+#include <ardour/session_object.h>
#include <ardour/utils.h>
#include <ardour/curve.h>
#include <ardour/types.h>
@@ -63,13 +64,13 @@ class BufferSet;
* An IO can contain ports of varying types, making routes/inserts/etc with
* varied combinations of types (eg MIDI and audio) possible.
*/
-class IO : public PBD::StatefulDestructible
+class IO : public SessionObject
{
public:
static const string state_node_name;
- IO (Session&, string name,
+ IO (Session&, const string& name,
int input_min = -1, int input_max = -1,
int output_min = -1, int output_max = -1,
DataType default_type = DataType::AUDIO);
@@ -90,10 +91,9 @@ class IO : public PBD::StatefulDestructible
DataType default_type() const { return _default_type; }
void set_default_type(DataType t) { _default_type = t; }
-
- const string& name() const { return _name; }
- virtual int set_name (string str, void *src);
+ bool set_name (const string& str);
+
virtual void silence (nframes_t, nframes_t offset);
void collect_input (BufferSet& bufs, nframes_t nframes, nframes_t offset);
@@ -179,7 +179,6 @@ class IO : public PBD::StatefulDestructible
sigc::signal<void,IOChange,void*> output_changed;
sigc::signal<void,void*> gain_changed;
- sigc::signal<void,void*> name_changed;
virtual XMLNode& state (bool full);
XMLNode& get_state (void);
@@ -229,26 +228,16 @@ class IO : public PBD::StatefulDestructible
void clear_automation ();
- bool gain_automation_recording() const {
- return (_gain_automation_curve.automation_state() & (Write|Touch));
- }
-
- bool gain_automation_playback() const {
- return (_gain_automation_curve.automation_state() & Play) ||
- ((_gain_automation_curve.automation_state() & Touch) &&
- !_gain_automation_curve.touching());
- }
-
virtual void set_gain_automation_state (AutoState);
AutoState gain_automation_state() const { return _gain_automation_curve.automation_state(); }
- sigc::signal<void> gain_automation_state_changed;
+ //sigc::signal<void> gain_automation_state_changed;
virtual void set_gain_automation_style (AutoStyle);
AutoStyle gain_automation_style () const { return _gain_automation_curve.automation_style(); }
- sigc::signal<void> gain_automation_style_changed;
+ //sigc::signal<void> gain_automation_style_changed;
- virtual void transport_stopped (nframes_t now);
- void automation_snapshot (nframes_t now);
+ virtual void transport_stopped (nframes_t now); // interface: matches Insert
+ void automation_snapshot (nframes_t now); // interface: matches Automatable
ARDOUR::Curve& gain_automation_curve () { return _gain_automation_curve; }
@@ -272,7 +261,6 @@ class IO : public PBD::StatefulDestructible
mutable Glib::Mutex io_lock;
protected:
- Session& _session;
Panner* _panner;
BufferSet* _output_buffers; //< Set directly to output port buffers
gain_t _gain;
@@ -282,7 +270,6 @@ class IO : public PBD::StatefulDestructible
PortSet _outputs;
PortSet _inputs;
PeakMeter* _meter;
- string _name;
Bundle* _input_bundle;
Bundle* _output_bundle;
bool no_panner_reset;
@@ -336,6 +323,8 @@ class IO : public PBD::StatefulDestructible
private:
+ friend class Send;
+
/* are these the best variable names ever, or what? */
sigc::connection input_bundle_configuration_connection;