8 #include "public.sdk/source/vst/vstsinglecomponenteffect.h" 9 #include "pluginterfaces/vst/ivstparameterchanges.h" 12 #include "pluginterfaces/vst/ivstevents.h" 15 #include "pluginterfaces/base/ustring.h" 25 #include <CoreFoundation/CoreFoundation.h> 27 #ifdef ENABLE_WINDOWS_H 30 extern void* hInstance;
42 class VSTParamUpdateQueue;
45 class VSTMIDIEventQueue;
58 class VST3Plugin :
public SingleComponentEffect,
public IMidiMapping
69 tresult PLUGIN_API
initialize(FUnknown* context)
override;
72 tresult PLUGIN_API
setBusArrangements(SpeakerArrangement* inputs, int32 numIns, SpeakerArrangement* outputs, int32 numOuts)
override;
81 tresult PLUGIN_API
setActive(TBool state)
override;
85 tresult PLUGIN_API
setState(IBStream* fileStream)
override;
86 tresult PLUGIN_API
getState(IBStream* fileStream)
override;
93 tresult PLUGIN_API
process(ProcessData& data)
override;
96 virtual tresult PLUGIN_API
getMidiControllerAssignment(int32 busIndex, int16 channel, CtrlNumber midiControllerNumber, ParamID&
id)
override;
99 IPlugView* PLUGIN_API
createView(
const char* _name)
override;
105 virtual tresult
receiveText(
const char8* text)
override;
114 void updateMeters(ProcessData& data,
bool forceOff =
false);
129 virtual tresult PLUGIN_API
getProgramListInfo(int32 listIndex, ProgramListInfo& info )
override;
130 virtual tresult PLUGIN_API
getProgramName(ProgramListID listId, int32 programIndex, String128 name )
override;
131 virtual tresult PLUGIN_API
getProgramInfo(ProgramListID listId, int32 programIndex, CString attributeId , String128
attributeValue )
override;
132 virtual tresult PLUGIN_API
hasProgramPitchNames(ProgramListID listId, int32 programIndex)
override;
133 virtual tresult PLUGIN_API
getProgramPitchName(ProgramListID listId, int32 programIndex, int16 midiPitch, String128 name )
override;
134 virtual tresult
setProgramName(ProgramListID listId, int32 programIndex,
const String128 name )
override;
137 virtual void PLUGIN_API
update(FUnknown* changedUnknown, int32 message)
override ;
160 OBJ_METHODS(
VST3Plugin, SingleComponentEffect)
162 DEF_INTERFACE(IMidiMapping)
163 DEF_INTERFACE(IUnitInfo)
164 END_DEFINE_INTERFACES(SingleComponentEffect)
165 REFCOUNT_METHODS(SingleComponentEffect)
174 bool plugInSideBypass =
false;
175 bool hasSidechain =
false;
184 typedef std::vector<IPtr<ProgramList> > ProgramListVector;
185 typedef std::map<ProgramListID, ProgramListVector::size_type> ProgramIndexMap;
186 typedef std::vector<IPtr<Unit> > UnitVector;
188 ProgramListVector programLists;
189 ProgramIndexMap programIndexMap;
193 #if defined _WINDOWS || defined _WINDLL 194 #ifdef ENABLE_WINDOWS_H 197 char* getMyDLLDirectory(UString cPluginName)
199 HMODULE hmodule = GetModuleHandle(cPluginName);
202 memset(&dir[0], 0, MAX_PATH*
sizeof(TCHAR));
203 dir[MAX_PATH-1] =
'\0';
206 GetModuleFileName(hmodule, &dir[0], MAX_PATH);
211 UString DLLPath(&dir[0], MAX_PATH);
213 char* pFullPath =
new char[MAX_PATH];
214 char* pDLLRoot =
new char[MAX_PATH];
216 DLLPath.toAscii(pFullPath, MAX_PATH);
218 size_t nLenDir = strlen(pFullPath);
219 size_t nLenDLL = wcslen(cPluginName) + 1;
220 memcpy(pDLLRoot, pFullPath, nLenDir-nLenDLL);
221 pDLLRoot[nLenDir-nLenDLL] =
'\0';
233 char* getMyComponentDirectory(CFStringRef bundleID)
235 if (bundleID !=
nullptr)
237 CFBundleRef helixBundle = CFBundleGetBundleWithIdentifier( bundleID );
238 if(helixBundle !=
nullptr)
240 CFURLRef bundleURL = CFBundleCopyBundleURL ( helixBundle );
241 if(bundleURL !=
nullptr)
243 CFURLRef componentFolderPathURL = CFURLCreateCopyDeletingLastPathComponent(
nullptr, bundleURL);
245 CFStringRef myComponentPath = CFURLCopyFileSystemPath(componentFolderPathURL, kCFURLPOSIXPathStyle);
246 CFRelease(componentFolderPathURL);
248 if(myComponentPath !=
nullptr)
250 int nSize = CFStringGetLength(myComponentPath);
251 char* path =
new char[nSize+1];
252 memset(path, 0, (nSize+1)*
sizeof(
char));
254 bool success = CFStringGetCString(myComponentPath, path, nSize+1, kCFStringEncodingASCII);
255 CFRelease(myComponentPath);
257 if(success)
return path;
260 CFRelease(bundleURL);
287 unsigned int bufferSize = 0;
288 ParamValue initialValue = 0.0;
289 ParamValue previousValue = 0.0;
290 ParamValue maxValue = 0.0;
291 ParamValue minValue = 0.0;
295 ParamValue yIntercept;
298 unsigned int* sampleAccuracy =
nullptr;
301 IParamValueQueue* parameterQueue =
nullptr;
304 bool dirtyBit =
false;
305 int sampleOffset = 0;
310 void initialize(ParamValue _initialValue, ParamValue _minValue, ParamValue _maxValue,
unsigned int* _sampleAccuracy);
311 void setParamValueQueue(IParamValueQueue* _paramValueQueue,
unsigned int _bufferSize);
313 ParamValue
interpolate(
int x1,
int x2, ParamValue y1, ParamValue y2,
int x);
318 bool getValueAtOffset(
long int _sampleOffset,
double _previousValue,
double& _nextValue);
355 switch(hostMessageInfo.hostMessage)
361 for(
unsigned int i = 0; i < guiUpdateData.
guiParameters.size(); i++)
372 for (
unsigned int i = 0; i < guiUpdateData.
guiParameters.size(); i++)
480 for (customViewControllerMap::const_iterator it = customViewMap.begin(), end = customViewMap.end(); it != end; ++it)
487 virtual void parameterChanged(int32_t controlID,
double actualValue,
double normalizedValue)
508 if(!param)
return 0.0;
510 return param->getNormalized();
531 MessageInfo info(PLUGINGUI_REGISTER_SUBCONTROLLER);
549 MessageInfo info(PLUGINGUI_DE_REGISTER_SUBCONTROLLER);
566 customViewControllerMap::const_iterator it = customViewMap.find(customViewName);
567 if (it != customViewMap.end())
575 customViewMap.insert(std::make_pair(customViewName, pCVC));
597 MessageInfo info(PLUGINGUI_DE_REGISTER_CUSTOMVIEW);
621 for (customViewControllerMap::const_iterator it = customViewMap.begin(), end = customViewMap.end(); it != end; ++it)
623 it->second->clearCustomViewPtr();
627 it->second->clearCustomViewPtr();
665 for (customViewControllerMap::const_iterator it = customViewMap.begin(), end = customViewMap.end(); it != end; ++it)
667 if (it->second->getCustomViewPtr() == customViewConnector)
681 if (it->second->getCustomViewPtr() == customViewConnector)
739 bool eventOccurred =
false;
740 bool haveEvents =
false;
746 const unsigned char MIDI_NOTE_OFF = 0x80;
747 const unsigned char MIDI_NOTE_ON = 0x90;
748 const unsigned char MIDI_POLY_PRESSURE = 0xA0;
754 if (e.sampleOffset != sampleOffset)
761 case Event::kNoteOnEvent:
765 event.midiChannel = (
unsigned int)e.noteOn.channel;
766 event.
midiData1 = (
unsigned int)e.noteOn.pitch;
767 event.midiData2 = (
unsigned int)(127.0*e.noteOn.velocity);
768 event.midiSampleOffset = e.sampleOffset;
769 eventOccurred =
true;
778 case Event::kNoteOffEvent:
783 event.midiChannel = (
unsigned int)e.noteOff.channel;
784 event.
midiData1 = (
unsigned int)e.noteOff.pitch;
785 event.midiData2 = (
unsigned int)(127.0*e.noteOff.velocity);
786 event.midiSampleOffset = e.sampleOffset;
787 eventOccurred =
true;
797 case Event::kPolyPressureEvent:
800 event.
midiMessage = (
unsigned int)MIDI_POLY_PRESSURE;
801 event.midiChannel = (
unsigned int)e.polyPressure.channel;
802 event.
midiData1 = (
unsigned int)e.polyPressure.pitch;
803 event.midiData2 = (
unsigned int)(127.0*e.polyPressure.pressure);
804 event.midiSampleOffset = e.sampleOffset;
805 eventOccurred =
true;
818 if (e.sampleOffset == sampleOffset)
831 return eventOccurred;
857 virtual void PLUGIN_API update (FUnknown* changedUnknown, int32 message)
859 if(message == IDependent::kChanged && receiver && editController)
861 double normalizedValue = editController->getParamNormalized (receiver->
getControlID());
892 typedef std::map<int32_t, VST3UpdateHandler*> UpdaterHandlerMap;
893 UpdaterHandlerMap updateHandlers;
896 IPlugFrame* plugFrame;
897 const ViewRect& getRect()
const {
return rect; }
898 void setRect(
const ViewRect& r) { rect = r; }
899 bool isAttached()
const {
return systemWindow != 0; }
900 virtual void attachedToParent()
override {}
901 virtual void removedFromParent()
override {}
903 virtual tresult PLUGIN_API
attached(
void* parent, FIDString type)
override;
904 virtual tresult PLUGIN_API
removed()
override;
905 virtual tresult PLUGIN_API onWheel(
float distance)
override {
return kResultFalse; }
908 virtual tresult PLUGIN_API
onSize(ViewRect* newSize)
override;
909 virtual tresult PLUGIN_API
getSize(ViewRect* size)
override;
911 virtual tresult PLUGIN_API onFocus(TBool )
override {
return kResultFalse; }
912 virtual tresult PLUGIN_API
setFrame(IPlugFrame* frame)
override;
913 virtual tresult PLUGIN_API canResize()
override{
return kResultTrue; }
914 virtual tresult PLUGIN_API checkSizeConstraint(ViewRect* rect)
override 920 ViewRect viewRect = getRect();
921 rect->right = viewRect.right;
922 rect->bottom = viewRect.bottom;
927 virtual bool setWindowFrameSize(
double left = 0,
double top = 0,
double right = 0,
double bottom = 0) override
929 ViewRect vr(0, 0, right, bottom);
932 plugFrame->resizeView(
this, &vr);
938 ViewRect viewRect = getRect();
941 right = viewRect.getWidth();
942 bottom = viewRect.getHeight();
tresult PLUGIN_API getState(IBStream *fileStream) override
This is the WRITE part of the serialization process. We get the stream interface and use it to write ...
Definition: vst3plugin.cpp:579
Information that includes the message code as well as the message data.
Definition: pluginstructures.h:705
static const char * getPluginName()
static function for VST3 clsss factory
Definition: vst3plugin.cpp:1396
unsigned int sampleAccuracy
sample accurate parameter automation
Definition: vst3plugin.h:180
Attribute value smashed down into a union.
Definition: pluginstructures.h:900
bool doControlUpdate(ProcessData &data)
Find and issue Control Changes.
Definition: vst3plugin.cpp:623
virtual void sendHostMessage(const HostMessageInfo &hostMessageInfo)
process a message; by default it processes sendGUIUpdate to safely send a parameter change event but ...
Definition: vst3plugin.h:353
virtual tresult setProgramName(ProgramListID listId, int32 programIndex, const String128 name) override
Set preset name.
Definition: vst3plugin.cpp:1250
ProgramList * getProgramList(ProgramListID listId) const
part of the IUnitInfo support for presets; generally no user editable code here.
Definition: vst3plugin.cpp:1143
void setEventList(IEventList *_inputEvents)
Definition: vst3plugin.h:717
tresult PLUGIN_API canProcessSampleSize(int32 symbolicSampleSize) override
Client queries us for our supported sample lengths.
Definition: vst3plugin.cpp:409
tresult notifyPogramListChange(ProgramListID listId, int32 programIndex=kAllProgramInvalid)
If list changes; should not be called as we only have one program list.
Definition: vst3plugin.cpp:1160
The PluginGUI object that maintains the entire GUI operation and has #defines to use with AAX...
Definition: plugingui.h:410
tresult PLUGIN_API setActive(TBool state) override
VST3 plugins may be turned on or off; you are supposed to dynamically delare stuff when activated the...
Definition: vst3plugin.cpp:483
bool getValueAtOffset(long int _sampleOffset, double _previousValue, double &_nextValue)
ASPiK support for sample accurate auatomation.
Definition: vst3plugin.cpp:1698
virtual tresult PLUGIN_API getProgramInfo(ProgramListID listId, int32 programIndex, CString attributeId, String128 attributeValue) override
Only used for presets.
Definition: vst3plugin.cpp:1272
virtual tresult PLUGIN_API getProgramPitchName(ProgramListID listId, int32 programIndex, int16 midiPitch, String128 name) override
Not Used.
Definition: vst3plugin.cpp:1316
Interface for VST3 parameter value update queue (sample accurate automation)
Definition: pluginstructures.h:1583
The GUIPluginConnector interface creates a safe message mechanism for the GUI to issue requests to th...
Definition: vst3plugin.h:463
virtual tresult PLUGIN_API isPlatformTypeSupported(FIDString type) override
ASPiK support VST3 GUI - this wraps the ASPiK GUI so that it conforms to the IPlugView interface...
Definition: vst3plugin.cpp:1946
CustomViewController(ICustomView *_customViewIF)
Definition: vst3plugin.h:405
The VSTMIDIEventQueue interface queues incoming MIDI messages and blasts them out during the buffer p...
Definition: vst3plugin.h:705
virtual bool processMIDIEvent(midiEvent &event)
process a MIDI event
Definition: plugincore.cpp:415
uint32_t midiData1
BYTE data 1 as UINT.
Definition: pluginstructures.h:643
IPlugView *PLUGIN_API createView(const char *_name) override
creates the custom GUI view
Definition: vst3plugin.cpp:923
tresult PLUGIN_API setComponentState(IBStream *fileStream) override
This is the serialization-read function so the GUI can be updated from a preset or startup...
Definition: vst3plugin.cpp:996
interface file for ASPiK GUI object
void updateHostInfo(ProcessData &data, HostInfo *hostInfo)
update the incoming host data for the plugin core
Definition: vst3plugin.cpp:704
VST3Plugin * editController
parent VST3
Definition: vst3plugin.h:950
virtual bool guiTimerPing()
Definition: vst3plugin.h:635
uint32_t controlID
ID value.
Definition: pluginstructures.h:352
PluginCore * pluginCore
the core
Definition: vst3plugin.h:947
The VST3Plugin object is the ASPiK plugin shell for the VST3 API.
Definition: vst3plugin.h:58
bool showGUIEditor
show the GUI designer
Definition: plugingui.h:507
virtual bool processMessage(MessageInfo &messageInfo)
For Custom View and Custom Sub-Controller Operations.
Definition: plugincore.cpp:355
tresult PLUGIN_API terminate() override
object destroyer
Definition: vst3plugin.cpp:306
virtual double getNormalizedPluginParameter(int32_t controlID)
Definition: vst3plugin.h:502
VST3Plugin * editController
our parent plugin
Definition: vst3plugin.h:383
GUIPluginConnector * guiPluginConnector
GUI Plugin interface.
Definition: vst3plugin.h:948
tresult PLUGIN_API setState(IBStream *fileStream) override
This is the READ part of the serialization process. We get the stream interface and use it to read fr...
Definition: vst3plugin.cpp:520
void updateControlsWithNormalizedValue(float normalizedValue, CControl *control=nullptr)
Definition: plugingui.h:198
virtual ~PluginEditor()
ASPiK support VST3 GUI - this wraps the ASPiK GUI so that it conforms to the IPlugView interface...
Definition: vst3plugin.cpp:1768
uint32 m_uLatencyInSamples
set in constructor with plugin
Definition: vst3plugin.h:140
virtual uint32 PLUGIN_API getTailSamples() override
Returns the tail-time in samples.
Definition: vst3plugin.cpp:456
int needsUpdate(int x, ParamValue &value)
ASPiK support for sample accurate auatomation.
Definition: vst3plugin.cpp:1637
const ICustomView * getCustomViewPtr()
Definition: vst3plugin.h:433
uint32_t midiMessage
BYTE message as UINT.
Definition: pluginstructures.h:641
virtual void updateView()
Definition: vst3plugin.h:409
unsigned int currentEventIndex
index of current event
Definition: vst3plugin.h:837
IEventList * inputEvents
the current event list for this buffer cycle
Definition: vst3plugin.h:836
virtual bool registerCustomView(std::string customViewName, ICustomView *customViewConnector)
Definition: vst3plugin.h:561
CustomViewController * getCustomSubController(ICustomView *customViewConnector)
Definition: vst3plugin.h:677
CustomViewController * getCustomViewController(ICustomView *customViewConnector)
Definition: vst3plugin.h:663
Information about a GUI update message; this is for sending GUI control information from the plugin c...
Definition: pluginstructures.h:443
PluginHostConnector * pluginHostConnector
Plugin Host interface.
Definition: vst3plugin.h:949
std::map< std::string, CustomViewController * > customViewControllerMap
map of custom view controllers
Definition: vst3plugin.h:659
Custom interface so that GUI can pass information to plugin shell in a thread-safe manner...
Definition: pluginstructures.h:1473
The CustomViewController is part of the safe ICustomView feature in ASPiK. The CustomViewController m...
Definition: vst3plugin.h:401
virtual tresult receiveText(const char8 *text) override
VST3 messaging system - not used in ASPiK but here if you want to play with messaging.
Definition: vst3plugin.cpp:971
static const char * getVendorURL()
static function for VST3 clsss factory
Definition: vst3plugin.cpp:1428
GUIPluginConnector(PluginCore *_pluginCore, VST3Plugin *_editController)
Definition: vst3plugin.h:467
VSTParamUpdateQueue(void)
ASPiK support for sample accurate auatomation.
Definition: vst3plugin.cpp:1481
virtual bool fireMidiEvents(unsigned int sampleOffset)
Definition: vst3plugin.h:733
virtual bool deRegisterCustomView(ICustomView *customViewConnector)
Definition: vst3plugin.h:589
virtual tresult PLUGIN_API getProgramListInfo(int32 listIndex, ProgramListInfo &info) override
Get information about our preset list.
Definition: vst3plugin.cpp:1198
virtual tresult PLUGIN_API onSize(ViewRect *newSize) override
ASPiK support VST3 GUI - this wraps the ASPiK GUI so that it conforms to the IPlugView interface...
Definition: vst3plugin.cpp:1983
Custom View interface to allow plugin core to create safe communication channels with GUI custom view...
Definition: pluginstructures.h:1395
VST3Plugin()
object constructor: because of class factory, do NOT use this for init; use initialize() instead ...
Definition: vst3plugin.cpp:36
virtual bool guiWillClose()
Definition: vst3plugin.h:617
virtual void pushDataValue(double data)
Definition: vst3plugin.h:416
Definition: pluginstructures.h:485
virtual ~GUIPluginConnector()
Definition: vst3plugin.h:474
Double buffered queue for MIDI messages.
Definition: pluginstructures.h:1561
virtual bool guiParameterChanged(int32_t controlID, double actualValue)
has nothing to do with actual variable or updated variable (binding)
Definition: plugincore.cpp:326
virtual void parameterChanged(int32_t controlID, double actualValue, double normalizedValue)
Definition: vst3plugin.h:487
The GUIPluginConnector interface creates a safe message mechanism for the GUI to issue requests to th...
Definition: AAXPluginParameters.h:587
virtual int32 PLUGIN_API getProgramListCount() override
We have one list for our one set of presets.
Definition: vst3plugin.cpp:1180
The VST GUI for the plugin. This is needed because VST3 requires an IPlugView GUI, which is VST3 specific (involves VST3 SDK files)
Definition: vst3plugin.h:884
VST3Plugin * editController
the VST3
Definition: vst3plugin.h:655
virtual uint32 PLUGIN_API getLatencySamples() override
Definition: vst3plugin.h:143
void initialize(ParamValue _initialValue, ParamValue _minValue, ParamValue _maxValue, unsigned int *_sampleAccuracy)
ASPiK support for sample accurate auatomation.
Definition: vst3plugin.cpp:1507
virtual tresult PLUGIN_API getProgramName(ProgramListID listId, int32 programIndex, String128 name) override
Get preset name.
Definition: vst3plugin.cpp:1224
void setParamValueQueue(IParamValueQueue *_paramValueQueue, unsigned int _bufferSize)
ASPiK support for sample accurate auatomation.
Definition: vst3plugin.cpp:1528
virtual bool setWindowFrameSize(double left=0, double top=0, double right=0, double bottom=0) override
Definition: vst3plugin.h:927
virtual bool deRregisterSubcontroller(ICustomView *customViewConnector)
Definition: vst3plugin.h:542
virtual void sendMessage(void *data)
Definition: vst3plugin.h:423
static FUID * getFUID()
static function for VST3 clsss factory
Definition: vst3plugin.cpp:1376
The ControlUpdateReceiver object is the connection mechanism between PluginParameter objects and thei...
Definition: plugingui.h:83
void * inMessageData
incoming message data (interpretation depends on message)
Definition: pluginstructures.h:733
tresult PLUGIN_API setParamNormalizedFromFile(ParamID tag, ParamValue value)
helper function for setComponentState()
Definition: vst3plugin.cpp:1042
PluginCore * pluginCore
the core object
Definition: vst3plugin.h:654
std::vector< GUIParameter > guiParameters
list of updates
Definition: pluginstructures.h:461
tresult PLUGIN_API setupProcessing(ProcessSetup &newSetup) override
we get information about sample rate, bit-depth, etc...
Definition: vst3plugin.cpp:430
static CString getPluginType()
static function for VST3 clsss factory
Definition: vst3plugin.cpp:1460
static const char * getVendorEmail()
static function for VST3 clsss factory
Definition: vst3plugin.cpp:1444
PluginEditor(VSTGUI::UTF8StringPtr _xmlFile, PluginCore *_pluginCore, GUIPluginConnector *_guiPluginConnector, PluginHostConnector *_pluginHostConnector, VST3Plugin *editController)
ASPiK support VST3 GUI - this wraps the ASPiK GUI so that it conforms to the IPlugView interface...
Definition: vst3plugin.cpp:1747
virtual tresult PLUGIN_API getSize(ViewRect *size) override
ASPiK support VST3 GUI - this wraps the ASPiK GUI so that it conforms to the IPlugView interface...
Definition: vst3plugin.cpp:2005
tresult PLUGIN_API initialize(FUnknown *context) override
object initializer
Definition: vst3plugin.cpp:71
virtual unsigned int getEventCount()
Definition: vst3plugin.h:724
Definition: channelformats.h:32
The PluginHostConnector implements the IPluginHostConnector interface for the plugin shell object...
Definition: vst3plugin.h:342
void setCustomViewPtr(ICustomView *_customViewIF)
Definition: vst3plugin.h:430
virtual tresult PLUGIN_API getMidiControllerAssignment(int32 busIndex, int16 channel, CtrlNumber midiControllerNumber, ParamID &id) override
The client queries this 129 times for 130 possible control messages, see ivstsmidicontrollers.h for the VST defines for kPitchBend, kCtrlModWheel, etc... for each MIDI Channel in our Event Bus.
Definition: vst3plugin.cpp:875
The PluginCore object is the default PluginBase derived object for ASPiK projects. Note that you are fre to change the name of this object (as long as you change it in the compiler settings, etc...)
Definition: plugincore.h:43
void setSlope()
ASPiK support for sample accurate auatomation.
Definition: vst3plugin.cpp:1548
virtual bool getWindowFrameSize(double &left, double &top, double &right, double &bottom) override
Definition: vst3plugin.h:936
virtual void sendMessage(void *data)
Definition: pluginstructures.h:1416
void clearCustomViewPtr()
Definition: vst3plugin.h:436
virtual tresult PLUGIN_API removed() override
ASPiK support VST3 GUI - this wraps the ASPiK GUI so that it conforms to the IPlugView interface...
Definition: vst3plugin.cpp:1901
Information that defines a single GUI parameter's possible values and ID.
Definition: pluginstructures.h:331
virtual bool registerSubcontroller(std::string subcontrollerName, ICustomView *customViewConnector)
Definition: vst3plugin.h:514
~VST3Plugin()
object destructor: because of class factory, do NOT use this for destruction; use terminate() instead...
Definition: vst3plugin.cpp:52
bool addProgramList(ProgramList *list)
part of the IUnitInfo support for presets; generally no user editable code here.
Definition: vst3plugin.cpp:1123
tresult PLUGIN_API process(ProcessData &data) override
the VST3 audio processing function
Definition: vst3plugin.cpp:733
Custom interface to allow resizing of GUI window; this is mainly used for the GUI designer...
Definition: pluginstructures.h:1430
base class interface file for ASPiK plugincore object
double actualValue
actual value
Definition: pluginstructures.h:353
Information from the host that is updated on each buffer process cycle; includes BPM, time signature, SMPTE and other data. The values in the stock structure are consistent across most APIs, however others may be added (commnted out here)
Definition: pluginstructures.h:973
ParamValue interpolate(int x1, int x2, ParamValue y1, ParamValue y2, int x)
ASPiK support for sample accurate auatomation.
Definition: vst3plugin.cpp:1616
customViewControllerMap customSubControllerMap
map of custom sub-controllers
Definition: vst3plugin.h:674
virtual bool checkNonBoundValueChange(int tag, float normalizedValue)
Definition: vst3plugin.h:643
virtual void updateView()=0
virtual tresult PLUGIN_API hasProgramPitchNames(ProgramListID listId, int32 programIndex) override
Not Used.
Definition: vst3plugin.cpp:1294
static FUnknown * createInstance(void *context)
Definition: vst3plugin.h:117
std::string inMessageString
incoming message data as a std::string (interpretation depends on message)
Definition: pluginstructures.h:736
Custom interface to send the plugin shell a message from plugin core.
Definition: pluginstructures.h:1543
tresult PLUGIN_API setParamNormalized(ParamID tag, ParamValue value) override
This is overridden for selecting a preset, this is also called when automating parameters.
Definition: vst3plugin.cpp:1069
The PluginHostConnector implements the IPluginHostConnector interface for the plugin shell object...
Definition: AAXPluginParameters.h:467
virtual tresult PLUGIN_API attached(void *parent, FIDString type) override
ASPiK support VST3 GUI - this wraps the ASPiK GUI so that it conforms to the IPlugView interface...
Definition: vst3plugin.cpp:1801
void updateMeters(ProcessData &data, bool forceOff=false)
update the outbound VST3 parameters that correspond to plugin meter variables
Definition: vst3plugin.cpp:836
VSTParamUpdateQueue ** m_pParamUpdateQueueArray
sample accurate parameter automation
Definition: vst3plugin.h:179
static const char * getVendorName()
static function for VST3 clsss factory
Definition: vst3plugin.cpp:1412
Little update handler object for VST-approved GUI updating.
Definition: vst3plugin.h:851
bool getNextValue(double &_nextValue)
ASPiK support for sample accurate auatomation.
Definition: vst3plugin.cpp:1723
bool enableSAAVST3
sample accurate parameter automation
Definition: vst3plugin.h:181
virtual tresult PLUGIN_API setFrame(IPlugFrame *frame) override
ASPiK support VST3 GUI - this wraps the ASPiK GUI so that it conforms to the IPlugView interface...
Definition: vst3plugin.cpp:1784
tresult PLUGIN_API setBusArrangements(SpeakerArrangement *inputs, int32 numIns, SpeakerArrangement *outputs, int32 numOuts) override
Client queries us for our supported Busses; this is where you can modify to support mono...
Definition: vst3plugin.cpp:357
PluginCore * pluginCore
the core object
Definition: vst3plugin.h:835
The VSTParamUpdateQueue object maintains a parameter update queue for one ASPiK PluginParameter objec...
Definition: vst3plugin.h:284
virtual void PLUGIN_API update(FUnknown *changedUnknown, int32 message) override
Toggle preset.
Definition: vst3plugin.cpp:1337
int32_t getControlID()
Definition: plugingui.h:297
virtual void pushDataValue(double data)
Definition: pluginstructures.h:1406
bool addUnit(Unit *unit)
IUnitInfo handler.
Definition: vst3plugin.cpp:1359
Information about a MIDI event.
Definition: pluginstructures.h:561
unsigned int getParameterIndex()
ASPiK support for sample accurate auatomation.
Definition: vst3plugin.cpp:1682
virtual bool guiDidOpen()
Definition: vst3plugin.h:609