WBLLFO.hWBLLFO.h
#ifndef _WBLLFO_
#define _WBLLFO_
#include "WBLSlider.h"
#include "NAEditInstSlider.h"
#define kLFOTableSize 1024L
#define kLFOTableRange 4096L /* ±range */
typedef struct
{
WBLSlider levelS;
WBLSlider rateS;
Rect r;
long levelLow,levelHigh;
long step; /* 16.16 index into lfotable */
Boolean visible,clickable;
} WBLLFO;
typedef struct
{
OSType synthType;
KnobDescription kd;
WBLLFO lfo;
MCPopup knobPopup;
Boolean visible,clickable;
Rect lfoShapeR;
long lfoShapeType;
} WBLKnobLFO;
enum
{
kWBLLFOShapeTriangle = 1,
kWBLLFOShapeSquare,
kWBLLFOShapeRampUp,
kWBLLFOShapeRampDown,
kWBLLFOShapeSpike1,
kWBLLFOShapeSpike2,
kWBLLFOShapeSpike3,
kWBLLFOShapeRandom
};
#include "WBLLFO.h"
void InitializeWBLLFO(WBLLFO *wblLFO,Rect *r,
long levelLow,long levelHigh,
long rateHigh);
Boolean HitWBLLFO(WBLLFO *wblLFO,Point p);
void TrackWBLLFO(WBLLFO *wblLFO,Point p,ControlActionUPP actionProc);
void DrawWBLLFO(WBLLFO *wblLFO);
long AdvanceWBLLFO(WBLLFO *wblLFO,long *lfoTable);
void IdleWBLLFO(WBLLFO *wblLFO);
void SetWBLLFORate(WBLLFO *wblLFO,long rate);
long GetWBLLFORate(WBLLFO *wblLFO);
void SetWBLLFOState(WBLLFO *wlbKnob,Boolean visible,Boolean clickable);
void InitializeWBLKnobLFO(WBLKnobLFO *wblKnob,Rect *r,long levelLow,long levelHigh,long rateHigh,
OddMenu om,long menuChoice);
void SetWBLKnobLFORange(WBLKnobLFO *wblKnob,long low,long high);
void IdleWBLKnobLFO(WBLKnobLFO *wblKnob);
long AdvanceWBLKnobLFO(WBLKnobLFO *wblKnob,long *lfoTable);
void DrawWBLKnobLFO(WBLKnobLFO *wblKnob);
Boolean HitWBLKnobLFO(WBLKnobLFO *wblKnob,Point p);
long TrackWBLKnobLFO(WBLKnobLFO *wblKnob,Point p,ControlActionUPP actionProc);
void SetWBLKnobLFOMenu(WBLKnobLFO *wblKnob,OddMenu om,long menuChoice);
long GetWBLKnobLFOChoice(WBLKnobLFO *wblKnob);
void SetWBLKnobLFOState(WBLKnobLFO *wlbKnob,Boolean visible,Boolean clickable);
void SetWBLKnobLFOKD(WBLKnobLFO *wblKnob,KnobDescription *kd,
OSType synthType);
#endif //_WBLLFO_
AM.4/17/96 - 6:57.PM