X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Faudio_unit.cc;h=6879123ff1a24398d14a89293b49bdd36361af20;hb=5a8bc070cd5ca79a53487f536c6df966ffc8df39;hp=0a31df40ee7c207ce7456d3b3a4253ae5339f988;hpb=77a13df5bd70bf87ee856b81acec7eeed5b1f033;p=ardour.git diff --git a/libs/ardour/audio_unit.cc b/libs/ardour/audio_unit.cc index 0a31df40ee..6879123ff1 100644 --- a/libs/ardour/audio_unit.cc +++ b/libs/ardour/audio_unit.cc @@ -112,7 +112,7 @@ AUPlugin::default_value (uint32_t port) return 0; } -jack_nframes_t +nframes_t AUPlugin::latency () const { return unit->Latency (); @@ -137,7 +137,7 @@ AUPlugin::get_parameter (uint32_t which) const int AUPlugin::get_parameter_descriptor (uint32_t which, ParameterDescriptor&) const { - return -1; + return 0; } uint32_t @@ -159,13 +159,13 @@ AUPlugin::deactivate () } void -AUPlugin::set_block_size (jack_nframes_t nframes) +AUPlugin::set_block_size (nframes_t nframes) { } int -AUPlugin::connect_and_run (vector& bufs, uint32_t maxbuf, int32_t& in, int32_t& out, jack_nframes_t nframes, jack_nframes_t offset) +AUPlugin::connect_and_run (vector& bufs, uint32_t maxbuf, int32_t& in, int32_t& out, nframes_t nframes, nframes_t offset) { AudioUnitRenderActionFlags flags = 0; AudioTimeStamp ts; @@ -190,18 +190,6 @@ AUPlugin::automatable() const return automates; } -void -AUPlugin::store_state (ARDOUR::PluginState&) -{ - -} - -void -AUPlugin::restore_state (ARDOUR::PluginState&) -{ - -} - string AUPlugin::describe_parameter (uint32_t) { @@ -325,6 +313,7 @@ AUPluginInfo::discover () plug->type = ARDOUR::AudioUnit; plug->n_inputs = 0; plug->n_outputs = 0; + // plug->setup_nchannels (temp); plug->category = "AudioUnit"; plug->desc = new CAComponentDescription(temp); @@ -376,3 +365,21 @@ AUPluginInfo::get_name (CAComponentDescription& comp_desc) return CFStringRefToStdString(itemName); } + +void +AUPluginInfo::setup_nchannels (CAComponentDescription& comp_desc) +{ + CAAudioUnit unit; + + CAAudioUnit::Open (comp_desc, unit); + + if (unit.SupportsNumChannels()) { + n_inputs = n_outputs = 0; + } else { + AUChannelInfo cinfo; + size_t info_size = sizeof(cinfo); + OSStatus err = AudioUnitGetProperty (unit.AU(), kAudioUnitProperty_SupportedNumChannels, kAudioUnitScope_Global, + 0, &cinfo, &info_size); + } +} +