summaryrefslogtreecommitdiff
path: root/libs/ardour/audio_unit.cc
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2014-12-23 18:45:21 -0500
committerDavid Robillard <d@drobilla.net>2014-12-24 13:00:32 -0500
commitb0f1c16e207e0c0cd0d6dcc5b509ecb5c1844b5f (patch)
treead1a88d1b7bcb927ca3eb01faf03f2cfcf2758ae /libs/ardour/audio_unit.cc
parent2e7cfe081f4148157bd06160f57390e0d43636f9 (diff)
Support fancy controls for some AU units.
Diffstat (limited to 'libs/ardour/audio_unit.cc')
-rw-r--r--libs/ardour/audio_unit.cc17
1 files changed, 14 insertions, 3 deletions
diff --git a/libs/ardour/audio_unit.cc b/libs/ardour/audio_unit.cc
index 21f2a78be0..820f41061b 100644
--- a/libs/ardour/audio_unit.cc
+++ b/libs/ardour/audio_unit.cc
@@ -606,7 +606,7 @@ AUPlugin::discover_parameters ()
d.lower = info.minValue;
d.upper = info.maxValue;
- d.default_value = info.defaultValue;
+ d.normal = info.defaultValue;
d.integer_step = (info.unit == kAudioUnitParameterUnit_Indexed);
d.toggled = (info.unit == kAudioUnitParameterUnit_Boolean) ||
@@ -617,7 +617,18 @@ AUPlugin::discover_parameters ()
(info.flags & kAudioUnitParameterFlag_IsWritable);
d.logarithmic = (info.flags & kAudioUnitParameterFlag_DisplayLogarithmic);
- d.unit = info.unit;
+ d.au_unit = info.unit;
+ switch (info.unit) {
+ case kAudioUnitParameterUnit_Decibels:
+ d.unit = ParameterDescriptor::DB;
+ break;
+ case kAudioUnitParameterUnit_MIDINoteNumber:
+ d.unit = ParameterDescriptor::MIDI_NOTE;
+ break;
+ case kAudioUnitParameterUnit_Hertz:
+ d.unit = ParameterDescriptor::HZ;
+ break;
+ }
d.min_unbound = 0; // lower is bound
d.max_unbound = 0; // upper is bound
@@ -759,7 +770,7 @@ float
AUPlugin::default_value (uint32_t port)
{
if (port < descriptors.size()) {
- return descriptors[port].default_value;
+ return descriptors[port].normal;
}
return 0;