ardour
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
ARDOUR::AUPlugin Class Reference

#include <audio_unit.h>

Inheritance diagram for ARDOUR::AUPlugin:
ARDOUR::Plugin PBD::StatefulDestructible ARDOUR::Latent PBD::Stateful PBD::Destructible

Public Member Functions

 AUPlugin (AudioEngine &engine, Session &session, boost::shared_ptr< CAComponent > comp)
 
 AUPlugin (const AUPlugin &other)
 
virtual ~AUPlugin ()
 
std::string unique_id () const
 
const char * label () const
 
const char * name () const
 
const char * maker () const
 
uint32_t parameter_count () const
 
float default_value (uint32_t port)
 
framecnt_t signal_latency () const
 
void set_parameter (uint32_t which, float val)
 
float get_parameter (uint32_t which) const
 
int get_parameter_descriptor (uint32_t which, ParameterDescriptor &) const
 
uint32_t nth_parameter (uint32_t which, bool &ok) const
 
void activate ()
 
void deactivate ()
 
void flush ()
 
int set_block_size (pframes_t nframes)
 
int connect_and_run (BufferSet &bufs, ChanMapping in, ChanMapping out, pframes_t nframes, framecnt_t offset)
 
std::set< Evoral::Parameterautomatable () const
 
std::string describe_parameter (Evoral::Parameter)
 
std::string state_node_name () const
 
void print_parameter (uint32_t, char *, uint32_t len) const
 
bool parameter_is_audio (uint32_t) const
 
bool parameter_is_control (uint32_t) const
 
bool parameter_is_input (uint32_t) const
 
bool parameter_is_output (uint32_t) const
 
void set_info (PluginInfoPtr)
 
int set_state (const XMLNode &node, int)
 
bool load_preset (PresetRecord)
 
std::string current_preset () const
 
bool has_editor () const
 
bool can_support_io_configuration (const ChanCount &in, ChanCount &out)
 
ChanCount output_streams () const
 
ChanCount input_streams () const
 
bool configure_io (ChanCount in, ChanCount out)
 
bool requires_fixed_size_buffers () const
 
void set_fixed_size_buffers (bool yn)
 
boost::shared_ptr< CAAudioUnit > get_au ()
 
boost::shared_ptr< CAComponent > get_comp () const
 
OSStatus render_callback (AudioUnitRenderActionFlags *ioActionFlags, const AudioTimeStamp *inTimeStamp, UInt32 inBusNumber, UInt32 inNumberFrames, AudioBufferList *ioData)
 
OSStatus get_beat_and_tempo_callback (Float64 *outCurrentBeat, Float64 *outCurrentTempo)
 
OSStatus get_musical_time_location_callback (UInt32 *outDeltaSampleOffsetToNextBeat, Float32 *outTimeSig_Numerator, UInt32 *outTimeSig_Denominator, Float64 *outCurrentMeasureDownBeat)
 
OSStatus get_transport_state_callback (Boolean *outIsPlaying, Boolean *outTransportStateChanged, Float64 *outCurrentSampleInTimeLine, Boolean *outIsCycling, Float64 *outCycleStartBeat, Float64 *outCycleEndBeat)
 
int create_parameter_listener (AUEventListenerProc callback, void *arg, float interval_secs)
 
int listen_to_parameter (uint32_t param_id)
 
int end_listen_to_parameter (uint32_t param_id)
 
- Public Member Functions inherited from ARDOUR::Plugin
 Plugin (ARDOUR::AudioEngine &, ARDOUR::Session &)
 
 Plugin (const Plugin &)
 
virtual ~Plugin ()
 
XMLNodeget_state ()
 
virtual void set_insert_id (PBD::ID id)
 
virtual std::string get_docs () const
 
virtual std::string get_parameter_docs (uint32_t) const
 
virtual boost::shared_ptr
< ScalePoints
get_scale_points (uint32_t) const
 
void realtime_handle_transport_stopped ()
 
void realtime_locate ()
 
void monitoring_changed ()
 
PresetRecord save_preset (std::string)
 
void remove_preset (std::string)
 
void clear_preset ()
 
const PresetRecordpreset_by_label (const std::string &)
 
const PresetRecordpreset_by_uri (const std::string &)
 
std::vector< PresetRecordget_presets ()
 
virtual bool presets_are_MIDI_programs () const
 
virtual bool current_preset_uses_general_midi () const
 
PresetRecord last_preset () const
 
bool parameter_changed_since_last_preset () const
 
virtual int first_user_preset_index () const
 
PluginInfoPtr get_info () const
 
ARDOUR::AudioEngineengine () const
 
ARDOUR::Sessionsession () const
 
void set_cycles (uint32_t c)
 
cycles_t cycles () const
 
virtual const PropertyDescriptorsget_supported_properties () const
 
virtual const ParameterDescriptorget_property_descriptor (uint32_t id) const
 
virtual void set_property (uint32_t key, const Variant &value)
 
virtual void announce_property_values ()
 
- Public Member Functions inherited from PBD::Stateful
 Stateful ()
 
virtual ~Stateful ()
 
virtual bool apply_changes (PropertyBase const &)
 
PropertyChange apply_changes (PropertyList const &)
 
const OwnedPropertyListproperties () const
 
void add_property (PropertyBase &s)
 
void add_extra_xml (XMLNode &)
 
XMLNodeextra_xml (const std::string &str, bool add_if_missing=false)
 
void save_extra_xml (const XMLNode &)
 
const PBD::IDid () const
 
bool set_id (const XMLNode &)
 
void set_id (const std::string &)
 
void reset_id ()
 
void clear_changes ()
 
virtual void clear_owned_changes ()
 
PropertyListget_changes_as_properties (Command *) const
 
virtual void rdiff (std::vector< Command * > &) const
 
bool changed () const
 
virtual PropertyListproperty_factory (const XMLNode &) const
 
virtual void suspend_property_changes ()
 
virtual void resume_property_changes ()
 
bool property_changes_suspended () const
 
- Public Member Functions inherited from PBD::Destructible
 Destructible ()
 
virtual ~Destructible ()
 
void drop_references ()
 
- Public Member Functions inherited from ARDOUR::Latent
 Latent ()
 
virtual ~Latent ()
 
framecnt_t user_latency () const
 
framecnt_t effective_latency () const
 
virtual void set_user_latency (framecnt_t val)
 

Static Public Member Functions

static std::string maybe_fix_broken_au_id (const std::string &)
 

Protected Member Functions

std::string do_save_preset (std::string name)
 
void do_remove_preset (std::string)
 
- Protected Member Functions inherited from PBD::Stateful
void add_instant_xml (XMLNode &, const std::string &directory_path)
 
XMLNodeinstant_xml (const std::string &str, const std::string &directory_path)
 
void add_properties (XMLNode &)
 
PropertyChange set_values (XMLNode const &)
 
virtual void post_set (const PropertyChange &)
 
virtual void send_change (const PropertyChange &)
 
virtual void mid_thaw (const PropertyChange &)
 

Private Types

typedef std::map< std::string,
std::string > 
UserPresetMap
 
typedef std::map< std::string,
int > 
FactoryPresetMap
 
typedef std::map< uint32_t,
uint32_t > 
ParameterMap
 

Private Member Functions

void find_presets ()
 
int set_output_format (AudioStreamBasicDescription &)
 
int set_input_format (AudioStreamBasicDescription &)
 
int set_stream_format (int scope, uint32_t cnt, AudioStreamBasicDescription &)
 
void discover_parameters ()
 
void add_state (XMLNode *) const
 
void init ()
 
void discover_factory_presets ()
 
void parameter_change_listener (void *, void *, const AudioUnitEvent *event, UInt64 host_time, Float32 new_value)
 

Static Private Member Functions

static void _parameter_change_listener (void *, void *, const AudioUnitEvent *event, UInt64 host_time, Float32 new_value)
 

Private Attributes

boost::shared_ptr< CAComponent > comp
 
boost::shared_ptr< CAAudioUnit > unit
 
bool initialized
 
int32_t input_channels
 
int32_t output_channels
 
std::vector< std::pair< int,
int > > 
io_configs
 
pframes_t _current_block_size
 
framecnt_t _last_nframes
 
bool _requires_fixed_size_buffers
 
AudioBufferList * buffers
 
bool _has_midi_input
 
bool _has_midi_output
 
UserPresetMap user_preset_map
 
FactoryPresetMap factory_preset_map
 
UInt32 global_elements
 
UInt32 output_elements
 
UInt32 input_elements
 
ParameterMap parameter_map
 
uint32_t input_maxbuf
 
framecnt_t input_offset
 
framecnt_t cb_offset
 
BufferSetinput_buffers
 
framecnt_t frames_processed
 
std::vector
< AUParameterDescriptor
descriptors
 
AUEventListenerRef _parameter_listener
 
void * _parameter_listener_arg
 
bool last_transport_rolling
 
float last_transport_speed
 

Additional Inherited Members

- Public Types inherited from ARDOUR::Plugin
typedef std::map< uint32_t,
ParameterDescriptor
PropertyDescriptors
 
- Public Attributes inherited from ARDOUR::Plugin
PBD::Signal0< void > PresetAdded
 
PBD::Signal0< void > PresetRemoved
 
PBD::Signal0< void > PresetLoaded
 
PBD::Signal2< void, uint32_t,
float > 
ParameterChanged
 
PBD::Signal2< void, uint32_t,
Variant
PropertyChanged
 
PBD::Signal1< void, uint32_t > StartTouch
 
PBD::Signal1< void, uint32_t > EndTouch
 
- Public Attributes inherited from PBD::Stateful
PBD::Signal1< void, const
PropertyChange & > 
PropertyChanged
 
- Public Attributes inherited from PBD::Destructible
PBD::Signal0< void > Destroyed
 
PBD::Signal0< void > DropReferences
 
- Static Public Attributes inherited from PBD::Stateful
static int current_state_version = 0
 
static int loading_state_version = 0
 
- Protected Attributes inherited from ARDOUR::Plugin
ARDOUR::AudioEngine_engine
 
ARDOUR::Session_session
 
PluginInfoPtr _info
 
uint32_t _cycles
 
std::map< std::string,
PresetRecord
_presets
 
- Protected Attributes inherited from PBD::Stateful
XMLNode_extra_xml
 
XMLNode_instant_xml
 
PBD::PropertyChange _pending_changed
 
Glib::Threads::Mutex _lock
 
std::string _xml_node_name
 name of node to use for this object in XML More...
 
OwnedPropertyList_properties
 
- Protected Attributes inherited from ARDOUR::Latent
framecnt_t _user_latency
 

Detailed Description

Definition at line 60 of file audio_unit.h.

Member Typedef Documentation

typedef std::map<std::string,int> ARDOUR::AUPlugin::FactoryPresetMap
private

Definition at line 186 of file audio_unit.h.

typedef std::map<uint32_t, uint32_t> ARDOUR::AUPlugin::ParameterMap
private

Definition at line 199 of file audio_unit.h.

typedef std::map<std::string,std::string> ARDOUR::AUPlugin::UserPresetMap
private

Definition at line 184 of file audio_unit.h.

Constructor & Destructor Documentation

AUPlugin::AUPlugin ( AudioEngine engine,
Session session,
boost::shared_ptr< CAComponent >  comp 
)

Definition at line 409 of file audio_unit.cc.

AUPlugin::AUPlugin ( const AUPlugin other)

Definition at line 439 of file audio_unit.cc.

AUPlugin::~AUPlugin ( )
virtual

Definition at line 459 of file audio_unit.cc.

Member Function Documentation

void AUPlugin::_parameter_change_listener ( void *  arg,
void *  src,
const AudioUnitEvent *  event,
UInt64  host_time,
Float32  new_value 
)
staticprivate

Definition at line 2989 of file audio_unit.cc.

void AUPlugin::activate ( )
virtual

Implements ARDOUR::Plugin.

Definition at line 939 of file audio_unit.cc.

void AUPlugin::add_state ( XMLNode ) const
privatevirtual

Add state to an existing XMLNode

Implements ARDOUR::Plugin.

Definition at line 1791 of file audio_unit.cc.

set< Evoral::Parameter > AUPlugin::automatable ( ) const
virtual

Implements ARDOUR::Plugin.

Definition at line 1722 of file audio_unit.cc.

bool AUPlugin::can_support_io_configuration ( const ChanCount in,
ChanCount out 
)
virtual

Reimplemented from ARDOUR::Plugin.

Definition at line 1101 of file audio_unit.cc.

bool AUPlugin::configure_io ( ChanCount  in,
ChanCount  out 
)
virtual

Reimplemented from ARDOUR::Plugin.

Definition at line 1003 of file audio_unit.cc.

int AUPlugin::connect_and_run ( BufferSet bufs,
ChanMapping  in,
ChanMapping  out,
pframes_t  nframes,
framecnt_t  offset 
)
virtual

Reimplemented from ARDOUR::Plugin.

Definition at line 1426 of file audio_unit.cc.

int AUPlugin::create_parameter_listener ( AUEventListenerProc  callback,
void *  arg,
float  interval_secs 
)

Definition at line 2886 of file audio_unit.cc.

std::string AUPlugin::current_preset ( ) const

Definition at line 2156 of file audio_unit.cc.

void AUPlugin::deactivate ( )
virtual

Implements ARDOUR::Plugin.

Definition at line 954 of file audio_unit.cc.

float AUPlugin::default_value ( uint32_t  port)
virtual

Implements ARDOUR::Plugin.

Definition at line 859 of file audio_unit.cc.

string AUPlugin::describe_parameter ( Evoral::Parameter  param)
virtual

Implements ARDOUR::Plugin.

Definition at line 1736 of file audio_unit.cc.

void AUPlugin::discover_factory_presets ( )
private

Definition at line 477 of file audio_unit.cc.

void AUPlugin::discover_parameters ( )
private

Definition at line 610 of file audio_unit.cc.

void AUPlugin::do_remove_preset ( std::string  )
protectedvirtual

Do the actual removal of a preset of the provided name

Implements ARDOUR::Plugin.

Definition at line 1936 of file audio_unit.cc.

string AUPlugin::do_save_preset ( std::string  )
protectedvirtual

Do the actual saving of the current plugin settings to a preset of the provided name. Should return a URI on success, or an empty string on failure.

Implements ARDOUR::Plugin.

Definition at line 1941 of file audio_unit.cc.

int AUPlugin::end_listen_to_parameter ( uint32_t  param_id)

Definition at line 2947 of file audio_unit.cc.

void AUPlugin::find_presets ( )
privatevirtual

Fill _presets with our presets

Implements ARDOUR::Plugin.

Definition at line 2172 of file audio_unit.cc.

void AUPlugin::flush ( )
virtual

Reimplemented from ARDOUR::Plugin.

Definition at line 962 of file audio_unit.cc.

boost::shared_ptr<CAAudioUnit> ARDOUR::AUPlugin::get_au ( )
inline

Definition at line 116 of file audio_unit.h.

OSStatus AUPlugin::get_beat_and_tempo_callback ( Float64 *  outCurrentBeat,
Float64 *  outCurrentTempo 
)

Definition at line 1538 of file audio_unit.cc.

boost::shared_ptr<CAComponent> ARDOUR::AUPlugin::get_comp ( ) const
inline

Definition at line 117 of file audio_unit.h.

OSStatus AUPlugin::get_musical_time_location_callback ( UInt32 *  outDeltaSampleOffsetToNextBeat,
Float32 *  outTimeSig_Numerator,
UInt32 *  outTimeSig_Denominator,
Float64 *  outCurrentMeasureDownBeat 
)

Definition at line 1575 of file audio_unit.cc.

float AUPlugin::get_parameter ( uint32_t  which) const
virtual

Implements ARDOUR::Plugin.

Definition at line 906 of file audio_unit.cc.

int AUPlugin::get_parameter_descriptor ( uint32_t  which,
ParameterDescriptor pd 
) const
virtual

Implements ARDOUR::Plugin.

Definition at line 918 of file audio_unit.cc.

OSStatus AUPlugin::get_transport_state_callback ( Boolean *  outIsPlaying,
Boolean *  outTransportStateChanged,
Float64 *  outCurrentSampleInTimeLine,
Boolean *  outIsCycling,
Float64 *  outCycleStartBeat,
Float64 *  outCycleEndBeat 
)

Definition at line 1631 of file audio_unit.cc.

bool AUPlugin::has_editor ( ) const
virtual

Implements ARDOUR::Plugin.

Definition at line 2227 of file audio_unit.cc.

void AUPlugin::init ( )
private

Definition at line 514 of file audio_unit.cc.

ChanCount AUPlugin::input_streams ( ) const
virtual

Reimplemented from ARDOUR::Plugin.

Definition at line 1065 of file audio_unit.cc.

const char * AUPlugin::label ( ) const
virtual

Implements ARDOUR::Plugin.

Definition at line 847 of file audio_unit.cc.

int AUPlugin::listen_to_parameter ( uint32_t  param_id)

Definition at line 2905 of file audio_unit.cc.

bool AUPlugin::load_preset ( PresetRecord  r)
virtual

Set parameters using a preset

Reimplemented from ARDOUR::Plugin.

Definition at line 1882 of file audio_unit.cc.

const char* ARDOUR::AUPlugin::maker ( ) const
inlinevirtual

Implements ARDOUR::Plugin.

Definition at line 70 of file audio_unit.h.

std::string AUPlugin::maybe_fix_broken_au_id ( const std::string &  id)
static

Definition at line 746 of file audio_unit.cc.

const char* ARDOUR::AUPlugin::name ( ) const
inlinevirtual

Implements ARDOUR::Plugin.

Definition at line 69 of file audio_unit.h.

uint32_t AUPlugin::nth_parameter ( uint32_t  which,
bool &  ok 
) const
virtual

Implements ARDOUR::Plugin.

Definition at line 928 of file audio_unit.cc.

ChanCount AUPlugin::output_streams ( ) const
virtual

Reimplemented from ARDOUR::Plugin.

Definition at line 1084 of file audio_unit.cc.

void AUPlugin::parameter_change_listener ( void *  ,
void *  ,
const AudioUnitEvent *  event,
UInt64  host_time,
Float32  new_value 
)
private

Definition at line 2995 of file audio_unit.cc.

uint32_t AUPlugin::parameter_count ( ) const
virtual

Implements ARDOUR::Plugin.

Definition at line 853 of file audio_unit.cc.

bool AUPlugin::parameter_is_audio ( uint32_t  ) const
virtual

Implements ARDOUR::Plugin.

Definition at line 1752 of file audio_unit.cc.

bool AUPlugin::parameter_is_control ( uint32_t  param) const
virtual

Implements ARDOUR::Plugin.

Definition at line 1758 of file audio_unit.cc.

bool AUPlugin::parameter_is_input ( uint32_t  param) const
virtual

Implements ARDOUR::Plugin.

Definition at line 1772 of file audio_unit.cc.

bool AUPlugin::parameter_is_output ( uint32_t  param) const
virtual

Implements ARDOUR::Plugin.

Definition at line 1781 of file audio_unit.cc.

void AUPlugin::print_parameter ( uint32_t  ,
char *  ,
uint32_t  len 
) const
virtual

Implements ARDOUR::Plugin.

Definition at line 1746 of file audio_unit.cc.

OSStatus AUPlugin::render_callback ( AudioUnitRenderActionFlags *  ioActionFlags,
const AudioTimeStamp *  inTimeStamp,
UInt32  inBusNumber,
UInt32  inNumberFrames,
AudioBufferList *  ioData 
)

Definition at line 1391 of file audio_unit.cc.

bool AUPlugin::requires_fixed_size_buffers ( ) const

Definition at line 969 of file audio_unit.cc.

int AUPlugin::set_block_size ( pframes_t  nframes)
virtual

Implements ARDOUR::Plugin.

Definition at line 976 of file audio_unit.cc.

void ARDOUR::AUPlugin::set_fixed_size_buffers ( bool  yn)
inline

Definition at line 112 of file audio_unit.h.

void AUPlugin::set_info ( PluginInfoPtr  info)
virtual

Reimplemented from ARDOUR::Plugin.

Definition at line 2876 of file audio_unit.cc.

int AUPlugin::set_input_format ( AudioStreamBasicDescription &  fmt)
private

Definition at line 1342 of file audio_unit.cc.

int AUPlugin::set_output_format ( AudioStreamBasicDescription &  fmt)
private

Definition at line 1348 of file audio_unit.cc.

void AUPlugin::set_parameter ( uint32_t  which,
float  val 
)
virtual
Parameters
val`plugin' value

Reimplemented from ARDOUR::Plugin.

Definition at line 875 of file audio_unit.cc.

int AUPlugin::set_state ( const XMLNode node,
int  version 
)
virtual

Reimplemented from ARDOUR::Plugin.

Definition at line 1828 of file audio_unit.cc.

int AUPlugin::set_stream_format ( int  scope,
uint32_t  cnt,
AudioStreamBasicDescription &  fmt 
)
private

Definition at line 1366 of file audio_unit.cc.

framecnt_t AUPlugin::signal_latency ( ) const
virtual

Implements ARDOUR::Latent.

Definition at line 869 of file audio_unit.cc.

std::string ARDOUR::AUPlugin::state_node_name ( ) const
inlinevirtual

Implements ARDOUR::Plugin.

Definition at line 89 of file audio_unit.h.

string AUPlugin::unique_id ( ) const
virtual

Implements ARDOUR::Plugin.

Definition at line 841 of file audio_unit.cc.

Member Data Documentation

pframes_t ARDOUR::AUPlugin::_current_block_size
private

Definition at line 169 of file audio_unit.h.

bool ARDOUR::AUPlugin::_has_midi_input
private

Definition at line 173 of file audio_unit.h.

bool ARDOUR::AUPlugin::_has_midi_output
private

Definition at line 174 of file audio_unit.h.

framecnt_t ARDOUR::AUPlugin::_last_nframes
private

Definition at line 170 of file audio_unit.h.

AUEventListenerRef ARDOUR::AUPlugin::_parameter_listener
private

Definition at line 208 of file audio_unit.h.

void* ARDOUR::AUPlugin::_parameter_listener_arg
private

Definition at line 209 of file audio_unit.h.

bool ARDOUR::AUPlugin::_requires_fixed_size_buffers
private

Definition at line 171 of file audio_unit.h.

AudioBufferList* ARDOUR::AUPlugin::buffers
private

Definition at line 172 of file audio_unit.h.

framecnt_t ARDOUR::AUPlugin::cb_offset
private

Definition at line 203 of file audio_unit.h.

boost::shared_ptr<CAComponent> ARDOUR::AUPlugin::comp
private

Definition at line 162 of file audio_unit.h.

std::vector<AUParameterDescriptor> ARDOUR::AUPlugin::descriptors
private

Definition at line 207 of file audio_unit.h.

FactoryPresetMap ARDOUR::AUPlugin::factory_preset_map
private

Definition at line 187 of file audio_unit.h.

framecnt_t ARDOUR::AUPlugin::frames_processed
private

Definition at line 205 of file audio_unit.h.

UInt32 ARDOUR::AUPlugin::global_elements
private

Definition at line 189 of file audio_unit.h.

bool ARDOUR::AUPlugin::initialized
private

Definition at line 165 of file audio_unit.h.

BufferSet* ARDOUR::AUPlugin::input_buffers
private

Definition at line 204 of file audio_unit.h.

int32_t ARDOUR::AUPlugin::input_channels
private

Definition at line 166 of file audio_unit.h.

UInt32 ARDOUR::AUPlugin::input_elements
private

Definition at line 191 of file audio_unit.h.

uint32_t ARDOUR::AUPlugin::input_maxbuf
private

Definition at line 201 of file audio_unit.h.

framecnt_t ARDOUR::AUPlugin::input_offset
private

Definition at line 202 of file audio_unit.h.

std::vector<std::pair<int,int> > ARDOUR::AUPlugin::io_configs
private

Definition at line 168 of file audio_unit.h.

bool ARDOUR::AUPlugin::last_transport_rolling
private

Definition at line 214 of file audio_unit.h.

float ARDOUR::AUPlugin::last_transport_speed
private

Definition at line 215 of file audio_unit.h.

int32_t ARDOUR::AUPlugin::output_channels
private

Definition at line 167 of file audio_unit.h.

UInt32 ARDOUR::AUPlugin::output_elements
private

Definition at line 190 of file audio_unit.h.

ParameterMap ARDOUR::AUPlugin::parameter_map
private

Definition at line 200 of file audio_unit.h.

boost::shared_ptr<CAAudioUnit> ARDOUR::AUPlugin::unit
private

Definition at line 163 of file audio_unit.h.

UserPresetMap ARDOUR::AUPlugin::user_preset_map
private

Definition at line 185 of file audio_unit.h.


The documentation for this class was generated from the following files: