1 #include "BlueFilter.h"
3 COMPONENT_ENTRY(BlueFilter)
6 BlueFilter::BlueFilter(AudioUnit component)
7 : AUEffectBase(component)
12 Globals()->UseIndexedParameters(kNumberOfParameters);
14 SetParameter(kParam_One, kDefaultValue_ParamOne);
15 SetAFactoryPresetAsCurrent(kPresets[kPreset_Default]);
17 #if AU_DEBUG_DISPATCHER
18 mDebugDispatcher =
new AUDebugDispatcher(
this);
23 OSStatus BlueFilter::GetParameterValueStrings(AudioUnitScope inScope, AudioUnitParameterID inParameterID, CFArrayRef* outStrings)
25 return kAudioUnitErr_InvalidProperty;
29 OSStatus BlueFilter::GetParameterInfo(AudioUnitScope inScope, AudioUnitParameterID inParameterID, AudioUnitParameterInfo &outParameterInfo)
31 OSStatus result = noErr;
33 outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
34 | kAudioUnitParameterFlag_IsReadable;
36 if(inScope == kAudioUnitScope_Global){
37 switch(inParameterID){
39 AUBase::FillInParameterName(outParameterInfo, kParameterOneName,
false);
40 outParameterInfo.unit = kAudioUnitParameterUnit_Hertz;
41 outParameterInfo.minValue = 10.0;
42 outParameterInfo.maxValue = 20000.0;
43 outParameterInfo.flags += kAudioUnitParameterFlag_IsHighResolution;
44 outParameterInfo.flags += kAudioUnitParameterFlag_DisplayLogarithmic;
45 outParameterInfo.defaultValue = kDefaultValue_ParamOne;
48 result = kAudioUnitErr_InvalidParameter;
53 result = kAudioUnitErr_InvalidParameter;
59 OSStatus BlueFilter::GetPropertyInfo( AudioUnitPropertyID inID,
60 AudioUnitScope inScope,
61 AudioUnitElement inElement,
65 return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
69 OSStatus BlueFilter::GetProperty( AudioUnitPropertyID inID,
70 AudioUnitScope inScope,
71 AudioUnitElement inElement,
74 return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
78 ComponentResult BlueFilter::GetPresets(CFArrayRef* outData)
const
83 CFMutableArrayRef presetsArray = CFArrayCreateMutable(NULL, kNumberPresets, NULL);
85 for(
int i=0; i<kNumberPresets; ++i)
86 CFArrayAppendValue(presetsArray, &kPresets [i]);
88 *outData = (CFArrayRef)presetsArray;
93 OSStatus BlueFilter::NewFactoryPresetSet(
const AUPreset &inNewFactoryPreset)
95 SInt32 chosenPreset = inNewFactoryPreset.presetNumber;
97 if(chosenPreset == kPreset_Low || chosenPreset == kPreset_High){
98 for(
int i = 0; i < kNumberPresets; ++i){
99 if(chosenPreset == kPresets[i].presetNumber){
100 switch(chosenPreset){
102 SetParameter(kParam_One, kParameter_Preset_Low);
105 SetParameter(kParam_One, kParameter_Preset_High);
108 SetAFactoryPresetAsCurrent(kPresets[i]);
113 return kAudioUnitErr_InvalidProperty;
118 #pragma mark BlueFilter Effect Kernel
120 void BlueFilter::BlueFilterKernel::Reset()
127 void BlueFilter::BlueFilterKernel::Process(
const Float32* inSourceP,
129 UInt32 inFramesToProcess,
130 UInt32 inNumChannels,
133 mInput->setVector(0, inFramesToProcess, (
TTFloat32*)inSourceP);
134 mOutput->setVectorSizeWithInt(inFramesToProcess);
137 mButter->setAttributeValue(
TT(
"frequency"), GetParameter(kParam_One));
138 mButter->process(mInput, mOutput);
140 mOutput->getVector(0, inFramesToProcess, (
TTFloat32*)inDestP);
#define TT
This macro is defined as a shortcut for doing a lookup in the symbol table.
float TTFloat32
32 bit floating point number
void TTDSP_EXPORT TTDSPInit(const char *pathToBinaries=NULL)
Initialise the Jamoma DSP library, as well as Jamoma Foundation foundation if needed.