MusicKit  0.0.0
SndAudioProcessor.h
00001 
00002 //
00003 //  $Id$
00004 //
00005 //  Description:
00006 //    Heavily inspired by Steinberg's VST effects plugins for the moment
00007 //
00008 //  Original Author: SKoT McDonald, <skot@tomandandy.com>
00009 //
00010 //  Copyright (c) 2001, The MusicKit Project.  All rights reserved.
00011 //
00012 //  Permission is granted to use and modify this code for commercial and
00013 //  non-commercial purposes so long as the author attribution and copyright
00014 //  messages remain intact and accompany all relevant code.
00015 //
00017 
00018 #ifndef __SNDKIT_SNDAUDIOPROCESSOR_H__
00019 #define __SNDKIT_SNDAUDIOPROCESSOR_H__
00020 
00021 #import <Foundation/Foundation.h>
00022 
00023 #import "SndAudioBuffer.h"
00024 #import "SndAudioProcessorChain.h"
00025 
00027 
00034 @interface SndAudioProcessor : NSObject {
00036     int numParams;
00038     SndAudioProcessorChain *audioProcessorChain;
00040     NSString *name;
00042     BOOL  active;
00044     id parameterDelegate;
00045 }
00046 
00054 + (void) registerAudioProcessorClass: (id) fxclass;
00055 
00062 + (NSArray*) fxClasses;
00063 
00071 + (NSArray *) availableAudioProcessors;
00072 
00079 + audioProcessor;
00080 
00087 + (SndAudioProcessor *) audioProcessorNamed: (NSString *) processorName;
00088 
00093 - init;
00094 
00101 - initWithParamCount: (const int) count name: (NSString *) name;
00102 
00109 - initWithParameterDictionary: (NSDictionary *) paramDictionary name: (NSString *) name;
00110 
00116 - reset;
00117 
00118 - (void) setNumParams: (const int) c;
00119 
00124 - (int) paramCount;
00125 
00133 - (float) paramValue: (const int) index;
00134 
00140 - (NSString *) paramName: (const int) index;
00141 
00149 - (NSString *) paramLabel: (const int) index;
00150 
00160 - (NSString *) paramDisplay: (const int) index;
00161 
00170 - (void) setParam: (const int) index toValue: (const float) value;
00171 
00185 - (BOOL) processReplacingInputBuffer: (SndAudioBuffer *) inB
00186                         outputBuffer: (SndAudioBuffer *) outB;
00187 
00198 - (void) setAudioProcessorChain: (SndAudioProcessorChain *) inChain;
00199 
00207 - (SndAudioProcessorChain *) audioProcessorChain;
00208 
00214 - (BOOL) isActive;
00215 
00221 - setActive: (const BOOL) b;
00222 
00229 - setName: (NSString *) aName;
00230 
00237 - (NSString *) name;
00238 
00246 - (NSDictionary *) paramDictionary;
00247 
00255 - (void) setParamsWithDictionary: (NSDictionary *) paramDictionary;
00256 
00264 - (void) setParamWithKey: (NSString *) keyName toValue: (NSNumber *) value;
00265 // TODO - (void) setParamWithKey: (NSString *) keyName toValue: (NSValue *) value;
00266 
00267 
00274 - (NSNumber *) paramObjectForIndex: (const int) i;
00275 // TODO - (id) paramObjectForIndex: (const int) i;
00276 
00283 - (void) setParameterDelegate: (id) delegate;
00284 
00288 - (id) parameterDelegate;
00289 
00290 @end
00291 
00292 @protocol SndAudioProcessorParameterDelegate
00293 
00294 - (void) parameter: (unsigned int) parameter 
00295   ofAudioProcessor: (SndAudioProcessor *) processor
00296        didChangeTo: (float) inValue;
00297 
00298 @end
00299 
00300 #endif