WBLLFO.h

WBLLFO.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