AudioUnitEffectExample/Source/CocoaUI/AppleDemoFilter_GraphView.h
/* |
Copyright (C) 2016 Apple Inc. All Rights Reserved. |
See LICENSE.txt for this sample’s licensing information |
Abstract: |
AU Filter Graph View |
*/ |
#import <Cocoa/Cocoa.h> |
#import "Filter.h" |
/************************************************************************************************************/ |
/* NOTE: It is important to rename ALL ui classes when using the XCode Audio Unit with Cocoa View template */ |
/* Cocoa has a flat namespace, and if you use the default filenames, it is possible that you will */ |
/* get a namespace collision with classes from the cocoa view of a previously loaded audio unit. */ |
/* We recommend that you use a unique prefix that includes the manufacturer name and unit name on */ |
/* all objective-C source files. You may use an underscore in your name, but please refrain from */ |
/* starting your class name with an undescore as these names are reserved for Apple. */ |
/************************************************************************************************************/ |
@interface AppleDemoFilter_GraphView : NSView |
{ |
NSRect mGraphFrame; // This is the frame of the drawing area of the view |
float mActiveWidth; // The usable portion of the graph |
NSPoint mEditPoint; // This is the current location in the drawing area that is active |
BOOL mMouseDown; // True if the mouse is currently down |
NSColor *curveColor; // the current color of the graph curve |
NSImage *mBackgroundCache; // An image cache of the background so that we don't have to re-draw the grid lines and labels all the time |
float mRes; // internal copy of the resonance value |
float mFreq; // internal copy of the frequency value |
NSBezierPath *mCurvePath; // The bezier path that is used to draw the curve. |
NSDictionary *mDBAxisStringAttributes; // Text attributes used to draw the strings on the db axis |
NSDictionary *mFreqAxisStringAttributes; // Text attributes used to draw the strings on the frequency axis |
} |
-(void) setRes: (float) res; // sets the graph's internal resonance value (to match the au) |
-(void) setFreq: (float) freq; // sets the graphs' internal frequency value (to match the au |
-(float)getRes; // gets the graph's internal resonance value (so the au can match the graph) |
-(float)getFreq; // gets the graph's internal frequency value (so the au can match the graph) |
-(double) locationForFrequencyValue: (double) value; // converts a frequency value to the pixel coordinate in the graph |
-(double) locationForDBValue: (double) value; // converts a db value to the pixel coordinate in the graph |
-(FrequencyResponse *) prepareDataForDrawing: (FrequencyResponse *) data; // prepares the data for drawing by initializing frequency fields based on values on pixel boundaries |
-(void) plotData: (FrequencyResponse *) data; // draws the curve data |
-(void) disableGraphCurve; // update the view, but don't draw the curve (used when the AU is not initialized and the curve can not be retrieved) |
-(void) handleBeginGesture; // called when parameter automation started |
-(void) handleEndGesture; // called when parameter automation finished |
@end |
Copyright © 2016 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2016-02-19