view Source/ClassicAmbiDec.h @ 12:87dc3d84c120

Addressed the load program defaults over user settings 'feature'. Removed isChild on objects that are added before the frame creation since a)they're always there and b) doesn't write to all displays present.
author martinm_home <martin.morrell@eecs.qmul.ac.uk>
date Thu, 27 Sep 2012 23:29:16 +0100
parents
children
line wrap: on
line source

#define kNumPrograms 5 //Number of Programs
#define MAX_CHANNELS 6 //Max Input/Output Count
#define VERSION      1000 //Plugin Version
#define kVstVersion  2400 //Plugin implemented in VST Version

#ifndef __ClassicAmbiDec__
#define __ClassicAmbiDec__

//VST SDK Header(s)
#include "audioeffectx.h"

//Parameters Header
#include "ClassicAmbiDecParameters.h"
#include "Decoder.h"


//------------------------------------------------------------------------
struct ClassicAmbiDecProgram
{
	friend class ClassicAmbiDec;
    
public:
	ClassicAmbiDecProgram ();
	~ClassicAmbiDecProgram () {}
	
private:
    char name[kVstMaxProgNameLen];
    float mode;
    float width;
    float pattern;
	float rearVerb;
	float hiVerb;
    float centrePattern;
    float centreGain;
    float subGain;
    float surroundMode;
    float surroundPattern;
    float surroundWidth;
    float surroundGain;
    float fc;
};





//------------------------------------------------------------------------
class ClassicAmbiDec : public AudioEffectX
{
	friend class MyEditor;
public:
	ClassicAmbiDec (audioMasterCallback audioMaster);
	~ClassicAmbiDec ();
	

	//---from AudioEffect-----------------------
    //Calls used from AudioEffectX
    //
    virtual void resume ();
    virtual void suspend ();
    virtual void close ();
    virtual void open ();
	virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);
    virtual void processDoubleReplacing (double ** 	inputs, double ** 	outputs, VstInt32 sampleFrames);
    
    virtual void setProgram(VstInt32 program);
    virtual void setProgramName (char* name);
	virtual void getProgramName (char* name);
    virtual bool getProgramNameIndexed (VstInt32 category, VstInt32 index, char *text);
    //virtual VstInt32 getProgram();
	
	virtual void setParameter (VstInt32 index, float value);
	virtual float getParameter (VstInt32 index);
	virtual void getParameterLabel (VstInt32 index, char* label);
	virtual void getParameterDisplay (VstInt32 index, char* text);
	virtual void getParameterName (VstInt32 index, char* text);
	
    virtual void setSampleRate (float sampleRate);
    
	virtual bool getEffectName (char* name);
	virtual bool getVendorString (char* text);
	virtual bool getProductString (char* text);
	virtual VstInt32 getVendorVersion ();
    virtual VstInt32 getVstVersion();

	virtual VstPlugCategory getPlugCategory () { return kPlugCategSpacializer; }
	virtual bool setSpeakerArrangement (VstSpeakerArrangement* pluginInput, VstSpeakerArrangement* pluginOutput);
    virtual bool getSpeakerArrangement (VstSpeakerArrangement **pluginInput, VstSpeakerArrangement **pluginOutput);
    
    
    // Variables
    char label[20];
    int bits;
	Decoder myDecoder;
    VstSpeakerArrangement* myInputArrangement;
	
    
    
private:       
    int     numberOutputs;
    int     numberInputs;

    ClassicAmbiDecProgram* programs_20;
    ClassicAmbiDecProgram* programs_21;
    ClassicAmbiDecProgram* programs_40;
    ClassicAmbiDecProgram* programs_50;
    ClassicAmbiDecProgram* programs_51;
    
    //Parameter float values
    float fMode;
    float fWidth;
    float fPattern;
    float fRotate;
    float fTilt;
	float fTumble;
	float fZoom;
	float fZoomMethod;
	float fRearVerb;
	float fHiVerb;
    float fCentrePattern;
    float fCentreGain;
    float fSubGain;
    float fSurroundMode;
    float fSurroundPattern;
    float fSurroundWidth;
    float fSurroundGain;
    float fFc;
    float fDecoderMode;
    float fChannelOrder;
};


#endif