view Source/SoundField.h @ 11:76e2e62635b4

Fixed the automation problem when a control isn't a child.
author martinm_home <martin.morrell@eecs.qmul.ac.uk>
date Thu, 27 Sep 2012 12:33:46 +0100
parents b5d48e9b9aea
children
line wrap: on
line source
//-------------------------------------------------------------------------------------------------------
// VST Plug-Ins SDK
// Version 2.4		$Date: 2006/11/13 09:08:27 $
//
// Category     : VST 2.x SDK Samples
// Filename     : adelay.h
// Created by   : Steinberg Media Technologies
// Description  : Simple Delay plugin (Mono->Stereo)
//
// © 2006, Steinberg Media Technologies, All Rights Reserved
//-------------------------------------------------------------------------------------------------------

#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 __SoundField__
#define __SoundField__

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

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


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





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

	//---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 bool getProgramNameIndexed (VstInt32 category, VstInt32 index, char *text);
    virtual void setProgram(VstInt32 program);
    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);
//    virtual bool getInputProperties	(VstInt32 index, VstPinProperties *properties);
//    virtual bool getOutputProperties (VstInt32 index, VstPinProperties *properties);
    
    
    // Variables
    char label[20];
    int bits;
	Decoder myDecoder;
    VstSpeakerArrangement* myInputArrangement;
    //VstSpeakerArrangement* myOutputArrangement;
	
    
    
private:       
    int     numberOutputs;
    int     numberInputs;

    SoundFieldProgram programs[5][kNumPrograms];
    
    //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