diff options
Diffstat (limited to 'public.sdk/samples/vst2.x/again/source/again.cpp')
| -rw-r--r-- | public.sdk/samples/vst2.x/again/source/again.cpp | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/public.sdk/samples/vst2.x/again/source/again.cpp b/public.sdk/samples/vst2.x/again/source/again.cpp new file mode 100644 index 0000000..9d0af10 --- /dev/null +++ b/public.sdk/samples/vst2.x/again/source/again.cpp @@ -0,0 +1,139 @@ +//------------------------------------------------------------------------------------------------------- +// VST Plug-Ins SDK +// Version 2.4 $Date: 2006/11/13 09:08:27 $ +// +// Category : VST 2.x SDK Samples +// Filename : again.cpp +// Created by : Steinberg Media Technologies +// Description : Stereo plugin which applies Gain [-oo, 0dB] +// +// © 2006, Steinberg Media Technologies, All Rights Reserved +//------------------------------------------------------------------------------------------------------- + +#include "again.h" + +//------------------------------------------------------------------------------------------------------- +AudioEffect* createEffectInstance (audioMasterCallback audioMaster) +{ + return new AGain (audioMaster); +} + +//------------------------------------------------------------------------------------------------------- +AGain::AGain (audioMasterCallback audioMaster) +: AudioEffectX (audioMaster, 1, 1) // 1 program, 1 parameter only +{ + setNumInputs (2); // stereo in + setNumOutputs (2); // stereo out + setUniqueID ('Gain'); // identify + canProcessReplacing (); // supports replacing output + canDoubleReplacing (); // supports double precision processing + + fGain = 1.f; // default to 0 dB + vst_strncpy (programName, "Default", kVstMaxProgNameLen); // default program name +} + +//------------------------------------------------------------------------------------------------------- +AGain::~AGain () +{ + // nothing to do here +} + +//------------------------------------------------------------------------------------------------------- +void AGain::setProgramName (char* name) +{ + vst_strncpy (programName, name, kVstMaxProgNameLen); +} + +//----------------------------------------------------------------------------------------- +void AGain::getProgramName (char* name) +{ + vst_strncpy (name, programName, kVstMaxProgNameLen); +} + +//----------------------------------------------------------------------------------------- +void AGain::setParameter (VstInt32 index, float value) +{ + fGain = value; +} + +//----------------------------------------------------------------------------------------- +float AGain::getParameter (VstInt32 index) +{ + return fGain; +} + +//----------------------------------------------------------------------------------------- +void AGain::getParameterName (VstInt32 index, char* label) +{ + vst_strncpy (label, "Gain", kVstMaxParamStrLen); +} + +//----------------------------------------------------------------------------------------- +void AGain::getParameterDisplay (VstInt32 index, char* text) +{ + dB2string (fGain, text, kVstMaxParamStrLen); +} + +//----------------------------------------------------------------------------------------- +void AGain::getParameterLabel (VstInt32 index, char* label) +{ + vst_strncpy (label, "dB", kVstMaxParamStrLen); +} + +//------------------------------------------------------------------------ +bool AGain::getEffectName (char* name) +{ + vst_strncpy (name, "Gain", kVstMaxEffectNameLen); + return true; +} + +//------------------------------------------------------------------------ +bool AGain::getProductString (char* text) +{ + vst_strncpy (text, "Gain", kVstMaxProductStrLen); + return true; +} + +//------------------------------------------------------------------------ +bool AGain::getVendorString (char* text) +{ + vst_strncpy (text, "Steinberg Media Technologies", kVstMaxVendorStrLen); + return true; +} + +//----------------------------------------------------------------------------------------- +VstInt32 AGain::getVendorVersion () +{ + return 1000; +} + +//----------------------------------------------------------------------------------------- +void AGain::processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames) +{ + float* in1 = inputs[0]; + float* in2 = inputs[1]; + float* out1 = outputs[0]; + float* out2 = outputs[1]; + + while (--sampleFrames >= 0) + { + (*out1++) = (*in1++) * fGain; + (*out2++) = (*in2++) * fGain; + } +} + +//----------------------------------------------------------------------------------------- +void AGain::processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames) +{ + double* in1 = inputs[0]; + double* in2 = inputs[1]; + double* out1 = outputs[0]; + double* out2 = outputs[1]; + double dGain = fGain; + + while (--sampleFrames >= 0) + { + (*out1++) = (*in1++) * dGain; + (*out2++) = (*in2++) * dGain; + } +} |
