view Source/SoundField.h @ 0:2fa9c10568d1

Initial setup.
author martinm_home <martin.morrell@eecs.qmul.ac.uk>
date Tue, 14 Aug 2012 09:34:15 +0100
parents
children 503cbcdd0b2a
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 1 //Number of Programs 
//#define kNumParams 10 //Number of Parameters
#define MAX_CHANNELS 2 //Max Input/Output Count
#define VERSION      1001 //Plugin Version

#ifndef __SoundField__
#define __SoundField__


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

//Parameters Header
#include "SoundFieldParameters.h"

#include "Decoder.h"




//------------------------------------------------------------------------
struct SoundFieldProgram
{
	//float param[kNumPrograms]; //Array of 
    char name[20];
public:
	SoundFieldProgram ();
	~SoundFieldProgram () {}
	
private:	

};


//------------------------------------------------------------------------
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 setProgram (VstInt32 program);
	virtual void setProgramName (char* name);
	virtual void getProgramName (char* name);
	virtual bool getProgramNameIndexed (VstInt32 category, VstInt32 index, char* text);
	
	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 bool getEffectName (char* name);
	virtual bool getVendorString (char* text);
	virtual bool getProductString (char* text);
	virtual VstInt32 getVendorVersion ();

	
	//virtual VstPlugCategory getPlugCategory () { return kPlugCategEffect; }
    

    //virtual bool getSpeakerArrangement (VstSpeakerArrangement** pluginInput, VstSpeakerArrangement** pluginOutput);
	virtual bool setSpeakerArrangement (VstSpeakerArrangement* pluginInput, VstSpeakerArrangement* pluginOutput);

    
    // Variables
    char label[20];
    int bits;
	Decoder myDecoder;
	
    
    
private:
    //Variables/Functions for DSP i.e. private from the Host
    SoundFieldProgram* programs;
    
    VstSpeakerArrangement* plugInput;
	VstSpeakerArrangement* plugOutput;
    
    //Private Variables
    float* sBuffers[MAX_CHANNELS];
	float* pBuffers[2];
    
    char programName[kVstMaxProgNameLen + 1];

    //Parameter float values
    float fMode;
    float fWidth;
    float fPattern;
    float fRotate;
    float fTilt;
	float fTumble;
	float fZoom;
	float fZoomMethod;
	float fRearVerb;
	float fHiVerb;
};


#endif