Editor.h 1.42 KB
#ifndef _AE_Editor_h
#define _AE_Editor_h

#include <Xm/Xm.h>
#include "Assets.h"



class Editor
{
  protected:
    Widget    shellWidget;

  public:
    Editor();
    void RaiseWindow(void);
};

typedef struct {
    int        item;
    Editor     *editor;
} AEItemRef;

#define NUM_FX_PARAMS     8
#define FX_PARAM_OFFSET   2

class ReverbEditor : public Editor
{
  protected:

  public:    /* most variables need to be public for callback access */
    AEReverb         *reverbAsset;
    int              numFxSets;
    int              curParamSet;
    Widget           scale[NUM_FX_PARAMS];

    ReverbEditor(void *theEdMgr, Display *display);

};


class BankEditor : public Editor
{
  protected:
    AssetPair  *assetList;
    int        numBanks;
    int        curBankNum;
    Widget     theForm;
    
  public:
    BankEditor(void *theEdMgr, Display *display);

    void    CreateBankMenu(void);
    
};

#define IE_NUM_SLIDERS    13

class InstEditor : public Editor
{
  protected:
    Widget     theForm,instMenu;

  public:
    RefList    *instMenuList;
    Widget     theSlider[IE_NUM_SLIDERS];
    AEInst     *curInst;

    InstEditor(void *theEdMgr, Display *display);
    ~InstEditor();
    void    CreateInstMenu(int numInsts, AssetPair *instAssetPairs);

};

typedef struct {
    AEInst      *inst;
    InstEditor  *editor;
} AEInstRef;

typedef struct {
    InstEditor  *editor;
    int         sliderParam;
} AEInstSRef;

#endif