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" 18 #include "plugincore.h" 19 #include "plugingui.h" 25 #include <CoreFoundation/CoreFoundation.h> 27 #ifdef ENABLE_WINDOWS_H 30 extern void* hInstance;
42 class VSTParamUpdateQueue;
45 class VSTMIDIEventQueue;
62 class VST3Plugin :
public SingleComponentEffect,
public IMidiMapping
73 tresult PLUGIN_API
initialize(FUnknown* context)
override;
76 tresult PLUGIN_API
setBusArrangements(SpeakerArrangement* inputs, int32 numIns, SpeakerArrangement* outputs, int32 numOuts)
override;
85 tresult PLUGIN_API
setActive(TBool state)
override;
89 tresult PLUGIN_API
setState(IBStream* fileStream)
override;
90 tresult PLUGIN_API
getState(IBStream* fileStream)
override;
97 tresult PLUGIN_API
process(ProcessData& data)
override;
100 virtual tresult PLUGIN_API
getMidiControllerAssignment(int32 busIndex, int16 channel, CtrlNumber midiControllerNumber, ParamID&
id)
override;
103 IPlugView* PLUGIN_API
createView(
const char* _name)
override;
109 virtual tresult
receiveText(
const char8* text)
override;
118 void updateMeters(ProcessData& data,
bool forceOff =
false);
133 virtual tresult PLUGIN_API
getProgramListInfo(int32 listIndex, ProgramListInfo& info )
override;
134 virtual tresult PLUGIN_API
getProgramName(ProgramListID listId, int32 programIndex, String128 name )
override;
135 virtual tresult PLUGIN_API
getProgramInfo(ProgramListID listId, int32 programIndex, CString attributeId , String128
attributeValue )
override;
136 virtual tresult PLUGIN_API
hasProgramPitchNames(ProgramListID listId, int32 programIndex)
override;
137 virtual tresult PLUGIN_API
getProgramPitchName(ProgramListID listId, int32 programIndex, int16 midiPitch, String128 name )
override;
138 virtual tresult
setProgramName(ProgramListID listId, int32 programIndex,
const String128 name )
override;
141 virtual void PLUGIN_API
update(FUnknown* changedUnknown, int32 message)
override ;
164 OBJ_METHODS(
VST3Plugin, SingleComponentEffect)
166 DEF_INTERFACE(IMidiMapping)
167 DEF_INTERFACE(IUnitInfo)
168 END_DEFINE_INTERFACES(SingleComponentEffect)
169 REFCOUNT_METHODS(SingleComponentEffect)
178 bool plugInSideBypass =
false;
179 bool hasSidechain =
false;
188 typedef std::vector<IPtr<ProgramList> > ProgramListVector;
189 typedef std::map<ProgramListID, ProgramListVector::size_type> ProgramIndexMap;
190 typedef std::vector<IPtr<Unit> > UnitVector;
192 ProgramListVector programLists;
193 ProgramIndexMap programIndexMap;
197 #if defined _WINDOWS || defined _WINDLL 198 #ifdef ENABLE_WINDOWS_H 201 char* getMyDLLDirectory(UString cPluginName)
203 HMODULE hmodule = GetModuleHandle(cPluginName);
206 memset(&dir[0], 0, MAX_PATH*
sizeof(TCHAR));
207 dir[MAX_PATH-1] =
'\0';
210 GetModuleFileName(hmodule, &dir[0], MAX_PATH);
215 UString DLLPath(&dir[0], MAX_PATH);
217 char* pFullPath =
new char[MAX_PATH];
218 char* pDLLRoot =
new char[MAX_PATH];
220 DLLPath.toAscii(pFullPath, MAX_PATH);
222 size_t nLenDir = strlen(pFullPath);
223 size_t nLenDLL = wcslen(cPluginName) + 1;
224 memcpy(pDLLRoot, pFullPath, nLenDir-nLenDLL);
225 pDLLRoot[nLenDir-nLenDLL] =
'\0';
237 char* getMyComponentDirectory(CFStringRef bundleID)
239 if (bundleID !=
nullptr)
241 CFBundleRef helixBundle = CFBundleGetBundleWithIdentifier( bundleID );
242 if(helixBundle !=
nullptr)
244 CFURLRef bundleURL = CFBundleCopyBundleURL ( helixBundle );
245 if(bundleURL !=
nullptr)
247 CFURLRef componentFolderPathURL = CFURLCreateCopyDeletingLastPathComponent(
nullptr, bundleURL);
249 CFStringRef myComponentPath = CFURLCopyFileSystemPath(componentFolderPathURL, kCFURLPOSIXPathStyle);
250 CFRelease(componentFolderPathURL);
252 if(myComponentPath !=
nullptr)
254 int nSize = CFStringGetLength(myComponentPath);
255 char* path =
new char[nSize+1];
256 memset(path, 0, (nSize+1)*
sizeof(
char));
258 bool success = CFStringGetCString(myComponentPath, path, nSize+1, kCFStringEncodingASCII);
259 CFRelease(myComponentPath);
261 if(success)
return path;
264 CFRelease(bundleURL);
291 unsigned int bufferSize = 0;
292 ParamValue initialValue = 0.0;
293 ParamValue previousValue = 0.0;
294 ParamValue maxValue = 0.0;
295 ParamValue minValue = 0.0;
299 ParamValue yIntercept;
302 unsigned int* sampleAccuracy =
nullptr;
305 IParamValueQueue* parameterQueue =
nullptr;
308 bool dirtyBit =
false;
309 int sampleOffset = 0;
314 void initialize(ParamValue _initialValue, ParamValue _minValue, ParamValue _maxValue,
unsigned int* _sampleAccuracy);
315 void setParamValueQueue(IParamValueQueue* _paramValueQueue,
unsigned int _bufferSize);
317 ParamValue
interpolate(
int x1,
int x2, ParamValue y1, ParamValue y2,
int x);
322 bool getValueAtOffset(
long int _sampleOffset,
double _previousValue,
double& _nextValue);
359 switch(hostMessageInfo.hostMessage)
365 for(
unsigned int i = 0; i < guiUpdateData.
guiParameters.size(); i++)
376 for (
unsigned int i = 0; i < guiUpdateData.
guiParameters.size(); i++)
484 for (customViewControllerMap::const_iterator it = customViewMap.begin(), end = customViewMap.end(); it != end; ++it)
491 virtual void parameterChanged(int32_t controlID,
double actualValue,
double normalizedValue)
511 if(!param)
return 0.0;
513 return param->getNormalized();
522 if (!param)
return 0.0;
525 double normalizedValue = param->getNormalized();
526 return param->toPlain(normalizedValue);
548 MessageInfo info(PLUGINGUI_REGISTER_SUBCONTROLLER);
566 MessageInfo info(PLUGINGUI_DE_REGISTER_SUBCONTROLLER);
583 customViewControllerMap::const_iterator it = customViewMap.find(customViewName);
584 if (it != customViewMap.end())
592 customViewMap.insert(std::make_pair(customViewName, pCVC));
614 MessageInfo info(PLUGINGUI_DE_REGISTER_CUSTOMVIEW);
638 for (customViewControllerMap::const_iterator it = customViewMap.begin(), end = customViewMap.end(); it != end; ++it)
640 it->second->clearCustomViewPtr();
644 it->second->clearCustomViewPtr();
682 for (customViewControllerMap::const_iterator it = customViewMap.begin(), end = customViewMap.end(); it != end; ++it)
684 if (it->second->getCustomViewPtr() == customViewConnector)
698 if (it->second->getCustomViewPtr() == customViewConnector)
756 bool eventOccurred =
false;
757 bool haveEvents =
false;
763 const unsigned char MIDI_NOTE_OFF = 0x80;
764 const unsigned char MIDI_NOTE_ON = 0x90;
765 const unsigned char MIDI_POLY_PRESSURE = 0xA0;
771 if (e.sampleOffset != sampleOffset)
778 case Event::kNoteOnEvent:
782 event.midiChannel = (
unsigned int)e.noteOn.channel;
783 event.
midiData1 = (
unsigned int)e.noteOn.pitch;
784 event.midiData2 = (
unsigned int)(127.0*e.noteOn.velocity);
785 event.midiSampleOffset = e.sampleOffset;
786 eventOccurred =
true;
795 case Event::kNoteOffEvent:
800 event.midiChannel = (
unsigned int)e.noteOff.channel;
801 event.
midiData1 = (
unsigned int)e.noteOff.pitch;
802 event.midiData2 = (
unsigned int)(127.0*e.noteOff.velocity);
803 event.midiSampleOffset = e.sampleOffset;
804 eventOccurred =
true;
814 case Event::kPolyPressureEvent:
817 event.
midiMessage = (
unsigned int)MIDI_POLY_PRESSURE;
818 event.midiChannel = (
unsigned int)e.polyPressure.channel;
819 event.
midiData1 = (
unsigned int)e.polyPressure.pitch;
820 event.midiData2 = (
unsigned int)(127.0*e.polyPressure.pressure);
821 event.midiSampleOffset = e.sampleOffset;
822 eventOccurred =
true;
835 if (e.sampleOffset == sampleOffset)
848 return eventOccurred;
874 virtual void PLUGIN_API update (FUnknown* changedUnknown, int32 message)
876 if(message == IDependent::kChanged && receiver && editController)
878 double normalizedValue = editController->getParamNormalized (receiver->
getControlID());
909 typedef std::map<int32_t, VST3UpdateHandler*> UpdaterHandlerMap;
910 UpdaterHandlerMap updateHandlers;
913 IPlugFrame* plugFrame;
914 const ViewRect& getRect()
const {
return rect; }
915 void setRect(
const ViewRect& r) { rect = r; }
916 bool isAttached()
const {
return systemWindow != 0; }
917 virtual void attachedToParent()
override {}
918 virtual void removedFromParent()
override {}
920 virtual tresult PLUGIN_API
attached(
void* parent, FIDString type)
override;
921 virtual tresult PLUGIN_API
removed()
override;
922 virtual tresult PLUGIN_API onWheel(
float distance)
override {
return kResultFalse; }
925 virtual tresult PLUGIN_API
onSize(ViewRect* newSize)
override;
926 virtual tresult PLUGIN_API
getSize(ViewRect* size)
override;
928 virtual tresult PLUGIN_API onFocus(TBool )
override {
return kResultFalse; }
929 virtual tresult PLUGIN_API
setFrame(IPlugFrame* frame)
override;
930 virtual tresult PLUGIN_API canResize()
override{
return kResultFalse ; }
931 virtual tresult PLUGIN_API checkSizeConstraint(ViewRect* rect)
override 937 ViewRect viewRect = getRect();
938 rect->right = viewRect.right;
939 rect->bottom = viewRect.bottom;
944 virtual bool setWindowFrameSize(
double left = 0,
double top = 0,
double right = 0,
double bottom = 0) override
946 ViewRect vr(0, 0, right, bottom);
949 plugFrame->resizeView(
this, &vr);
955 ViewRect viewRect = getRect();
958 right = viewRect.getWidth();
959 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:641
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:1471
unsigned int sampleAccuracy
sample accurate parameter automation
Definition: vst3plugin.h:184
Attribute value smashed down into a union.
Definition: pluginstructures.h:900
bool doControlUpdate(ProcessData &data)
Find and issue Control Changes.
Definition: vst3plugin.cpp:685
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:357
virtual tresult setProgramName(ProgramListID listId, int32 programIndex, const String128 name) override
Set preset name.
Definition: vst3plugin.cpp:1325
ProgramList * getProgramList(ProgramListID listId) const
part of the IUnitInfo support for presets; generally no user editable code here.
Definition: vst3plugin.cpp:1218
void setEventList(IEventList *_inputEvents)
Definition: vst3plugin.h:734
tresult PLUGIN_API canProcessSampleSize(int32 symbolicSampleSize) override
Client queries us for our supported sample lengths.
Definition: vst3plugin.cpp:468
tresult notifyPogramListChange(ProgramListID listId, int32 programIndex=kAllProgramInvalid)
If list changes; should not be called as we only have one program list.
Definition: vst3plugin.cpp:1235
The PluginGUI object that maintains the entire GUI operation and has #defines to use with AAX...
Definition: plugingui.h:412
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:542
bool getValueAtOffset(long int _sampleOffset, double _previousValue, double &_nextValue)
ASPiK support for sample accurate auatomation.
Definition: vst3plugin.cpp:1773
virtual tresult PLUGIN_API getProgramInfo(ProgramListID listId, int32 programIndex, CString attributeId, String128 attributeValue) override
Only used for presets.
Definition: vst3plugin.cpp:1347
virtual tresult PLUGIN_API getProgramPitchName(ProgramListID listId, int32 programIndex, int16 midiPitch, String128 name) override
Not Used.
Definition: vst3plugin.cpp:1391
Interface for VST3 parameter value update queue (sample accurate automation)
Definition: pluginstructures.h:1584
std::vector< GUIParameter > guiParameters
list of updates
Definition: pluginstructures.h:461
The GUIPluginConnector interface creates a safe message mechanism for the GUI to issue requests to th...
Definition: vst3plugin.h:467
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:2021
CustomViewController(ICustomView *_customViewIF)
Definition: vst3plugin.h:409
VST3Plugin * editController
the VST3
Definition: vst3plugin.h:672
The VSTMIDIEventQueue interface queues incoming MIDI messages and blasts them out during the buffer p...
Definition: vst3plugin.h:722
GUIPluginConnector * guiPluginConnector
GUI Plugin interface.
Definition: vst3plugin.h:965
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
VST3Plugin * editController
our parent plugin
Definition: vst3plugin.h:387
IPlugView *PLUGIN_API createView(const char *_name) override
creates the custom GUI view
Definition: vst3plugin.cpp:996
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:1069
void updateHostInfo(ProcessData &data, HostInfo *hostInfo)
update the incoming host data for the plugin core
Definition: vst3plugin.cpp:764
virtual bool guiTimerPing()
Definition: vst3plugin.h:652
uint32_t controlID
ID value.
Definition: pluginstructures.h:352
The VST3Plugin object is the ASPiK plugin shell for the VST3 API.
Definition: vst3plugin.h:62
bool showGUIEditor
show the GUI designer
Definition: plugingui.h:509
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:349
virtual double getNormalizedPluginParameter(int32_t controlID)
Definition: vst3plugin.h:506
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:579
void updateControlsWithNormalizedValue(float normalizedValue, CControl *control=nullptr)
Definition: plugingui.h:200
virtual ~PluginEditor()
ASPiK support VST3 GUI - this wraps the ASPiK GUI so that it conforms to the IPlugView interface...
Definition: vst3plugin.cpp:1843
uint32 m_uLatencyInSamples
set in constructor with plugin
Definition: vst3plugin.h:144
virtual uint32 PLUGIN_API getTailSamples() override
Returns the tail-time in samples.
Definition: vst3plugin.cpp:515
int needsUpdate(int x, ParamValue &value)
ASPiK support for sample accurate auatomation.
Definition: vst3plugin.cpp:1712
const ICustomView * getCustomViewPtr()
Definition: vst3plugin.h:437
uint32_t midiMessage
BYTE message as UINT.
Definition: pluginstructures.h:641
virtual void updateView()
Definition: vst3plugin.h:413
unsigned int currentEventIndex
index of current event
Definition: vst3plugin.h:854
virtual bool registerCustomView(std::string customViewName, ICustomView *customViewConnector)
Definition: vst3plugin.h:578
VSTParamUpdateQueue ** m_pParamUpdateQueueArray
sample accurate parameter automation
Definition: vst3plugin.h:183
CustomViewController * getCustomSubController(ICustomView *customViewConnector)
Definition: vst3plugin.h:694
CustomViewController * getCustomViewController(ICustomView *customViewConnector)
Definition: vst3plugin.h:680
Information about a GUI update message; this is for sending GUI control information from the plugin c...
Definition: pluginstructures.h:443
std::map< std::string, CustomViewController * > customViewControllerMap
map of custom view controllers
Definition: vst3plugin.h:676
Custom interface so that GUI can pass information to plugin shell in a thread-safe manner...
Definition: pluginstructures.h:1474
The CustomViewController is part of the safe ICustomView feature in ASPiK. The CustomViewController m...
Definition: vst3plugin.h:405
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:1044
static const char * getVendorURL()
static function for VST3 clsss factory
Definition: vst3plugin.cpp:1503
GUIPluginConnector(PluginCore *_pluginCore, VST3Plugin *_editController)
Definition: vst3plugin.h:471
VSTParamUpdateQueue(void)
ASPiK support for sample accurate auatomation.
Definition: vst3plugin.cpp:1556
virtual bool fireMidiEvents(unsigned int sampleOffset)
Definition: vst3plugin.h:750
virtual bool deRegisterCustomView(ICustomView *customViewConnector)
Definition: vst3plugin.h:606
virtual tresult PLUGIN_API getProgramListInfo(int32 listIndex, ProgramListInfo &info) override
Get information about our preset list.
Definition: vst3plugin.cpp:1273
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:2058
Custom View interface to allow plugin core to create safe communication channels with GUI custom view...
Definition: pluginstructures.h:1396
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:634
virtual void pushDataValue(double data)
Definition: vst3plugin.h:420
Definition: pluginstructures.h:485
virtual ~GUIPluginConnector()
Definition: vst3plugin.h:478
Double buffered queue for MIDI messages.
Definition: pluginstructures.h:1562
virtual bool guiParameterChanged(int32_t controlID, double actualValue)
has nothing to do with actual variable or updated variable (binding)
Definition: plugincore.cpp:326
IEventList * inputEvents
the current event list for this buffer cycle
Definition: vst3plugin.h:853
virtual void parameterChanged(int32_t controlID, double actualValue, double normalizedValue)
Definition: vst3plugin.h:491
The GUIPluginConnector interface creates a safe message mechanism for the GUI to issue requests to th...
Definition: AAXPluginParameters.h:599
virtual int32 PLUGIN_API getProgramListCount() override
We have one list for our one set of presets.
Definition: vst3plugin.cpp:1255
virtual double getActualPluginParameter(int32_t controlID)
Definition: vst3plugin.h:517
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:901
virtual uint32 PLUGIN_API getLatencySamples() override
Definition: vst3plugin.h:147
void initialize(ParamValue _initialValue, ParamValue _minValue, ParamValue _maxValue, unsigned int *_sampleAccuracy)
ASPiK support for sample accurate auatomation.
Definition: vst3plugin.cpp:1582
virtual tresult PLUGIN_API getProgramName(ProgramListID listId, int32 programIndex, String128 name) override
Get preset name.
Definition: vst3plugin.cpp:1299
void setParamValueQueue(IParamValueQueue *_paramValueQueue, unsigned int _bufferSize)
ASPiK support for sample accurate auatomation.
Definition: vst3plugin.cpp:1603
virtual bool setWindowFrameSize(double left=0, double top=0, double right=0, double bottom=0) override
Definition: vst3plugin.h:944
virtual bool deRregisterSubcontroller(ICustomView *customViewConnector)
Definition: vst3plugin.h:559
virtual void sendMessage(void *data)
Definition: vst3plugin.h:427
static FUID * getFUID()
static function for VST3 clsss factory
Definition: vst3plugin.cpp:1451
The ControlUpdateReceiver object is the connection mechanism between PluginParameter objects and thei...
Definition: plugingui.h:85
PluginCore * pluginCore
the core object
Definition: vst3plugin.h:852
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:1115
tresult PLUGIN_API setupProcessing(ProcessSetup &newSetup) override
we get information about sample rate, bit-depth, etc...
Definition: vst3plugin.cpp:489
static CString getPluginType()
static function for VST3 clsss factory
Definition: vst3plugin.cpp:1535
static const char * getVendorEmail()
static function for VST3 clsss factory
Definition: vst3plugin.cpp:1519
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:1822
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:2080
tresult PLUGIN_API initialize(FUnknown *context) override
object initializer
Definition: vst3plugin.cpp:82
virtual unsigned int getEventCount()
Definition: vst3plugin.h:741
Definition: channelformats.h:32
The PluginHostConnector implements the IPluginHostConnector interface for the plugin shell object...
Definition: vst3plugin.h:346
void setCustomViewPtr(ICustomView *_customViewIF)
Definition: vst3plugin.h:434
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:949
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:1623
virtual bool getWindowFrameSize(double &left, double &top, double &right, double &bottom) override
Definition: vst3plugin.h:953
virtual void sendMessage(void *data)
Definition: pluginstructures.h:1417
void clearCustomViewPtr()
Definition: vst3plugin.h:440
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:1976
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:531
~VST3Plugin()
object destructor: because of class factory, do NOT use this for destruction; use terminate() instead...
Definition: vst3plugin.cpp:63
bool addProgramList(ProgramList *list)
part of the IUnitInfo support for presets; generally no user editable code here.
Definition: vst3plugin.cpp:1197
tresult PLUGIN_API process(ProcessData &data) override
the VST3 audio processing function
Definition: vst3plugin.cpp:793
PluginCore * pluginCore
the core
Definition: vst3plugin.h:964
PluginCore * pluginCore
the core object
Definition: vst3plugin.h:671
Custom interface to allow resizing of GUI window; this is mainly used for the GUI designer...
Definition: pluginstructures.h:1431
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:1691
virtual bool checkNonBoundValueChange(int tag, float normalizedValue)
Definition: vst3plugin.h:660
virtual void updateView()=0
virtual tresult PLUGIN_API hasProgramPitchNames(ProgramListID listId, int32 programIndex) override
Not Used.
Definition: vst3plugin.cpp:1369
PluginHostConnector * pluginHostConnector
Plugin Host interface.
Definition: vst3plugin.h:966
static FUnknown * createInstance(void *context)
Definition: vst3plugin.h:121
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:1544
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:1142
The PluginHostConnector implements the IPluginHostConnector interface for the plugin shell object...
Definition: AAXPluginParameters.h:479
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:1876
void updateMeters(ProcessData &data, bool forceOff=false)
update the outbound VST3 parameters that correspond to plugin meter variables
Definition: vst3plugin.cpp:910
static const char * getVendorName()
static function for VST3 clsss factory
Definition: vst3plugin.cpp:1487
Little update handler object for VST-approved GUI updating.
Definition: vst3plugin.h:868
bool getNextValue(double &_nextValue)
ASPiK support for sample accurate auatomation.
Definition: vst3plugin.cpp:1798
bool enableSAAVST3
sample accurate parameter automation
Definition: vst3plugin.h:185
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:1859
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:400
customViewControllerMap customSubControllerMap
map of custom sub-controllers
Definition: vst3plugin.h:691
The VSTParamUpdateQueue object maintains a parameter update queue for one ASPiK PluginParameter objec...
Definition: vst3plugin.h:288
virtual void PLUGIN_API update(FUnknown *changedUnknown, int32 message) override
Toggle preset.
Definition: vst3plugin.cpp:1412
int32_t getControlID()
Definition: plugingui.h:299
virtual void pushDataValue(double data)
Definition: pluginstructures.h:1407
Information about a MIDI event.
Definition: pluginstructures.h:561
unsigned int getParameterIndex()
ASPiK support for sample accurate auatomation.
Definition: vst3plugin.cpp:1757
VST3Plugin * editController
parent VST3
Definition: vst3plugin.h:967
virtual bool guiDidOpen()
Definition: vst3plugin.h:626