00001
00002
00003
00004
00005
00006
00007
00008
00009 #import <AppKit/AppKit.h>
00010 #import <AudioUnit/AudioUnit.h>
00011 #import <AudioToolbox/AudioToolbox.h>
00012
00013 @class AUGUIParameterBinding;
00014 @class AUGUIView;
00015
00016 @interface AUGUIController : NSController {
00017 AUParameterListenerRef mParameterListener;
00018
00019 NSMutableArray *mBindings;
00020 NSMutableDictionary *mParams;
00021
00022 IBOutlet AUGUIView *_cocoaView;
00023 }
00024
00025 #pragma mark ____ PUBLIC FUNCTIONS ____
00026 - (AudioUnit)AU;
00027
00028 - (AUGUIView *)cocoaView;
00029
00030 - (NSMutableArray *) bindings;
00031 - (void) setBindings: (NSArray *)newBindings;
00032 - (AUGUIParameterBinding *) addBinding:(NSControl *)control withProperty:(NSString *)string forID:(int)paramID;
00033
00034 - (void)registerBinding:(AUGUIParameterBinding *)binding;
00035 - (void)setParameter:(int)paramID fromControl:(NSControl *)control;
00036
00037 #pragma mark ____ PRIVATE FUNCTIONS
00038 - (void)_synchronizeUIWithParameterValues;
00039 - (void)_addListeners;
00040 - (void)_removeListeners;
00041
00042 #pragma mark ____ LISTENER CALLBACK DISPATCHEE ____
00043 - (void)_parameterListener:(void *)inObject parameter:(const AudioUnitParameter *)inParameter value:(Float32)inValue;
00044
00045 @end