00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00014
00015 #ifndef __SNDENVELOPE_H__
00016 #define __SNDENVELOPE_H__
00017
00018 #import <Foundation/Foundation.h>
00019 #import "SndBreakpoint.h"
00020
00021 #define BP_NOT_FOUND (-1)
00022
00067 @protocol SndEnveloping
00068
00069
00070
00081 - (float)lookupYForX:(double)xVal;
00082
00091 - (int) breakpointIndexBeforeOrEqualToX:(double)xVal;
00092
00099 - (int) breakpointIndexAfterX:(double)xVal;
00100
00109 - (double) lookupXForBreakpoint:(int)bp;
00110
00119 - (float) lookupYForBreakpoint:(int)bp;
00120
00129 - (int) lookupFlagsForBreakpoint: (int) bp;
00130
00135 - (int) breakpointCount;
00136
00147 - (int) insertXValue: (double) xVal yValue: (float) yVal flags: (int) flags;
00148
00164 - (int) insertXValue: (double) xVal yValue: (float) yVal flags: (int) flags atBreakpoint: (int) bp;
00165
00171 - (BOOL) removeBreakpoint: (int) bp;
00172
00179 - (BOOL) removeBreakpointsBefore: (int) aBreakpoint;
00180
00187 - (BOOL) removeBreakpointsAfter: (int) aBreakpoint;
00188
00201 - (BOOL) replaceXValue: (double) xVal yValue: (float) yVal flags: (int) flags atBreakpoint: (int) bp;
00202
00203 @end
00204
00219 @interface SndEnvelope : NSObject <SndEnveloping>
00220 {
00222 NSLock *lock;
00224 NSMutableArray *breakpoints;
00225 }
00226
00234 - (int) breakpointIndexBeforeOrEqualToX:(double)xVal;
00235
00242 - (int) breakpointIndexAfterX: (double) xVal;
00243
00250 - (float) lookupYForBreakpoint: (int) bp;
00251
00261 - (int) insertXValue: (double) xVal yValue: (float) yVal flags: (int) flags;
00262
00273 - (int) insertXValue: (double) xVal yValue: (float) yVal flags: (int) flags atBreakpoint: (int) bp;
00274
00281 - (BOOL) removeBreakpoint: (int) aBreakpoint;
00282
00290 - (BOOL) removeBreakpointsBefore: (int) aBreakpoint;
00291
00300 - (BOOL) removeBreakpointsAfter: (int) aBreakpoint;
00301
00311 - (BOOL) replaceXValue: (double) xVal yValue: (float) yVal flags: (int) flags atBreakpoint: (int) bp;
00312
00313 @end
00314
00316
00317 #endif