X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Faudio_unit.h;h=d82425765d9a7d9afc63598c34934791d342fbe2;hb=1bd4c5b3a212460eed1773f6b049d18c89625565;hp=63522d8d5c91a0fb599fc4325c63d44ade4d5adc;hpb=f07cb624c02c98a5ae375b26cb99c157df64d159;p=ardour.git diff --git a/libs/ardour/ardour/audio_unit.h b/libs/ardour/ardour/audio_unit.h index 63522d8d5c..d82425765d 100644 --- a/libs/ardour/ardour/audio_unit.h +++ b/libs/ardour/ardour/audio_unit.h @@ -35,6 +35,7 @@ class CAComponent; class CAAudioUnit; class CAComponentDescription; +struct AudioBufferList; namespace ARDOUR { @@ -53,7 +54,7 @@ class AUPlugin : public ARDOUR::Plugin const char * maker () const; uint32_t parameter_count () const; float default_value (uint32_t port); - jack_nframes_t latency () const; + nframes_t latency () const; void set_parameter (uint32_t which, float val); float get_parameter (uint32_t which) const; @@ -61,12 +62,10 @@ class AUPlugin : public ARDOUR::Plugin uint32_t nth_parameter (uint32_t which, bool& ok) const; void activate (); void deactivate (); - void set_block_size (jack_nframes_t nframes); + void set_block_size (nframes_t nframes); - int connect_and_run (vector& bufs, uint32_t maxbuf, int32_t& in, int32_t& out, jack_nframes_t nframes, jack_nframes_t offset); + int connect_and_run (vector& bufs, uint32_t maxbuf, int32_t& in, int32_t& out, nframes_t nframes, nframes_t offset); std::set automatable() const; - void store_state (ARDOUR::PluginState&); - void restore_state (ARDOUR::PluginState&); string describe_parameter (uint32_t); string state_node_name () const { return "audiounit"; } void print_parameter (uint32_t, char*, uint32_t len) const; @@ -85,13 +84,21 @@ class AUPlugin : public ARDOUR::Plugin bool has_editor () const; + CAAudioUnit* get_au () { return unit; } + CAComponent* get_comp () { return comp; } + private: CAComponent* comp; CAAudioUnit* unit; + AudioBufferList* in_list; + AudioBufferList* out_list; + std::vector > parameter_map; }; +typedef boost::shared_ptr AUPluginPtr; + class AUPluginInfo : public PluginInfo { public: AUPluginInfo () { }; @@ -104,6 +111,7 @@ class AUPluginInfo : public PluginInfo { private: static std::string get_name (CAComponentDescription&); + void setup_nchannels (CAComponentDescription&); }; typedef boost::shared_ptr AUPluginInfoPtr;