00001 00002 // 00003 // $Id: SndAudioProcessorChain.h 3449 2009-04-04 16:52:47Z leighsmith $ 00004 // 00005 // Original Author: SKoT McDonald, <skot@tomandandy.com> 00006 // 00007 // Copyright (c) 2001, The MusicKit Project. All rights reserved. 00008 // 00009 // Permission is granted to use and modify this code for commercial and non-commercial 00010 // purposes so long as the author attribution and copyright messages remain intact and 00011 // accompany all relevant code. 00012 // 00014 00015 #ifndef __SNDAUDIOPROCESSORCHAIN_H__ 00016 #define __SNDAUDIOPROCESSORCHAIN_H__ 00017 00018 #import <Foundation/Foundation.h> 00019 00020 @class SndAudioBuffer; 00021 @class SndAudioProcessor; 00022 @class SndAudioFader; 00023 00030 @interface SndAudioProcessorChain : NSObject 00031 { 00033 NSMutableArray *audioProcessorArray; 00035 BOOL bypassProcessing; 00037 SndAudioBuffer *processorOutputBuffer; 00039 SndAudioFader *postFader; 00041 double nowTime; 00042 } 00043 00048 + audioProcessorChain; 00049 00056 - init; 00057 00061 - (void) dealloc; 00062 00068 - bypassProcessors: (BOOL) b; 00069 00077 - addAudioProcessor: (SndAudioProcessor*) proc; 00078 00087 - insertAudioProcessor: (SndAudioProcessor *) newAudioProcessor 00088 atIndex: (int) processorIndex; 00089 00097 - removeAudioProcessor: (SndAudioProcessor*) proc; 00098 00106 - removeAudioProcessorAtIndex: (int) index; 00107 00115 - (SndAudioProcessor *) processorAtIndex: (int) index; 00116 00121 - removeAllProcessors; 00122 00134 - processBuffer: (SndAudioBuffer *) buff forTime: (double) t; 00135 00140 - (int) processorCount; 00141 00148 - (NSArray *) processorArray; 00149 00156 - (BOOL) isBypassingFX; 00157 00164 - (void) setBypass: (BOOL) b; 00165 00172 - (SndAudioFader *) postFader; 00173 00181 - (void) setPostFader: (SndAudioFader *) newPostFader; 00182 00190 - (double) nowTime; 00191 00192 @end 00193 00195 00196 #endif