view Source/ClassicAmbiDec.h @ 13:989865d55c73 tip

Commit.
author martinm_home <martin.morrell@eecs.qmul.ac.uk>
date Thu, 27 Sep 2012 23:30:29 +0100
parents 87dc3d84c120
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