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" 22 #include <CoreFoundation/CoreFoundation.h> 25 extern void* hInstance;
37 class VSTParamUpdateQueue;
40 class VSTMIDIEventQueue;
53 class VST3Plugin :
public SingleComponentEffect,
public IMidiMapping
64 tresult PLUGIN_API
initialize(FUnknown* context)
override;
67 tresult PLUGIN_API
setBusArrangements(SpeakerArrangement* inputs, int32 numIns, SpeakerArrangement* outputs, int32 numOuts)
override;
76 tresult PLUGIN_API
setActive(TBool state)
override;
80 tresult PLUGIN_API
setState(IBStream* fileStream)
override;
81 tresult PLUGIN_API
getState(IBStream* fileStream)
override;
88 tresult PLUGIN_API
process(ProcessData& data)
override;
91 virtual tresult PLUGIN_API
getMidiControllerAssignment(int32 busIndex, int16 channel, CtrlNumber midiControllerNumber, ParamID&
id)
override;
94 IPlugView* PLUGIN_API
createView(
const char* _name)
override;
100 virtual tresult
receiveText(
const char8* text)
override;
109 void updateMeters(ProcessData& data,
bool forceOff =
false);
124 virtual tresult PLUGIN_API
getProgramListInfo(int32 listIndex, ProgramListInfo& info )
override;
125 virtual tresult PLUGIN_API
getProgramName(ProgramListID listId, int32 programIndex, String128 name )
override;
126 virtual tresult PLUGIN_API
getProgramInfo(ProgramListID listId, int32 programIndex, CString attributeId , String128
attributeValue )
override;
127 virtual tresult PLUGIN_API
hasProgramPitchNames(ProgramListID listId, int32 programIndex)
override;
128 virtual tresult PLUGIN_API
getProgramPitchName(ProgramListID listId, int32 programIndex, int16 midiPitch, String128 name )
override;
129 virtual tresult
setProgramName(ProgramListID listId, int32 programIndex,
const String128 name )
override;
132 virtual void PLUGIN_API
update(FUnknown* changedUnknown, int32 message)
override ;
155 OBJ_METHODS(
VST3Plugin, SingleComponentEffect)
157 DEF_INTERFACE(IMidiMapping)
158 DEF_INTERFACE(IUnitInfo)
159 END_DEFINE_INTERFACES(SingleComponentEffect)
160 REFCOUNT_METHODS(SingleComponentEffect)
169 bool plugInSideBypass =
false;
170 bool hasSidechain =
false;
179 typedef std::vector<IPtr<ProgramList> > ProgramListVector;
180 typedef std::map<ProgramListID, ProgramListVector::size_type> ProgramIndexMap;
181 typedef std::vector<IPtr<Unit> > UnitVector;
183 ProgramListVector programLists;
184 ProgramIndexMap programIndexMap;
187 #if defined _WINDOWS || defined _WINDLL 190 char* getMyDLLDirectory(UString cPluginName)
192 HMODULE hmodule = GetModuleHandle(cPluginName);
195 memset(&dir[0], 0, MAX_PATH*
sizeof(TCHAR));
196 dir[MAX_PATH-1] =
'\0';
199 GetModuleFileName(hmodule, &dir[0], MAX_PATH);
204 UString DLLPath(&dir[0], MAX_PATH);
206 char* pFullPath =
new char[MAX_PATH];
207 char* pDLLRoot =
new char[MAX_PATH];
209 DLLPath.toAscii(pFullPath, MAX_PATH);
211 size_t nLenDir = strlen(pFullPath);
212 size_t nLenDLL = wcslen(cPluginName) + 1;
213 memcpy(pDLLRoot, pFullPath, nLenDir-nLenDLL);
214 pDLLRoot[nLenDir-nLenDLL] =
'\0';
226 char* getMyComponentDirectory(CFStringRef bundleID)
228 if (bundleID !=
nullptr)
230 CFBundleRef helixBundle = CFBundleGetBundleWithIdentifier( bundleID );
231 if(helixBundle !=
nullptr)
233 CFURLRef bundleURL = CFBundleCopyBundleURL ( helixBundle );
234 if(bundleURL !=
nullptr)
236 CFURLRef componentFolderPathURL = CFURLCreateCopyDeletingLastPathComponent(
nullptr, bundleURL);
238 CFStringRef myComponentPath = CFURLCopyFileSystemPath(componentFolderPathURL, kCFURLPOSIXPathStyle);
239 CFRelease(componentFolderPathURL);
241 if(myComponentPath !=
nullptr)
243 int nSize = CFStringGetLength(myComponentPath);
244 char* path =
new char[nSize+1];
245 memset(path, 0, (nSize+1)*
sizeof(
char));
247 bool success = CFStringGetCString(myComponentPath, path, nSize+1, kCFStringEncodingASCII);
248 CFRelease(myComponentPath);
250 if(success)
return path;
253 CFRelease(bundleURL);
280 unsigned int bufferSize = 0;
281 ParamValue initialValue = 0.0;
282 ParamValue previousValue = 0.0;
283 ParamValue maxValue = 0.0;
284 ParamValue minValue = 0.0;
288 ParamValue yIntercept;
291 unsigned int* sampleAccuracy =
nullptr;
294 IParamValueQueue* parameterQueue =
nullptr;
297 bool dirtyBit =
false;
298 int sampleOffset = 0;
303 void initialize(ParamValue _initialValue, ParamValue _minValue, ParamValue _maxValue,
unsigned int* _sampleAccuracy);
304 void setParamValueQueue(IParamValueQueue* _paramValueQueue,
unsigned int _bufferSize);
306 ParamValue
interpolate(
int x1,
int x2, ParamValue y1, ParamValue y2,
int x);
311 bool getValueAtOffset(
long int _sampleOffset,
double _previousValue,
double& _nextValue);
348 switch(hostMessageInfo.hostMessage)
354 for(
unsigned int i = 0; i < guiUpdateData.
guiParameters.size(); i++)
365 for (
unsigned int i = 0; i < guiUpdateData.
guiParameters.size(); i++)
473 for (customViewControllerMap::const_iterator it = customViewMap.begin(), end = customViewMap.end(); it != end; ++it)
480 virtual void parameterChanged(int32_t controlID,
double actualValue,
double normalizedValue)
501 if(!param)
return 0.0;
503 return param->getNormalized();
524 MessageInfo info(PLUGINGUI_REGISTER_SUBCONTROLLER);
542 MessageInfo info(PLUGINGUI_DE_REGISTER_SUBCONTROLLER);
559 customViewControllerMap::const_iterator it = customViewMap.find(customViewName);
560 if (it != customViewMap.end())
568 customViewMap.insert(std::make_pair(customViewName, pCVC));
590 MessageInfo info(PLUGINGUI_DE_REGISTER_CUSTOMVIEW);
614 for (customViewControllerMap::const_iterator it = customViewMap.begin(), end = customViewMap.end(); it != end; ++it)
616 it->second->clearCustomViewPtr();
620 it->second->clearCustomViewPtr();
658 for (customViewControllerMap::const_iterator it = customViewMap.begin(), end = customViewMap.end(); it != end; ++it)
660 if (it->second->getCustomViewPtr() == customViewConnector)
674 if (it->second->getCustomViewPtr() == customViewConnector)
706 virtual ~VSTMIDIEventQueue(){}
732 bool eventOccurred =
false;
733 bool haveEvents =
false;
739 const unsigned char MIDI_NOTE_OFF = 0x80;
740 const unsigned char MIDI_NOTE_ON = 0x90;
741 const unsigned char MIDI_POLY_PRESSURE = 0xA0;
747 if (e.sampleOffset != sampleOffset)
754 case Event::kNoteOnEvent:
758 event.midiChannel = (
unsigned int)e.noteOn.channel;
759 event.
midiData1 = (
unsigned int)e.noteOn.pitch;
760 event.midiData2 = (
unsigned int)(127.0*e.noteOn.velocity);
761 event.midiSampleOffset = e.sampleOffset;
762 eventOccurred =
true;
771 case Event::kNoteOffEvent:
776 event.midiChannel = (
unsigned int)e.noteOff.channel;
777 event.
midiData1 = (
unsigned int)e.noteOff.pitch;
778 event.midiData2 = (
unsigned int)(127.0*e.noteOff.velocity);
779 event.midiSampleOffset = e.sampleOffset;
780 eventOccurred =
true;
790 case Event::kPolyPressureEvent:
793 event.
midiMessage = (
unsigned int)MIDI_POLY_PRESSURE;
794 event.midiChannel = (
unsigned int)e.polyPressure.channel;
795 event.
midiData1 = (
unsigned int)e.polyPressure.pitch;
796 event.midiData2 = (
unsigned int)(127.0*e.polyPressure.pressure);
797 event.midiSampleOffset = e.sampleOffset;
798 eventOccurred =
true;
811 if (e.sampleOffset == sampleOffset)
824 return eventOccurred;
844 class VST3UpdateHandler:
public FObject
847 VST3UpdateHandler(
VSTGUI::ControlUpdateReceiver* _receiver, VST3Plugin* _editController){ receiver = _receiver; editController = _editController; }
848 ~VST3UpdateHandler(){}
850 virtual void PLUGIN_API update (FUnknown* changedUnknown, int32 message)
852 if(message == IDependent::kChanged && receiver && editController)
854 double normalizedValue = editController->getParamNormalized (receiver->
getControlID());
861 VST3Plugin* editController =
nullptr;
885 typedef std::map<int32_t, VST3UpdateHandler*> UpdaterHandlerMap;
886 UpdaterHandlerMap updateHandlers;
889 IPlugFrame* plugFrame;
890 const ViewRect& getRect()
const {
return rect; }
891 void setRect(
const ViewRect& r) { rect = r; }
892 bool isAttached()
const {
return systemWindow != 0; }
893 virtual void attachedToParent()
override {}
894 virtual void removedFromParent()
override {}
896 virtual tresult PLUGIN_API
attached(
void* parent, FIDString type)
override;
897 virtual tresult PLUGIN_API
removed()
override;
898 virtual tresult PLUGIN_API onWheel(
float distance)
override {
return kResultFalse; }
901 virtual tresult PLUGIN_API
onSize(ViewRect* newSize)
override;
902 virtual tresult PLUGIN_API
getSize(ViewRect* size)
override;
904 virtual tresult PLUGIN_API onFocus(TBool )
override {
return kResultFalse; }
905 virtual tresult PLUGIN_API
setFrame(IPlugFrame* frame)
override;
906 virtual tresult PLUGIN_API canResize()
override{
return kResultTrue; }
907 virtual tresult PLUGIN_API checkSizeConstraint(ViewRect* rect)
override 913 ViewRect viewRect = getRect();
914 rect->right = viewRect.right;
915 rect->bottom = viewRect.bottom;
920 virtual bool setWindowFrameSize(
double left = 0,
double top = 0,
double right = 0,
double bottom = 0) override
922 ViewRect vr(0, 0, right, bottom);
925 plugFrame->resizeView(
this, &vr);
931 ViewRect viewRect = getRect();
934 right = viewRect.getWidth();
935 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:346
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:710
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
std::vector< GUIParameter > guiParameters
list of updates
Definition: pluginstructures.h:461
The CustomViewController is part of the safe ICustomView feature in ASPiK. The CustomViewController m...
Definition: AAXPluginParameters.h:527
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:398
VST3Plugin * editController
the VST3
Definition: vst3plugin.h:655
The VSTMIDIEventQueue interface queues incoming MIDI messages and blasts them out during the buffer p...
Definition: vst3plugin.h:705
GUIPluginConnector * guiPluginConnector
GUI Plugin interface.
Definition: vst3plugin.h:948
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:383
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
void updateHostInfo(ProcessData &data, HostInfo *hostInfo)
update the incoming host data for the plugin core
Definition: vst3plugin.cpp:704
virtual bool guiTimerPing()
Definition: vst3plugin.h:628
uint32_t controlID
ID value.
Definition: pluginstructures.h:352
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:495
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:426
uint32_t midiMessage
BYTE message as UINT.
Definition: pluginstructures.h:641
virtual void updateView()
Definition: vst3plugin.h:402
unsigned int currentEventIndex
index of current event
Definition: vst3plugin.h:837
virtual bool registerCustomView(std::string customViewName, ICustomView *customViewConnector)
Definition: vst3plugin.h:554
VSTParamUpdateQueue ** m_pParamUpdateQueueArray
sample accurate parameter automation
Definition: vst3plugin.h:179
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
std::map< std::string, CustomViewController * > customViewControllerMap
map of custom view controllers
Definition: vst3plugin.h:652
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:460
VSTParamUpdateQueue(void)
ASPiK support for sample accurate auatomation.
Definition: vst3plugin.cpp:1481
virtual bool fireMidiEvents(unsigned int sampleOffset)
Definition: vst3plugin.h:726
virtual bool deRegisterCustomView(ICustomView *customViewConnector)
Definition: vst3plugin.h:582
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:610
virtual void pushDataValue(double data)
Definition: vst3plugin.h:409
Definition: pluginstructures.h:485
virtual ~GUIPluginConnector()
Definition: vst3plugin.h:467
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
IEventList * inputEvents
the current event list for this buffer cycle
Definition: vst3plugin.h:836
virtual void parameterChanged(int32_t controlID, double actualValue, double normalizedValue)
Definition: vst3plugin.h:480
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
virtual uint32 PLUGIN_API getLatencySamples() override
Definition: vst3plugin.h:138
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:920
virtual bool deRregisterSubcontroller(ICustomView *customViewConnector)
Definition: vst3plugin.h:535
virtual void sendMessage(void *data)
Definition: vst3plugin.h:416
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
PluginCore * pluginCore
the core object
Definition: vst3plugin.h:835
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
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:717
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:423
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:929
virtual void sendMessage(void *data)
Definition: pluginstructures.h:1416
void clearCustomViewPtr()
Definition: vst3plugin.h:429
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:507
~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
PluginCore * pluginCore
the core
Definition: vst3plugin.h:947
PluginCore * pluginCore
the core object
Definition: vst3plugin.h:654
Custom interface to allow resizing of GUI window; this is mainly used for the GUI designer...
Definition: pluginstructures.h:1430
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
virtual bool checkNonBoundValueChange(int tag, float normalizedValue)
Definition: vst3plugin.h:636
virtual void updateView()=0
virtual tresult PLUGIN_API hasProgramPitchNames(ProgramListID listId, int32 programIndex) override
Not Used.
Definition: vst3plugin.cpp:1294
PluginHostConnector * pluginHostConnector
Plugin Host interface.
Definition: vst3plugin.h:949
static FUnknown * createInstance(void *context)
Definition: vst3plugin.h:112
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
static const char * getVendorName()
static function for VST3 clsss factory
Definition: vst3plugin.cpp:1412
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
customViewControllerMap customSubControllerMap
map of custom sub-controllers
Definition: vst3plugin.h:674
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
VST3Plugin * editController
parent VST3
Definition: vst3plugin.h:950
virtual bool guiDidOpen()
Definition: vst3plugin.h:602