summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/audio_unit.h
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2008-02-16 22:55:47 +0000
committerDavid Robillard <d@drobilla.net>2008-02-16 22:55:47 +0000
commit859e9106e72a7908fa093d946111d148223225a0 (patch)
treeec47825b5f5746bcbc5d321d40da7fc798f5c380 /libs/ardour/ardour/audio_unit.h
parent8aa9508c82f32efcf9c7c00e2c9e76268d4dddce (diff)
Merge with 2.0-ongoing R3071.
git-svn-id: svn://localhost/ardour2/branches/3.0@3074 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour/audio_unit.h')
-rw-r--r--libs/ardour/ardour/audio_unit.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/libs/ardour/ardour/audio_unit.h b/libs/ardour/ardour/audio_unit.h
index c781e8200d..bdeac0477b 100644
--- a/libs/ardour/ardour/audio_unit.h
+++ b/libs/ardour/ardour/audio_unit.h
@@ -32,6 +32,7 @@
#include <ardour/plugin.h>
#include <AudioUnit/AudioUnit.h>
+#include <appleutility/AUParamInfo.h>
#include <boost/shared_ptr.hpp>
@@ -45,6 +46,16 @@ namespace ARDOUR {
class AudioEngine;
class Session;
+struct AUParameterDescriptor : public Plugin::ParameterDescriptor {
+ // additional fields to make operations more efficient
+ AudioUnitParameterID id;
+ AudioUnitScope scope;
+ AudioUnitElement element;
+ float default_value;
+ bool automatable;
+ AudioUnitParameterUnit unit;
+};
+
class AUPlugin : public ARDOUR::Plugin
{
public:
@@ -105,7 +116,7 @@ class AUPlugin : public ARDOUR::Plugin
private:
boost::shared_ptr<CAComponent> comp;
boost::shared_ptr<CAAudioUnit> unit;
-
+
AudioStreamBasicDescription streamFormat;
bool initialized;
int format_set;
@@ -119,6 +130,7 @@ class AUPlugin : public ARDOUR::Plugin
int set_input_format ();
int set_stream_format (int scope, uint32_t cnt);
int _set_block_size (nframes_t nframes);
+ void discover_parameters ();
std::vector<std::pair<uint32_t, uint32_t> > parameter_map;
uint32_t current_maxbuf;
@@ -126,6 +138,8 @@ class AUPlugin : public ARDOUR::Plugin
nframes_t cb_offset;
vector<Sample*>* current_buffers;
nframes_t frames_processed;
+
+ std::vector<AUParameterDescriptor> descriptors;
};
typedef boost::shared_ptr<AUPlugin> AUPluginPtr;