diff options
Diffstat (limited to 'doc/html/class_audio_effect_x.html')
| -rw-r--r-- | doc/html/class_audio_effect_x.html | 2406 |
1 files changed, 2406 insertions, 0 deletions
diff --git a/doc/html/class_audio_effect_x.html b/doc/html/class_audio_effect_x.html new file mode 100644 index 0000000..efaadc5 --- /dev/null +++ b/doc/html/class_audio_effect_x.html @@ -0,0 +1,2406 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> +<title>VST SDK 2.4: AudioEffectX Class Reference</title> +<link href="doxygen.css" rel="stylesheet" type="text/css"> +<link href="tabs.css" rel="stylesheet" type="text/css"> +</head><body> +<!-- Generated by Doxygen 1.4.7 --> +<div class="tabs"> + <ul> + <li><a href="main.html"><span>Main Page</span></a></li> + <li><a href="namespaces.html"><span>Namespaces</span></a></li> + <li id="current"><a href="annotated.html"><span>Classes</span></a></li> + <li><a href="files.html"><span>Files</span></a></li> + <li><a href="dirs.html"><span>Directories</span></a></li> + <li><a href="pages.html"><span>Related Pages</span></a></li> + </ul></div> +<div class="tabs"> + <ul> + <li><a href="annotated.html"><span>Class List</span></a></li> + <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> + <li><a href="functions.html"><span>Class Members</span></a></li> + </ul></div> +<h1>AudioEffectX Class Reference</h1><!-- doxytag: class="AudioEffectX" --><!-- doxytag: inherits="AudioEffect" --><code>#include <audioeffectx.h></code> +<p> +<p>Inheritance diagram for AudioEffectX: +<p><center><img src="class_audio_effect_x.png" usemap="#AudioEffectX_map" border="0" alt=""></center> +<map name="AudioEffectX_map"> +<area href="class_audio_effect.html" alt="AudioEffect" shape="rect" coords="0,0,87,24"> +</map> +<a href="class_audio_effect_x-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0"> +<tr><td></td></tr> +<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#2cf2e60b0a0ad1a52654611593d83dcb">AudioEffectX</a> (audioMasterCallback <a class="el" href="class_audio_effect.html#d7f8e277feedf57b182f0d23b8e9dcaf">audioMaster</a>, <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> <a class="el" href="class_audio_effect.html#709e60e18ecca1108fdb3a4d04f68dc3">numPrograms</a>, <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> <a class="el" href="class_audio_effect.html#597a9d9a5edb95e486bb3b238c570ce8">numParams</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Create an <em><a class="el" href="class_audio_effect_x.html">AudioEffectX</a></em> object. <a href="#2cf2e60b0a0ad1a52654611593d83dcb"></a><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Parameters</div></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#6e6bf585239b75cd90e17b3aa0f8f36a">canParameterBeAutomated</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> index)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Indicates if a parameter can be automated. <a href="#6e6bf585239b75cd90e17b3aa0f8f36a"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#b3bc700b36eb53f126a2d5de70337d62">string2parameter</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> index, char *text)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Convert a string representation to a parameter value. <a href="#b3bc700b36eb53f126a2d5de70337d62"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#f6e7b6862c466062d20b40a814fc223f">getParameterProperties</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> index, <a class="el" href="struct_vst_parameter_properties.html">VstParameterProperties</a> *p)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return parameter properties. <a href="#f6e7b6862c466062d20b40a814fc223f"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#c4e961c44359986e7d12c1ecd5a5d7be">beginEdit</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> index)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">To be called before <a class="el" href="class_audio_effect.html#cb72754ddd451320b6805e1170b53aea">setParameterAutomated</a> (on Mouse Down). This will be used by the Host for specific Automation Recording. <a href="#c4e961c44359986e7d12c1ecd5a5d7be"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#abd6a35af12b20546f3462dd6fe1fbcf">endEdit</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> index)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">To be called after <a class="el" href="class_audio_effect.html#cb72754ddd451320b6805e1170b53aea">setParameterAutomated</a> (on Mouse Up). <a href="#abd6a35af12b20546f3462dd6fe1fbcf"></a><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Programs and Persistence</div></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#80d4aba84db9e05748816868abbb1811">getProgramNameIndexed</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> category, <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> index, char *text)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Fill <em>text</em> with name of program <em>index</em> (<em>category</em> deprecated in VST 2.4). <a href="#80d4aba84db9e05748816868abbb1811"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#e2225e4da1221bd16a1ccaa04d06ccc3">beginSetProgram</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Called before a program is loaded. <a href="#e2225e4da1221bd16a1ccaa04d06ccc3"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#376cbb0fbc35a87e3f8214e43a38b3d7">endSetProgram</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Called after a program was loaded. <a href="#376cbb0fbc35a87e3f8214e43a38b3d7"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#7c0b957f3c0b1afa97aea75321972e8c">beginLoadBank</a> (<a class="el" href="struct_vst_patch_chunk_info.html">VstPatchChunkInfo</a> *ptr)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Called before a Bank is loaded. <a href="#7c0b957f3c0b1afa97aea75321972e8c"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#7b7974e7256b82f861bb87f3f3dc1444">beginLoadProgram</a> (<a class="el" href="struct_vst_patch_chunk_info.html">VstPatchChunkInfo</a> *ptr)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Called before a Program is loaded. (called before <a class="el" href="class_audio_effect_x.html#e2225e4da1221bd16a1ccaa04d06ccc3">beginSetProgram</a>). <a href="#7b7974e7256b82f861bb87f3f3dc1444"></a><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Connections and Configuration</div></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#fd1663ca60afd2f9b7288d10004cf575">ioChanged</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Tell Host numInputs and/or numOutputs and/or initialDelay (and/or numParameters: to be avoid) have changed. <a href="#fd1663ca60afd2f9b7288d10004cf575"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#65ea6583567e22cc5f2594e25a76bcdf">updateSampleRate</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns sample rate from Host (may issue <a class="el" href="class_audio_effect.html#23710f86624cbb60f97fba870448fdb0">setSampleRate()</a>). <a href="#65ea6583567e22cc5f2594e25a76bcdf"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#2a57d5f42162dabf65d9695b6575e785">updateBlockSize</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns block size from Host (may issue <a class="el" href="class_audio_effect.html#2319993e3d01972418a3345aec285c77">getBlockSize()</a>). <a href="#2a57d5f42162dabf65d9695b6575e785"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#ae00a5d338e0b6d291ed10fb554a4132">getInputLatency</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the Audio (maybe ASIO) input latency values. <a href="#ae00a5d338e0b6d291ed10fb554a4132"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#7f1f2249c54ef470bbb2e9262c7707f4">getOutputLatency</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the Audio (maybe ASIO) output latency values. <a href="#7f1f2249c54ef470bbb2e9262c7707f4"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#d3647c98f7c9b2b6f7bd63e739872852">getInputProperties</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> index, <a class="el" href="struct_vst_pin_properties.html">VstPinProperties</a> *properties)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the <em>properties</em> of output <em>index</em>. <a href="#d3647c98f7c9b2b6f7bd63e739872852"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#93a6182068c4dd4ee4651be831114660">getOutputProperties</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> index, <a class="el" href="struct_vst_pin_properties.html">VstPinProperties</a> *properties)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the <em>properties</em> of input <em>index</em>. <a href="#93a6182068c4dd4ee4651be831114660"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#eb17011a1b4cdef8e089353aa1449b90">setSpeakerArrangement</a> (<a class="el" href="struct_vst_speaker_arrangement.html">VstSpeakerArrangement</a> *pluginInput, <a class="el" href="struct_vst_speaker_arrangement.html">VstSpeakerArrangement</a> *pluginOutput)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the plug-in's speaker arrangements. <a href="#eb17011a1b4cdef8e089353aa1449b90"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#bdc7ed0ea2ae1c8c3fdb419d803309ff">getSpeakerArrangement</a> (<a class="el" href="struct_vst_speaker_arrangement.html">VstSpeakerArrangement</a> **pluginInput, <a class="el" href="struct_vst_speaker_arrangement.html">VstSpeakerArrangement</a> **pluginOutput)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the plug-in's speaker arrangements. <a href="#bdc7ed0ea2ae1c8c3fdb419d803309ff"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#cb473dfc5f46b0f299f87b71b70ad0a1">setBypass</a> (bool onOff)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">For 'soft-bypass' (this could be automated (in Audio Thread) that why you could NOT call iochanged (if needed) in this function, do it in fxidle). <a href="#cb473dfc5f46b0f299f87b71b70ad0a1"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#6421148706f52493b4c218462c6c3669">setPanLaw</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> type, float val)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the Panning Law used by the Host. <a href="#6421148706f52493b4c218462c6c3669"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#3406179c9a48249a9fd9110757a85386">setProcessPrecision</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> precision)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set floating-point precision used for processing (32 or 64 bit). <a href="#3406179c9a48249a9fd9110757a85386"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#ce3f8bdd29d22f4a41a4f15d300e4fc1">getNumMidiInputChannels</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns number of MIDI input channels used [0, 16]. <a href="#ce3f8bdd29d22f4a41a4f15d300e4fc1"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#27f0e30ec9b08d827a29ade416a1a1e6">getNumMidiOutputChannels</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns number of MIDI output channels used [0, 16]. <a href="#27f0e30ec9b08d827a29ade416a1a1e6"></a><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Realtime</div></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="struct_vst_time_info.html">VstTimeInfo</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#321316fdaf0c636a8db927eabe8b5304">getTimeInfo</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> filter)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get time information from Host. <a href="#321316fdaf0c636a8db927eabe8b5304"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#48e1604ed621e8a0ca9ff7836aa76dfc">getCurrentProcessLevel</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the Host's process level. <a href="#48e1604ed621e8a0ca9ff7836aa76dfc"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#84da796c09c89ff64c77000e04618073">getAutomationState</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the Host's automation state. <a href="#84da796c09c89ff64c77000e04618073"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#60e959f1cf640ce1c6794be928aa4327">processEvents</a> (<a class="el" href="struct_vst_events.html">VstEvents</a> *events)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Called when new MIDI events come in. <a href="#60e959f1cf640ce1c6794be928aa4327"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#0b5d8c7546cbec387015a6a8fe7a0a98">sendVstEventsToHost</a> (<a class="el" href="struct_vst_events.html">VstEvents</a> *events)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Send MIDI events back to Host application. <a href="#0b5d8c7546cbec387015a6a8fe7a0a98"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#7ab6d207143f46d12b273c775f68973b">startProcess</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Called one time before the start of process call. This indicates that the process call will be interrupted (due to Host reconfiguration or bypass state when the plug-in doesn't support softBypass). <a href="#7ab6d207143f46d12b273c775f68973b"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#347a6cf07747192e99f6bb1100a9f863">stopProcess</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Called after the stop of process call. <a href="#347a6cf07747192e99f6bb1100a9f863"></a><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Variable I/O (Offline)</div></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#d81449ad9aa53166a4bdd945f08be46e">processVariableIo</a> (<a class="el" href="struct_vst_variable_io.html">VstVariableIo</a> *varIo)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Used for variable I/O processing (offline processing like timestreching). <a href="#d81449ad9aa53166a4bdd945f08be46e"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#275514ba421aa4b8f5f5c6c45cc241ef">setTotalSampleToProcess</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> value)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Called in offline mode before process() or processVariableIo (). <a href="#275514ba421aa4b8f5f5c6c45cc241ef"></a><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Host Properties</div></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#ebb28af8d3942675a8816bd6a018f049">getHostVendorString</a> (char *text)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Fills <em>text</em> with a string identifying the vendor. <a href="#ebb28af8d3942675a8816bd6a018f049"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#d601bba9648b3fadf0073783508f34aa">getHostProductString</a> (char *text)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Fills <em>text</em> with a string with product name. <a href="#d601bba9648b3fadf0073783508f34aa"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#a5cfcc05fa41316602e69cf14c59874b">getHostVendorVersion</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns vendor-specific version (for example 3200 for Nuendo 3.2). <a href="#a5cfcc05fa41316602e69cf14c59874b"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#082b56d6065a49d35a4046fa2d4a3882">VstIntPtr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#64a489eb3b8a4353a1f5956db05685d9">hostVendorSpecific</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> lArg1, <a class="el" href="aeffect_8h.html#082b56d6065a49d35a4046fa2d4a3882">VstIntPtr</a> lArg2, void *ptrArg, float floatArg)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">No specific definition. <a href="#64a489eb3b8a4353a1f5956db05685d9"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#ebd9e3052c52d95b4ee146b87eef64f0">canHostDo</a> (char *text)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Reports what the Host is able to do (hostCanDos in <a class="el" href="audioeffectx_8cpp.html">audioeffectx.cpp</a>). <a href="#ebd9e3052c52d95b4ee146b87eef64f0"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#56b1e99320ff53095ea79440f2149c5e">getHostLanguage</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the Host's language (<a class="el" href="aeffectx_8h.html#cf764c3185988eccb1f04e99da798a44">VstHostLanguage</a>). <a href="#56b1e99320ff53095ea79440f2149c5e"></a><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Plug-in Properties</div></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#37e43c4b41ea11e8d00b9252c14434cf">isSynth</a> (bool state=true)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set if plug-in is a synth. <a href="#37e43c4b41ea11e8d00b9252c14434cf"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#f683acda0f55fe277b8cbbbb479f6312">noTail</a> (bool state=true)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Plug-in won't produce output signals while there is no input. <a href="#f683acda0f55fe277b8cbbbb479f6312"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#69d5e076a3da6a172d5ccadab0ca25c7">getGetTailSize</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns tail size; 0 is default (return 1 for 'no tail'), used in offline processing too. <a href="#69d5e076a3da6a172d5ccadab0ca25c7"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#0d6ad09461186d3e779b279b55463a30">getDirectory</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the plug-in's directory. <a href="#0d6ad09461186d3e779b279b55463a30"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#ae9a92fbee475930d17f94bb855664d6">getEffectName</a> (char *name)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Fill <em>text</em> with a string identifying the effect. <a href="#ae9a92fbee475930d17f94bb855664d6"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#96e120428e511289a3b2dfd0c721450d">getVendorString</a> (char *text)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Fill <em>text</em> with a string identifying the vendor. <a href="#96e120428e511289a3b2dfd0c721450d"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#2a6d332cc9560512a49c9265974170e6">getProductString</a> (char *text)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Fill <em>text</em> with a string identifying the product name. <a href="#2a6d332cc9560512a49c9265974170e6"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#45965123ab6c7ee16bdc1687d8dca27c">getVendorVersion</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return vendor-specific version. <a href="#45965123ab6c7ee16bdc1687d8dca27c"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#082b56d6065a49d35a4046fa2d4a3882">VstIntPtr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#92b1c6115fe4e69e159e1a6ca8a92b96">vendorSpecific</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> lArg, <a class="el" href="aeffect_8h.html#082b56d6065a49d35a4046fa2d4a3882">VstIntPtr</a> lArg2, void *ptrArg, float floatArg)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">No definition, vendor specific handling. <a href="#92b1c6115fe4e69e159e1a6ca8a92b96"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#99b2166c339f819d531e9fc6c61fcbb0">canDo</a> (char *text)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Reports what the plug-in is able to do (plugCanDos in <a class="el" href="audioeffectx_8cpp.html">audioeffectx.cpp</a>). <a href="#99b2166c339f819d531e9fc6c61fcbb0"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#0ae9562f6f0f135a8b7f4528b4679e57">getVstVersion</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the current VST Version (<a class="el" href="aeffect_8h.html#97ea12532fb47dcfd3141fa68d33741d">kVstVersion</a>). <a href="#0ae9562f6f0f135a8b7f4528b4679e57"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffectx_8h.html#0211978ec81f9647c103a78fc8ec06cc">VstPlugCategory</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#fc661d87373690a8dba38d201cf61010">getPlugCategory</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Specify a category that fits the plug (<a class="el" href="aeffectx_8h.html#0211978ec81f9647c103a78fc8ec06cc">VstPlugCategory</a>). <a href="#fc661d87373690a8dba38d201cf61010"></a><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">MIDI Channel Programs</div></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#84f28e3718ae9e49f119b297644cc74b">getMidiProgramName</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> channel, <a class="el" href="struct_midi_program_name.html">MidiProgramName</a> *midiProgramName)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Fill <em>midiProgramName</em> with information for 'thisProgramIndex'. <a href="#84f28e3718ae9e49f119b297644cc74b"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#4140753f06193acef4e03c8b40ae5cf4">getCurrentMidiProgram</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> channel, <a class="el" href="struct_midi_program_name.html">MidiProgramName</a> *currentProgram)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Fill <em>currentProgram</em> with information for the current MIDI program. <a href="#4140753f06193acef4e03c8b40ae5cf4"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#e55c5ea4555133ef24a2236f3cdabe43">getMidiProgramCategory</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> channel, <a class="el" href="struct_midi_program_category.html">MidiProgramCategory</a> *category)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Fill <em>category</em> with information for 'thisCategoryIndex'. <a href="#e55c5ea4555133ef24a2236f3cdabe43"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#e1d3c54dba6fd6c54c20d45973953e6c">hasMidiProgramsChanged</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> channel)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return true if the MidiProgramNames, MidiKeyNames or MidiControllerNames had changed on this MIDI channel. <a href="#e1d3c54dba6fd6c54c20d45973953e6c"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#06e16d79f95a23e73836201573bfc1c9">getMidiKeyName</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> channel, <a class="el" href="struct_midi_key_name.html">MidiKeyName</a> *keyName)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Fill <em>keyName</em> with information for 'thisProgramIndex' and 'thisKeyNumber'. <a href="#06e16d79f95a23e73836201573bfc1c9"></a><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Others</div></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#62c47e72d53185d259979cef66b96081">updateDisplay</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Something has changed in plug-in, request an update display like program (MIDI too) and parameters list in Host. <a href="#62c47e72d53185d259979cef66b96081"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#33b48b4b937163e7eb0cdac51778dbd1">sizeWindow</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> width, <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> height)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Requests to resize the editor window. <a href="#33b48b4b937163e7eb0cdac51778dbd1"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#12098af2a53a5fee5870cf77b462781e">openFileSelector</a> (<a class="el" href="struct_vst_file_select.html">VstFileSelect</a> *ptr)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Open a Host File selector (see <a class="el" href="aeffectx_8h.html">aeffectx.h</a> for <a class="el" href="struct_vst_file_select.html">VstFileSelect</a> definition). <a href="#12098af2a53a5fee5870cf77b462781e"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#d8db2b195d53ad2a9fa5258e465d2fea">closeFileSelector</a> (<a class="el" href="struct_vst_file_select.html">VstFileSelect</a> *ptr)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Close the Host File selector which was opened by <a class="el" href="class_audio_effect_x.html#12098af2a53a5fee5870cf77b462781e">openFileSelector</a>. <a href="#d8db2b195d53ad2a9fa5258e465d2fea"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#fccbea2e95a87fb82159195995a88c44">getNextShellPlugin</a> (char *name)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">This opcode is only called, if the plug-in is of type <a class="el" href="aeffectx_8h.html#0211978ec81f9647c103a78fc8ec06ccad2d74f002fcefac31672a74bd49ab9e">kPlugCategShell</a>, in order to extract all included sub-plugin´s names. <a href="#fccbea2e95a87fb82159195995a88c44"></a><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Tools</div></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#3e1889b78003e183cee1794995ebb9ea">allocateArrangement</a> (<a class="el" href="struct_vst_speaker_arrangement.html">VstSpeakerArrangement</a> **arrangement, <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> nbChannels)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Allocate memory for a <a class="el" href="struct_vst_speaker_arrangement.html">VstSpeakerArrangement</a>. <a href="#3e1889b78003e183cee1794995ebb9ea"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#1adbe1d04b3405010451b66f13370171">deallocateArrangement</a> (<a class="el" href="struct_vst_speaker_arrangement.html">VstSpeakerArrangement</a> **arrangement)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Delete/free memory for an allocated speaker arrangement. <a href="#1adbe1d04b3405010451b66f13370171"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#a552bd5967df06fc3702b1c25ce3f171">copySpeaker</a> (<a class="el" href="struct_vst_speaker_properties.html">VstSpeakerProperties</a> *to, <a class="el" href="struct_vst_speaker_properties.html">VstSpeakerProperties</a> *from)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Copy properties <em>from</em> to <em>to</em>. <a href="#a552bd5967df06fc3702b1c25ce3f171"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect_x.html#f9ac2b32fccea5a23b2baf6a420ac789">matchArrangement</a> (<a class="el" href="struct_vst_speaker_arrangement.html">VstSpeakerArrangement</a> **to, <a class="el" href="struct_vst_speaker_arrangement.html">VstSpeakerArrangement</a> *from)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">"to" is deleted, then created and initialized with the same values as "from" ones ("from" must exist). <a href="#f9ac2b32fccea5a23b2baf6a420ac789"></a><br></td></tr> +</table> +<hr><a name="_details"></a><h2>Detailed Description</h2> +Extended VST Effect Class (VST 2.x). +<p> +<hr><h2>Constructor & Destructor Documentation</h2> +<a class="anchor" name="2cf2e60b0a0ad1a52654611593d83dcb"></a><!-- doxytag: member="AudioEffectX::AudioEffectX" ref="2cf2e60b0a0ad1a52654611593d83dcb" args="(audioMasterCallback audioMaster, VstInt32 numPrograms, VstInt32 numParams)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">AudioEffectX::AudioEffectX </td> + <td>(</td> + <td class="paramtype">audioMasterCallback </td> + <td class="paramname"> <em>audioMaster</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>numPrograms</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>numParams</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Create an <em><a class="el" href="class_audio_effect_x.html">AudioEffectX</a></em> object. +<p> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="class_audio_effect.html#f4c7918732aa2661a753c688cbb8a0a9">AudioEffect()</a> </dd></dl> + +</div> +</div><p> +<hr><h2>Member Function Documentation</h2> +<a class="anchor" name="3e1889b78003e183cee1794995ebb9ea"></a><!-- doxytag: member="AudioEffectX::allocateArrangement" ref="3e1889b78003e183cee1794995ebb9ea" args="(VstSpeakerArrangement **arrangement, VstInt32 nbChannels)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::allocateArrangement </td> + <td>(</td> + <td class="paramtype"><a class="el" href="struct_vst_speaker_arrangement.html">VstSpeakerArrangement</a> ** </td> + <td class="paramname"> <em>arrangement</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>nbChannels</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Allocate memory for a <a class="el" href="struct_vst_speaker_arrangement.html">VstSpeakerArrangement</a>. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>arrangement</em> </td><td>Pointer to a <em><a class="el" href="struct_vst_speaker_arrangement.html">VstSpeakerArrangement</a></em> structure </td></tr> + <tr><td valign="top"></td><td valign="top"><em>nbChannels</em> </td><td>Number of Channels </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>Returns <em>true</em> on success</dd></dl> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="class_audio_effect_x.html#1adbe1d04b3405010451b66f13370171">deallocateArrangement()</a>, <a class="el" href="class_audio_effect_x.html#a552bd5967df06fc3702b1c25ce3f171">copySpeaker()</a>, <a class="el" href="class_audio_effect_x.html#f9ac2b32fccea5a23b2baf6a420ac789">matchArrangement()</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="c4e961c44359986e7d12c1ecd5a5d7be"></a><!-- doxytag: member="AudioEffectX::beginEdit" ref="c4e961c44359986e7d12c1ecd5a5d7be" args="(VstInt32 index)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::beginEdit </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>index</em> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +To be called before <a class="el" href="class_audio_effect.html#cb72754ddd451320b6805e1170b53aea">setParameterAutomated</a> (on Mouse Down). This will be used by the Host for specific Automation Recording. +<p> +It tells the Host that if it needs to, it has to record automation data for this control.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>index</em> </td><td>Index of the parameter </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>Returns <em>true</em> on success</dd></dl> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="class_audio_effect_x.html#abd6a35af12b20546f3462dd6fe1fbcf">endEdit()</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="7c0b957f3c0b1afa97aea75321972e8c"></a><!-- doxytag: member="AudioEffectX::beginLoadBank" ref="7c0b957f3c0b1afa97aea75321972e8c" args="(VstPatchChunkInfo *ptr)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffectX::beginLoadBank </td> + <td>(</td> + <td class="paramtype"><a class="el" href="struct_vst_patch_chunk_info.html">VstPatchChunkInfo</a> * </td> + <td class="paramname"> <em>ptr</em> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Called before a Bank is loaded. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>ptr</em> </td><td></td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd><ul> +<li>-1: if the Bank cannot be loaded,</li><li>1: if it can be loaded</li><li>0: else (for compatibility)</li></ul> +</dd></dl> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="class_audio_effect_x.html#7b7974e7256b82f861bb87f3f3dc1444">beginLoadProgram()</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="7b7974e7256b82f861bb87f3f3dc1444"></a><!-- doxytag: member="AudioEffectX::beginLoadProgram" ref="7b7974e7256b82f861bb87f3f3dc1444" args="(VstPatchChunkInfo *ptr)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffectX::beginLoadProgram </td> + <td>(</td> + <td class="paramtype"><a class="el" href="struct_vst_patch_chunk_info.html">VstPatchChunkInfo</a> * </td> + <td class="paramname"> <em>ptr</em> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Called before a Program is loaded. (called before <a class="el" href="class_audio_effect_x.html#e2225e4da1221bd16a1ccaa04d06ccc3">beginSetProgram</a>). +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>ptr</em> </td><td></td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd><ul> +<li>-1: if the Program cannot be loaded,</li><li>1: it can be loaded else,</li><li>0: else (for compatibility)</li></ul> +</dd></dl> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="class_audio_effect_x.html#7c0b957f3c0b1afa97aea75321972e8c">beginLoadBank()</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="e2225e4da1221bd16a1ccaa04d06ccc3"></a><!-- doxytag: member="AudioEffectX::beginSetProgram" ref="e2225e4da1221bd16a1ccaa04d06ccc3" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::beginSetProgram </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Called before a program is loaded. +<p> +<dl compact><dt><b>Returns:</b></dt><dd><ul> +<li>true: the plug-in took the notification into account</li><li>false: it did not...</li></ul> +</dd></dl> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="class_audio_effect_x.html#376cbb0fbc35a87e3f8214e43a38b3d7">endSetProgram()</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="99b2166c339f819d531e9fc6c61fcbb0"></a><!-- doxytag: member="AudioEffectX::canDo" ref="99b2166c339f819d531e9fc6c61fcbb0" args="(char *text)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffectX::canDo </td> + <td>(</td> + <td class="paramtype">char * </td> + <td class="paramname"> <em>text</em> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Reports what the plug-in is able to do (plugCanDos in <a class="el" href="audioeffectx_8cpp.html">audioeffectx.cpp</a>). +<p> +Report what the plug-in is able to do. In general you can but don't have to report whatever you support or not support via canDo. Some application functionality may require some specific reply, but in that case you will probably know. Best is to report whatever you know for sure. A Host application cannot make assumptions about the presence of the new 2.x features of a plug-in. Ignoring this inquiry methods and trying to access a 2.x feature from a 1.0 plug, or vice versa, will mean the plug-in or Host application will break. It is not the end-users job to pick and choose which plug-ins can be supported by which Host.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>text</em> </td><td>A string from plugCanDos </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd><ul> +<li>0: don't know (default)</li><li>1: yes</li><li>-1: no</li></ul> +</dd></dl> +<dl compact><dt><b>Note:</b></dt><dd>This should be supported. </dd></dl> + +</div> +</div><p> +<a class="anchor" name="ebd9e3052c52d95b4ee146b87eef64f0"></a><!-- doxytag: member="AudioEffectX::canHostDo" ref="ebd9e3052c52d95b4ee146b87eef64f0" args="(char *text)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffectX::canHostDo </td> + <td>(</td> + <td class="paramtype">char * </td> + <td class="paramname"> <em>text</em> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Reports what the Host is able to do (hostCanDos in <a class="el" href="audioeffectx_8cpp.html">audioeffectx.cpp</a>). +<p> +Asks Host if it implements the feature text. A plug-in cannot assume a 2.x feature is available from the Host. Use this method to ascertain the environment in which the plug-in finds itself. Ignoring this inquiry methods and trying to access a 2.x feature in a 1.0 Host will mean your plug-in or Host application will break. It is not the end-users job to pick and choose which plug-ins can be supported by which Host.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>text</em> </td><td>A string from hostCanDos </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd><ul> +<li>0 : don't know (default)</li><li>1 : yes</li><li>-1: no </li></ul> +</dd></dl> + +</div> +</div><p> +<a class="anchor" name="6e6bf585239b75cd90e17b3aa0f8f36a"></a><!-- doxytag: member="AudioEffectX::canParameterBeAutomated" ref="6e6bf585239b75cd90e17b3aa0f8f36a" args="(VstInt32 index)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::canParameterBeAutomated </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>index</em> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Indicates if a parameter can be automated. +<p> +Obviously only useful when the application supports this.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>index</em> </td><td>Index of the parameter </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>if supported </dd></dl> + +</div> +</div><p> +<a class="anchor" name="d8db2b195d53ad2a9fa5258e465d2fea"></a><!-- doxytag: member="AudioEffectX::closeFileSelector" ref="d8db2b195d53ad2a9fa5258e465d2fea" args="(VstFileSelect *ptr)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::closeFileSelector </td> + <td>(</td> + <td class="paramtype"><a class="el" href="struct_vst_file_select.html">VstFileSelect</a> * </td> + <td class="paramname"> <em>ptr</em> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Close the Host File selector which was opened by <a class="el" href="class_audio_effect_x.html#12098af2a53a5fee5870cf77b462781e">openFileSelector</a>. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>ptr</em> </td><td></td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>Returns <em>true</em> on success</dd></dl> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="class_audio_effect_x.html#12098af2a53a5fee5870cf77b462781e">openFileSelector()</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="a552bd5967df06fc3702b1c25ce3f171"></a><!-- doxytag: member="AudioEffectX::copySpeaker" ref="a552bd5967df06fc3702b1c25ce3f171" args="(VstSpeakerProperties *to, VstSpeakerProperties *from)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::copySpeaker </td> + <td>(</td> + <td class="paramtype"><a class="el" href="struct_vst_speaker_properties.html">VstSpeakerProperties</a> * </td> + <td class="paramname"> <em>to</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="struct_vst_speaker_properties.html">VstSpeakerProperties</a> * </td> + <td class="paramname"> <em>from</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Copy properties <em>from</em> to <em>to</em>. +<p> +Feed the <em>to</em> speaker properties with the same values than <em>from</em> 's ones. It is assumed here that <em>to</em> exists yet, ie this function won't allocate memory for the speaker (this will prevent from having a difference between an Arrangement's number of channels and its actual speakers...)<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>to</em> </td><td></td></tr> + <tr><td valign="top"></td><td valign="top"><em>from</em> </td><td></td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>Returns <em>true</em> on success</dd></dl> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="class_audio_effect_x.html#3e1889b78003e183cee1794995ebb9ea">allocateArrangement()</a>, <a class="el" href="class_audio_effect_x.html#1adbe1d04b3405010451b66f13370171">deallocateArrangement()</a>, <a class="el" href="class_audio_effect_x.html#f9ac2b32fccea5a23b2baf6a420ac789">matchArrangement()</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="1adbe1d04b3405010451b66f13370171"></a><!-- doxytag: member="AudioEffectX::deallocateArrangement" ref="1adbe1d04b3405010451b66f13370171" args="(VstSpeakerArrangement **arrangement)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::deallocateArrangement </td> + <td>(</td> + <td class="paramtype"><a class="el" href="struct_vst_speaker_arrangement.html">VstSpeakerArrangement</a> ** </td> + <td class="paramname"> <em>arrangement</em> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Delete/free memory for an allocated speaker arrangement. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>arrangement</em> </td><td>Pointer to a <em><a class="el" href="struct_vst_speaker_arrangement.html">VstSpeakerArrangement</a></em> structure </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>Returns <em>true</em> on success</dd></dl> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="class_audio_effect_x.html#3e1889b78003e183cee1794995ebb9ea">allocateArrangement()</a>, <a class="el" href="class_audio_effect_x.html#a552bd5967df06fc3702b1c25ce3f171">copySpeaker()</a>, <a class="el" href="class_audio_effect_x.html#f9ac2b32fccea5a23b2baf6a420ac789">matchArrangement()</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="abd6a35af12b20546f3462dd6fe1fbcf"></a><!-- doxytag: member="AudioEffectX::endEdit" ref="abd6a35af12b20546f3462dd6fe1fbcf" args="(VstInt32 index)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::endEdit </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>index</em> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +To be called after <a class="el" href="class_audio_effect.html#cb72754ddd451320b6805e1170b53aea">setParameterAutomated</a> (on Mouse Up). +<p> +It notifies the Host that this control is no longer moved by the mouse.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>index</em> </td><td>Index of the parameter </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>Returns <em>true</em> on success</dd></dl> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="class_audio_effect_x.html#c4e961c44359986e7d12c1ecd5a5d7be">beginEdit()</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="376cbb0fbc35a87e3f8214e43a38b3d7"></a><!-- doxytag: member="AudioEffectX::endSetProgram" ref="376cbb0fbc35a87e3f8214e43a38b3d7" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::endSetProgram </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Called after a program was loaded. +<p> +<dl compact><dt><b>Returns:</b></dt><dd><ul> +<li>true: the plug-in took the notification into account</li><li>false: it did not...</li></ul> +</dd></dl> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="class_audio_effect_x.html#e2225e4da1221bd16a1ccaa04d06ccc3">beginSetProgram()</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="84da796c09c89ff64c77000e04618073"></a><!-- doxytag: member="AudioEffectX::getAutomationState" ref="84da796c09c89ff64c77000e04618073" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffectX::getAutomationState </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Returns the Host's automation state. +<p> +<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="aeffectx_8h.html#7cfb26c593e6f009c4e4445ba46b5114">VstAutomationStates</a> in <a class="el" href="aeffectx_8h.html">aeffectx.h</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="4140753f06193acef4e03c8b40ae5cf4"></a><!-- doxytag: member="AudioEffectX::getCurrentMidiProgram" ref="4140753f06193acef4e03c8b40ae5cf4" args="(VstInt32 channel, MidiProgramName *currentProgram)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffectX::getCurrentMidiProgram </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>channel</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="struct_midi_program_name.html">MidiProgramName</a> * </td> + <td class="paramname"> <em>currentProgram</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Fill <em>currentProgram</em> with information for the current MIDI program. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>channel</em> </td><td></td></tr> + <tr><td valign="top"></td><td valign="top"><em>currentProgram</em> </td><td></td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd><ul> +<li>programIndex of the current program</li><li>-1 if not supported </li></ul> +</dd></dl> + +</div> +</div><p> +<a class="anchor" name="48e1604ed621e8a0ca9ff7836aa76dfc"></a><!-- doxytag: member="AudioEffectX::getCurrentProcessLevel" ref="48e1604ed621e8a0ca9ff7836aa76dfc" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffectX::getCurrentProcessLevel </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Returns the Host's process level. +<p> +A plug-in is like a black box processing some audio coming in on some inputs (if any) and going out of some outputs (if any). This may be used to do offline or real-time processing, and sometimes it may be desirable to know the current context.<p> +<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="aeffectx_8h.html#b2bca36f92941fb6f5ecde24c508aa47">VstProcessLevels</a> in <a class="el" href="aeffectx_8h.html">aeffectx.h</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="0d6ad09461186d3e779b279b55463a30"></a><!-- doxytag: member="AudioEffectX::getDirectory" ref="0d6ad09461186d3e779b279b55463a30" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void * AudioEffectX::getDirectory </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Returns the plug-in's directory. +<p> +<dl compact><dt><b>Returns:</b></dt><dd>FSSpec on MAC, else char* </dd></dl> + +</div> +</div><p> +<a class="anchor" name="ae9a92fbee475930d17f94bb855664d6"></a><!-- doxytag: member="AudioEffectX::getEffectName" ref="ae9a92fbee475930d17f94bb855664d6" args="(char *name)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::getEffectName </td> + <td>(</td> + <td class="paramtype">char * </td> + <td class="paramname"> <em>name</em> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Fill <em>text</em> with a string identifying the effect. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>A string up to 32 chars </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd><em>true</em> on success </dd></dl> + +</div> +</div><p> +<a class="anchor" name="69d5e076a3da6a172d5ccadab0ca25c7"></a><!-- doxytag: member="AudioEffectX::getGetTailSize" ref="69d5e076a3da6a172d5ccadab0ca25c7" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffectX::getGetTailSize </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Returns tail size; 0 is default (return 1 for 'no tail'), used in offline processing too. +<p> + +</div> +</div><p> +<a class="anchor" name="56b1e99320ff53095ea79440f2149c5e"></a><!-- doxytag: member="AudioEffectX::getHostLanguage" ref="56b1e99320ff53095ea79440f2149c5e" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffectX::getHostLanguage </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Returns the Host's language (<a class="el" href="aeffectx_8h.html#cf764c3185988eccb1f04e99da798a44">VstHostLanguage</a>). +<p> +<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="aeffectx_8h.html#cf764c3185988eccb1f04e99da798a44">VstHostLanguage</a> in <a class="el" href="aeffectx_8h.html">aeffectx.h</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="d601bba9648b3fadf0073783508f34aa"></a><!-- doxytag: member="AudioEffectX::getHostProductString" ref="d601bba9648b3fadf0073783508f34aa" args="(char *text)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::getHostProductString </td> + <td>(</td> + <td class="paramtype">char * </td> + <td class="paramname"> <em>text</em> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Fills <em>text</em> with a string with product name. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>text</em> </td><td>String of maximum 64 char </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd><em>true</em> if supported </dd></dl> + +</div> +</div><p> +<a class="anchor" name="ebb28af8d3942675a8816bd6a018f049"></a><!-- doxytag: member="AudioEffectX::getHostVendorString" ref="ebb28af8d3942675a8816bd6a018f049" args="(char *text)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::getHostVendorString </td> + <td>(</td> + <td class="paramtype">char * </td> + <td class="paramname"> <em>text</em> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Fills <em>text</em> with a string identifying the vendor. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>text</em> </td><td>String of maximum 64 char </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd><em>true</em> if supported </dd></dl> + +</div> +</div><p> +<a class="anchor" name="a5cfcc05fa41316602e69cf14c59874b"></a><!-- doxytag: member="AudioEffectX::getHostVendorVersion" ref="a5cfcc05fa41316602e69cf14c59874b" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffectX::getHostVendorVersion </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Returns vendor-specific version (for example 3200 for Nuendo 3.2). +<p> +<dl compact><dt><b>Returns:</b></dt><dd>Host vendor version </dd></dl> + +</div> +</div><p> +<a class="anchor" name="ae00a5d338e0b6d291ed10fb554a4132"></a><!-- doxytag: member="AudioEffectX::getInputLatency" ref="ae00a5d338e0b6d291ed10fb554a4132" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffectX::getInputLatency </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Returns the Audio (maybe ASIO) input latency values. +<p> +<dl compact><dt><b>Returns:</b></dt><dd>ASIO input latency </dd></dl> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="class_audio_effect_x.html#7f1f2249c54ef470bbb2e9262c7707f4">getOutputLatency()</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="d3647c98f7c9b2b6f7bd63e739872852"></a><!-- doxytag: member="AudioEffectX::getInputProperties" ref="d3647c98f7c9b2b6f7bd63e739872852" args="(VstInt32 index, VstPinProperties *properties)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::getInputProperties </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>index</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="struct_vst_pin_properties.html">VstPinProperties</a> * </td> + <td class="paramname"> <em>properties</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Return the <em>properties</em> of output <em>index</em>. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>index</em> </td><td>The index to the input, starting with 0 </td></tr> + <tr><td valign="top"></td><td valign="top"><em>properties</em> </td><td>A pointer to a <a class="el" href="struct_vst_pin_properties.html">VstPinProperties</a> structure </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd><em>true</em> on success </dd></dl> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="class_audio_effect_x.html#93a6182068c4dd4ee4651be831114660">getOutputProperties()</a> </dd></dl> +<dl compact><dt><b>Note:</b></dt><dd>Example <pre> + bool MyPlug::getInputProperties (VstInt32 index, VstPinProperties* properties) + { + bool returnCode = false; + if (index < kNumInputs) + { + sprintf (properties->label, "My %1d In", index + 1); + properties->flags = kVstPinIsStereo | kVstPinIsActive; + returnCode = true; + } + return returnCode; + } + </pre> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="06e16d79f95a23e73836201573bfc1c9"></a><!-- doxytag: member="AudioEffectX::getMidiKeyName" ref="06e16d79f95a23e73836201573bfc1c9" args="(VstInt32 channel, MidiKeyName *keyName)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::getMidiKeyName </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>channel</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="struct_midi_key_name.html">MidiKeyName</a> * </td> + <td class="paramname"> <em>keyName</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Fill <em>keyName</em> with information for 'thisProgramIndex' and 'thisKeyNumber'. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>channel</em> </td><td></td></tr> + <tr><td valign="top"></td><td valign="top"><em>keyName</em> </td><td>If keyName is "" the standard name of the key will be displayed </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>Return <em>false</em> if no MidiKeyNames defined for 'thisProgramIndex' </dd></dl> + +</div> +</div><p> +<a class="anchor" name="e55c5ea4555133ef24a2236f3cdabe43"></a><!-- doxytag: member="AudioEffectX::getMidiProgramCategory" ref="e55c5ea4555133ef24a2236f3cdabe43" args="(VstInt32 channel, MidiProgramCategory *category)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffectX::getMidiProgramCategory </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>channel</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="struct_midi_program_category.html">MidiProgramCategory</a> * </td> + <td class="paramname"> <em>category</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Fill <em>category</em> with information for 'thisCategoryIndex'. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>channel</em> </td><td></td></tr> + <tr><td valign="top"></td><td valign="top"><em>category</em> </td><td></td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd><ul> +<li>number of used categoryIndexes.</li><li>0 if no <a class="el" href="struct_midi_program_category.html">MidiProgramCategory</a> supported/used. </li></ul> +</dd></dl> + +</div> +</div><p> +<a class="anchor" name="84f28e3718ae9e49f119b297644cc74b"></a><!-- doxytag: member="AudioEffectX::getMidiProgramName" ref="84f28e3718ae9e49f119b297644cc74b" args="(VstInt32 channel, MidiProgramName *midiProgramName)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffectX::getMidiProgramName </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>channel</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="struct_midi_program_name.html">MidiProgramName</a> * </td> + <td class="paramname"> <em>midiProgramName</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Fill <em>midiProgramName</em> with information for 'thisProgramIndex'. +<p> +Ask plug-in if MidiPrograms are used and if so, query for names, numbers (ProgramChange-Number + BankSelect-Number), categories and keynames of each MIDI Program, on each MIDI-channel. If this function is called, your plug-in has to read <a class="el" href="struct_midi_program_name.html#7c922126ca3156b5c77c83cc478e355a">MidiProgramName::thisProgramIndex</a>, fill out the other fields with the information assigned to a certain MIDI Program and return the number of available MIDI Programs on that MIDI Channel.<p> +<dl compact><dt><b>Note:</b></dt><dd>plug-in canDo "midiProgramNames". No effect, if 0 is returned.</dd></dl> +<dl compact><dt><b>Warning:</b></dt><dd>don't mix concepts: the MIDI Programs are totally independent from all other programs present in VST. The main difference is, that there are upto 16 simultaneous active MIDI Programs (one per channel), while there can be only one active "VST"-Program. (You should see the "VST"-Program as the one single main global program, which contains the entire current state of the plug-in.) This function can be called in any sequence.</dd></dl> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>channel</em> </td><td>MidiChannel: 0-15 </td></tr> + <tr><td valign="top"></td><td valign="top"><em>midiProgramName</em> </td><td>Points to <em><a class="el" href="struct_midi_program_name.html">MidiProgramName</a></em> struct </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>Number of available MIDI Programs on that <em>channel</em> <ul> +<li>number of used programIndexes</li><li>0 if no MidiProgramNames supported</li></ul> +</dd></dl> +<dl compact><dt><b>Note:</b></dt><dd>Example : plug-in has 3 MidiPrograms on MidiChannel 0. <pre> + Host calls <a class="el" href="class_audio_effect_x.html#84f28e3718ae9e49f119b297644cc74b">getMidiProgramName</a> with idx = 0 and <a class="el" href="struct_midi_program_name.html#7c922126ca3156b5c77c83cc478e355a">MidiProgramName::thisProgramIndex</a> = 0. + Plug fills out: + <a class="el" href="struct_midi_program_name.html#ad55106d9137df3d657b72c25c894536">MidiProgramName::name</a>[64] = "Program A" + <a class="el" href="struct_midi_program_name.html#6d6de118722cd29ca7f6ef36ded5508f">MidiProgramName::midiProgram</a> = 0 + <a class="el" href="struct_midi_program_name.html#be5c845e3532eb6bc2cd870320d0e439">MidiProgramName::midiBankMsb</a> = -1 + <a class="el" href="struct_midi_program_name.html#e07770578c7aa4ae865eab90d266ba03">MidiProgramName::midiBankLsb</a> = -1 + <a class="el" href="struct_midi_program_name.html#2f3e4d96f5888688d2b413750ecd94fb">MidiProgramName::parentCategoryIndex</a> = -1 + <a class="el" href="struct_midi_program_name.html#d339e383ad7af425b56a9e89636d975e">MidiProgramName::flags</a> = 0 (if plug isn't "Omni"). + Plug returns 3. + Host calls <a class="el" href="class_audio_effect_x.html#84f28e3718ae9e49f119b297644cc74b">getMidiProgramName</a> with idx = 0 and <a class="el" href="struct_midi_program_name.html#7c922126ca3156b5c77c83cc478e355a">MidiProgramName::thisProgramIndex</a> = 1. + Plug fills out: + <a class="el" href="struct_midi_program_name.html#ad55106d9137df3d657b72c25c894536">MidiProgramName::name</a>[64] = "Program B" + <a class="el" href="struct_midi_program_name.html#6d6de118722cd29ca7f6ef36ded5508f">MidiProgramName::midiProgram</a> = 1 + <a class="el" href="struct_midi_program_name.html#be5c845e3532eb6bc2cd870320d0e439">MidiProgramName::midiBankMsb</a> = -1 + <a class="el" href="struct_midi_program_name.html#e07770578c7aa4ae865eab90d266ba03">MidiProgramName::midiBankLsb</a> = -1 + <a class="el" href="struct_midi_program_name.html#2f3e4d96f5888688d2b413750ecd94fb">MidiProgramName::parentCategoryIndex</a> = -1 + <a class="el" href="struct_midi_program_name.html#d339e383ad7af425b56a9e89636d975e">MidiProgramName::flags</a> = 0 (if plug isn't "Omni"). + Plug returns 3. + Host calls <a class="el" href="class_audio_effect_x.html#84f28e3718ae9e49f119b297644cc74b">getMidiProgramName</a> with idx = 0 and <a class="el" href="struct_midi_program_name.html#7c922126ca3156b5c77c83cc478e355a">MidiProgramName::thisProgramIndex</a> = 2. + Plug fills out: + <a class="el" href="struct_midi_program_name.html#ad55106d9137df3d657b72c25c894536">MidiProgramName::name</a>[64] = "Program C" + <a class="el" href="struct_midi_program_name.html#6d6de118722cd29ca7f6ef36ded5508f">MidiProgramName::midiProgram</a> = 2 + <a class="el" href="struct_midi_program_name.html#be5c845e3532eb6bc2cd870320d0e439">MidiProgramName::midiBankMsb</a> = -1 + <a class="el" href="struct_midi_program_name.html#e07770578c7aa4ae865eab90d266ba03">MidiProgramName::midiBankLsb</a> = -1 + <a class="el" href="struct_midi_program_name.html#2f3e4d96f5888688d2b413750ecd94fb">MidiProgramName::parentCategoryIndex</a> = -1 + <a class="el" href="struct_midi_program_name.html#d339e383ad7af425b56a9e89636d975e">MidiProgramName::flags</a> = 0 (if plug isn't "Omni"). + Plug returns 3. + </pre> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="fccbea2e95a87fb82159195995a88c44"></a><!-- doxytag: member="AudioEffectX::getNextShellPlugin" ref="fccbea2e95a87fb82159195995a88c44" args="(char *name)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffectX::getNextShellPlugin </td> + <td>(</td> + <td class="paramtype">char * </td> + <td class="paramname"> <em>name</em> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +This opcode is only called, if the plug-in is of type <a class="el" href="aeffectx_8h.html#0211978ec81f9647c103a78fc8ec06ccad2d74f002fcefac31672a74bd49ab9e">kPlugCategShell</a>, in order to extract all included sub-plugin´s names. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>Points to a char buffer of size 64, which is to be filled with the name of the plug-in including the terminating zero </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>Return the next plug-in's uniqueID </dd></dl> +<dl compact><dt><b>Note:</b></dt><dd>Example of Implementation <pre> + //---From the Host side : if found plugin is a Shell category----------- + if (effect->getCategory () == kPlugCategShell) + { + // scan shell for subplugins + char tempName[64] = {0}; + VstInt32 plugUniqueID = 0; + while ((plugUniqueID = effect->dispatchEffect (effShellGetNextPlugin, 0, 0, tempName)) != 0) + { + // subplug needs a name + if (tempName[0] != 0) + { + ...do what you want with this tempName and plugUniqueID + } + } + } + //---From the Host side : Intanciate a subplugin of a shell plugin--- + // retreive the uniqueID of this subplugin the host wants to load + // set it to the host currentID + currentID = subplugInfo->uniqueID; + // call the its shell plugin (main function) + main (); + // the shell plugin will ask for the currentUniqueID + // and should return the chosen subplugin + ... + //---From the plugin-Shell Side: for enumeration of subplugins--------- + category = kPlugCategShell; + ->can ask the host if "shellCategory" is supported + // at start (instanciation) reset the index for the getNextShellPlugin call. + myPluginShell::index = 0; + // implementation of getNextShellPlugin (char* name); + VstInt32 myPluginShell::getNextShellPlugin (char* name) + { + strcpy (name, MyNameTable[index]); + return MyUniqueIDTable[index++]; + } + .... + //---From the plugin-Shell Side: when instanciation----- + VstInt32 uniqueID = host->getCurrentUniqueID (); + if (uniqueID == 0) // the host instanciates the shell + {} + else // host try to instanciate one of my subplugin...identified by the uniqueID + {} +</pre> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="ce3f8bdd29d22f4a41a4f15d300e4fc1"></a><!-- doxytag: member="AudioEffectX::getNumMidiInputChannels" ref="ce3f8bdd29d22f4a41a4f15d300e4fc1" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffectX::getNumMidiInputChannels </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Returns number of MIDI input channels used [0, 16]. +<p> +Called by the host application to determine how many MIDI input channels are actually used by a plugin e.g. to hide unused channels from the user. For compatibility with VST 2.3 and below, the default return value 0 means 'not implemented' - in this case the host assumes 16 MIDI channels to be present (or none at all).<p> +<dl compact><dt><b>Returns:</b></dt><dd>Number of MIDI input channels: 1-15, otherwise: 16 or no MIDI channels at all (0)</dd></dl> +<dl compact><dt><b>Note:</b></dt><dd>The VST 2.x protocol is limited to a maximum of 16 MIDI channels as defined by the MIDI Standard. This might change in future revisions of the API.</dd></dl> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="class_audio_effect_x.html#27f0e30ec9b08d827a29ade416a1a1e6">getNumMidiOutputChannels()</a> <br> + <a class="el" href="namespace_plug_can_dos.html#1be8c55bcf6c8ab09d92c33b74cd2298">PlugCanDos::canDoReceiveVstMidiEvent</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="27f0e30ec9b08d827a29ade416a1a1e6"></a><!-- doxytag: member="AudioEffectX::getNumMidiOutputChannels" ref="27f0e30ec9b08d827a29ade416a1a1e6" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffectX::getNumMidiOutputChannels </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Returns number of MIDI output channels used [0, 16]. +<p> +Called by the host application to determine how many MIDI output channels are actually used by a plugin e.g. to hide unused channels from the user. For compatibility with VST 2.3 and below, the default return value 0 means 'not implemented' - in this case the host assumes 16 MIDI channels to be present (or none at all).<p> +<dl compact><dt><b>Returns:</b></dt><dd>Number of MIDI output channels: 1-15, otherwise: 16 or no MIDI channels at all (0)</dd></dl> +<dl compact><dt><b>Note:</b></dt><dd>The VST 2.x protocol is limited to a maximum of 16 MIDI channels as defined by the MIDI Standard. This might change in future revisions of the API.</dd></dl> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="class_audio_effect_x.html#ce3f8bdd29d22f4a41a4f15d300e4fc1">getNumMidiInputChannels()</a> <br> + <a class="el" href="namespace_plug_can_dos.html#490e3851cd8a0af7a82dc81d3c5150ea">PlugCanDos::canDoSendVstMidiEvent</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="7f1f2249c54ef470bbb2e9262c7707f4"></a><!-- doxytag: member="AudioEffectX::getOutputLatency" ref="7f1f2249c54ef470bbb2e9262c7707f4" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffectX::getOutputLatency </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Returns the Audio (maybe ASIO) output latency values. +<p> +While inputLatency is probably not of concern, outputLatency may be used in conjunction with <a class="el" href="class_audio_effect_x.html#321316fdaf0c636a8db927eabe8b5304">getTimeInfo()</a>. <em>samplePos</em> of <a class="el" href="struct_vst_time_info.html">VstTimeInfo</a> is ahead of the 'visual' sequencer play time by the output latency, such that when outputLatency samples have passed by, our processing result becomes audible.<p> +<dl compact><dt><b>Returns:</b></dt><dd>ASIO output latency </dd></dl> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="class_audio_effect_x.html#ae00a5d338e0b6d291ed10fb554a4132">getInputLatency()</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="93a6182068c4dd4ee4651be831114660"></a><!-- doxytag: member="AudioEffectX::getOutputProperties" ref="93a6182068c4dd4ee4651be831114660" args="(VstInt32 index, VstPinProperties *properties)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::getOutputProperties </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>index</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="struct_vst_pin_properties.html">VstPinProperties</a> * </td> + <td class="paramname"> <em>properties</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Return the <em>properties</em> of input <em>index</em>. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>index</em> </td><td>The index to the output, starting with 0 </td></tr> + <tr><td valign="top"></td><td valign="top"><em>properties</em> </td><td>A pointer to a <a class="el" href="struct_vst_pin_properties.html">VstPinProperties</a> structure </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd><em>true</em> on success </dd></dl> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="class_audio_effect_x.html#d3647c98f7c9b2b6f7bd63e739872852">getInputProperties()</a> </dd></dl> +<dl compact><dt><b>Note:</b></dt><dd>Example 1 <pre> + bool MyPlug::getOutputProperties (VstInt32 index, VstPinProperties* properties) + { + bool returnCode = false; + if (index < kNumOutputs) + { + sprintf (properties->label, "My %1d Out", index + 1); + properties->flags = kVstPinIsStereo | kVstPinIsActive; + returnCode = true; + } + return (returnCode); + } + </pre><p> +Example 2 : plug-in with 1 mono, 1 stereo and one 5.1 outputs (kNumOutputs = 9): <pre> + bool MyPlug::getOutputProperties (VstInt32 index, VstPinProperties* properties) + { + bool returnCode = false; + if (index >= 0 && index < kNumOutputs) + { + properties->flags = kVstPinIsActive; + if (index == 0) // mono + { + strcpy (properties->label, "Mono Out"); + properties->arrangementType = kSpeakerArrMono; + } + else if (index == 1) // stereo (1 -> 2) + { + strcpy (properties->label, "Stereo Out"); + properties->flags |= kVstPinIsStereo; + properties->arrangementType = kSpeakerArrStereo; + } + else if (index >= 3) // 5.1 (3 -> 8) + { + strcpy (properties->label, "5.1 Out"); + properties->flags |= kVstPinUseSpeaker; + properties->arrangementType = kSpeakerArr51; +for old VST Host < 2.3, make 5.1 to stereo/mono/mono/stereo (L R C Lfe Ls Rs) + if (index == 3 || index == 7) + properties->flags |= kVstPinIsStereo; + if (index == 5) + strcpy (properties->label, "Center"); + else if (index == 6) + strcpy (properties->label, "Lfe"); + else if (index == 7) // (7 -> 8) + strcpy (properties->label, "Stereo Back"); + } + returnCode = true; + } + return returnCode; + } + </pre> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="f6e7b6862c466062d20b40a814fc223f"></a><!-- doxytag: member="AudioEffectX::getParameterProperties" ref="f6e7b6862c466062d20b40a814fc223f" args="(VstInt32 index, VstParameterProperties *p)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::getParameterProperties </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>index</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="struct_vst_parameter_properties.html">VstParameterProperties</a> * </td> + <td class="paramname"> <em>p</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Return parameter properties. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>index</em> </td><td>Index of the parameter </td></tr> + <tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>Pointer to <a class="el" href="struct_vst_parameter_properties.html">VstParameterProperties</a> </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>Return <em>true</em> on success </dd></dl> + +</div> +</div><p> +<a class="anchor" name="fc661d87373690a8dba38d201cf61010"></a><!-- doxytag: member="AudioEffectX::getPlugCategory" ref="fc661d87373690a8dba38d201cf61010" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffectx_8h.html#0211978ec81f9647c103a78fc8ec06cc">VstPlugCategory</a> AudioEffectX::getPlugCategory </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Specify a category that fits the plug (<a class="el" href="aeffectx_8h.html#0211978ec81f9647c103a78fc8ec06cc">VstPlugCategory</a>). +<p> +<dl compact><dt><b>Returns:</b></dt><dd>Plug-in's category defined in VstPlugCategory </dd></dl> + +</div> +</div><p> +<a class="anchor" name="2a6d332cc9560512a49c9265974170e6"></a><!-- doxytag: member="AudioEffectX::getProductString" ref="2a6d332cc9560512a49c9265974170e6" args="(char *text)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::getProductString </td> + <td>(</td> + <td class="paramtype">char * </td> + <td class="paramname"> <em>text</em> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Fill <em>text</em> with a string identifying the product name. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>text</em> </td><td>A string up to 64 chars </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd><em>true</em> on success </dd></dl> + +</div> +</div><p> +<a class="anchor" name="80d4aba84db9e05748816868abbb1811"></a><!-- doxytag: member="AudioEffectX::getProgramNameIndexed" ref="80d4aba84db9e05748816868abbb1811" args="(VstInt32 category, VstInt32 index, char *text)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::getProgramNameIndexed </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>category</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>index</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">char * </td> + <td class="paramname"> <em>text</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Fill <em>text</em> with name of program <em>index</em> (<em>category</em> deprecated in VST 2.4). +<p> +Allows a Host application to list the plug-in's programs (presets).<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>category</em> </td><td>unused in VST 2.4 </td></tr> + <tr><td valign="top"></td><td valign="top"><em>index</em> </td><td>Index of the program in a given category, starting with 0. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>text</em> </td><td>A string up to 24 chars. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd><em>true</em> on success </dd></dl> + +</div> +</div><p> +<a class="anchor" name="bdc7ed0ea2ae1c8c3fdb419d803309ff"></a><!-- doxytag: member="AudioEffectX::getSpeakerArrangement" ref="bdc7ed0ea2ae1c8c3fdb419d803309ff" args="(VstSpeakerArrangement **pluginInput, VstSpeakerArrangement **pluginOutput)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::getSpeakerArrangement </td> + <td>(</td> + <td class="paramtype"><a class="el" href="struct_vst_speaker_arrangement.html">VstSpeakerArrangement</a> ** </td> + <td class="paramname"> <em>pluginInput</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="struct_vst_speaker_arrangement.html">VstSpeakerArrangement</a> ** </td> + <td class="paramname"> <em>pluginOutput</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Return the plug-in's speaker arrangements. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>pluginInput</em> </td><td>A pointer to the input's <a class="el" href="struct_vst_speaker_arrangement.html">VstSpeakerArrangement</a> structure. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>pluginOutput</em> </td><td>A pointer to the output's <a class="el" href="struct_vst_speaker_arrangement.html">VstSpeakerArrangement</a> structure. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd><em>true</em> on success</dd></dl> +<dl compact><dt><b>Note:</b></dt><dd><a class="el" href="class_audio_effect_x.html#eb17011a1b4cdef8e089353aa1449b90">setSpeakerArrangement()</a> and <a class="el" href="class_audio_effect_x.html#bdc7ed0ea2ae1c8c3fdb419d803309ff">getSpeakerArrangement()</a> are always called in suspended state. (like <a class="el" href="class_audio_effect.html#23710f86624cbb60f97fba870448fdb0">setSampleRate()</a> or <a class="el" href="class_audio_effect.html#453b6bed70ffb16df43da9427e066a62">setBlockSize()</a>).<br> + <pre>Here an example code to show how the host uses <a class="el" href="class_audio_effect_x.html#bdc7ed0ea2ae1c8c3fdb419d803309ff">getSpeakerArrangement()</a> + <a class="el" href="struct_vst_speaker_arrangement.html">VstSpeakerArrangement</a> *plugInputVstArr = 0; + <a class="el" href="struct_vst_speaker_arrangement.html">VstSpeakerArrangement</a> *plugOutputVstArr = 0; + if (getFormatVersion () >= 2300 && <a class="el" href="class_audio_effect_x.html#bdc7ed0ea2ae1c8c3fdb419d803309ff">getSpeakerArrangement</a> (&plugInputVstArr, &plugOutputVstArr)) + .... + </pre></dd></dl> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="class_audio_effect_x.html#eb17011a1b4cdef8e089353aa1449b90">setSpeakerArrangement()</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="321316fdaf0c636a8db927eabe8b5304"></a><!-- doxytag: member="AudioEffectX::getTimeInfo" ref="321316fdaf0c636a8db927eabe8b5304" args="(VstInt32 filter)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="struct_vst_time_info.html">VstTimeInfo</a> * AudioEffectX::getTimeInfo </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>filter</em> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Get time information from Host. +<p> +A plug-in will request time info by calling the function <a class="el" href="class_audio_effect_x.html#321316fdaf0c636a8db927eabe8b5304">getTimeInfo()</a> which returns a <em><a class="el" href="struct_vst_time_info.html">VstTimeInfo</a></em> pointer (or NULL if not implemented by the Host). The mask parameter is composed of the same flags which will be found in the flags field of <em><a class="el" href="struct_vst_time_info.html">VstTimeInfo</a></em> when returned, that is, if you need information about tempo. The parameter passed to <a class="el" href="class_audio_effect_x.html#321316fdaf0c636a8db927eabe8b5304">getTimeInfo()</a> should have the <em><a class="el" href="aeffectx_8h.html#102d343440fc30265e20dcebc9c67cf8bab12282417a2ab983aa2bd6aa2a7852">kVstTempoValid</a></em> flag set. This request and delivery system is important, as a request like this may cause significant calculations at the application's end, which may take a lot of our precious time. This obviously means you should only set those flags that are required to get the information you need. Also please be aware that requesting information does not necessarily mean that that information is provided in return. Check the <em>flags</em> field in the <em><a class="el" href="struct_vst_time_info.html">VstTimeInfo</a></em> structure to see if your request was actually met.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>filter</em> </td><td>A mask indicating which fields are requested, as some items may require extensive conversions. See the <em>flags</em> in <a class="el" href="struct_vst_time_info.html">VstTimeInfo</a> </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>A pointer to a <a class="el" href="struct_vst_time_info.html">VstTimeInfo</a> structure or NULL if not implemented by the Host </dd></dl> + +</div> +</div><p> +<a class="anchor" name="96e120428e511289a3b2dfd0c721450d"></a><!-- doxytag: member="AudioEffectX::getVendorString" ref="96e120428e511289a3b2dfd0c721450d" args="(char *text)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::getVendorString </td> + <td>(</td> + <td class="paramtype">char * </td> + <td class="paramname"> <em>text</em> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Fill <em>text</em> with a string identifying the vendor. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>text</em> </td><td>A string up to 64 chars </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd><em>true</em> on success </dd></dl> + +</div> +</div><p> +<a class="anchor" name="45965123ab6c7ee16bdc1687d8dca27c"></a><!-- doxytag: member="AudioEffectX::getVendorVersion" ref="45965123ab6c7ee16bdc1687d8dca27c" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffectX::getVendorVersion </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Return vendor-specific version. +<p> +<dl compact><dt><b>Returns:</b></dt><dd>The version of the plug-in</dd></dl> +<dl compact><dt><b>Note:</b></dt><dd>This should be upported </dd></dl> + +</div> +</div><p> +<a class="anchor" name="0ae9562f6f0f135a8b7f4528b4679e57"></a><!-- doxytag: member="AudioEffectX::getVstVersion" ref="0ae9562f6f0f135a8b7f4528b4679e57" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffectX::getVstVersion </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Returns the current VST Version (<a class="el" href="aeffect_8h.html#97ea12532fb47dcfd3141fa68d33741d">kVstVersion</a>). +<p> +<dl compact><dt><b>Returns:</b></dt><dd><ul> +<li>2xxx : the last VST 2.x plug-in version (by default)</li><li>0 : older versions </li></ul> +</dd></dl> + +</div> +</div><p> +<a class="anchor" name="e1d3c54dba6fd6c54c20d45973953e6c"></a><!-- doxytag: member="AudioEffectX::hasMidiProgramsChanged" ref="e1d3c54dba6fd6c54c20d45973953e6c" args="(VstInt32 channel)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::hasMidiProgramsChanged </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>channel</em> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Return true if the MidiProgramNames, MidiKeyNames or MidiControllerNames had changed on this MIDI channel. +<p> +Ask plug-in for the currently active program on a certain MIDI Channel. Just like <a class="el" href="class_audio_effect_x.html#84f28e3718ae9e49f119b297644cc74b">getMidiProgramName()</a>, but <a class="el" href="struct_midi_program_name.html#7c922126ca3156b5c77c83cc478e355a">MidiProgramName::thisProgramIndex</a> has to be filled out with the currently active MIDI Program-index, which also has to be returned.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>channel</em> </td><td></td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd><ul> +<li>true: if the MidiProgramNames, MidiKeyNames or MidiControllerNames had changed on this channel </li></ul> +</dd></dl> + +</div> +</div><p> +<a class="anchor" name="64a489eb3b8a4353a1f5956db05685d9"></a><!-- doxytag: member="AudioEffectX::hostVendorSpecific" ref="64a489eb3b8a4353a1f5956db05685d9" args="(VstInt32 lArg1, VstIntPtr lArg2, void *ptrArg, float floatArg)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#082b56d6065a49d35a4046fa2d4a3882">VstIntPtr</a> AudioEffectX::hostVendorSpecific </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>lArg1</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#082b56d6065a49d35a4046fa2d4a3882">VstIntPtr</a> </td> + <td class="paramname"> <em>lArg2</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void * </td> + <td class="paramname"> <em>ptrArg</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">float </td> + <td class="paramname"> <em>floatArg</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +No specific definition. +<p> + +</div> +</div><p> +<a class="anchor" name="fd1663ca60afd2f9b7288d10004cf575"></a><!-- doxytag: member="AudioEffectX::ioChanged" ref="fd1663ca60afd2f9b7288d10004cf575" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::ioChanged </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Tell Host numInputs and/or numOutputs and/or initialDelay (and/or numParameters: to be avoid) have changed. +<p> +The Host could call a <a class="el" href="class_audio_effect.html#a60d4dddc772c46cf20ee3552230e36a">suspend()</a> (if the plug-in was enabled (in <a class="el" href="class_audio_effect.html#83eca400d6a8cb044139c5c8e196505b">resume()</a> state)) and then ask for <a class="el" href="class_audio_effect_x.html#bdc7ed0ea2ae1c8c3fdb419d803309ff">getSpeakerArrangement()</a> and/or check the <em>numInputs</em> and <em>numOutputs</em> and <em>initialDelay</em> and then call a <a class="el" href="class_audio_effect.html#83eca400d6a8cb044139c5c8e196505b">resume()</a>.<p> +<dl compact><dt><b>Returns:</b></dt><dd><em>true</em> on success</dd></dl> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="class_audio_effect_x.html#eb17011a1b4cdef8e089353aa1449b90">setSpeakerArrangement()</a>, <a class="el" href="class_audio_effect_x.html#bdc7ed0ea2ae1c8c3fdb419d803309ff">getSpeakerArrangement()</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="37e43c4b41ea11e8d00b9252c14434cf"></a><!-- doxytag: member="AudioEffectX::isSynth" ref="37e43c4b41ea11e8d00b9252c14434cf" args="(bool state=true)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void AudioEffectX::isSynth </td> + <td>(</td> + <td class="paramtype">bool </td> + <td class="paramname"> <em>state</em> = <code>true</code> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Set if plug-in is a synth. +<p> +Tells the Host that the plug-in is an instrument, i.e. that it will call wantEvents().<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>state</em> </td><td><ul> +<li>true: is an instrument (default)</li><li>false: is a simple audio effect </li></ul> +</td></tr> + </table> +</dl> + +</div> +</div><p> +<a class="anchor" name="f9ac2b32fccea5a23b2baf6a420ac789"></a><!-- doxytag: member="AudioEffectX::matchArrangement" ref="f9ac2b32fccea5a23b2baf6a420ac789" args="(VstSpeakerArrangement **to, VstSpeakerArrangement *from)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::matchArrangement </td> + <td>(</td> + <td class="paramtype"><a class="el" href="struct_vst_speaker_arrangement.html">VstSpeakerArrangement</a> ** </td> + <td class="paramname"> <em>to</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="struct_vst_speaker_arrangement.html">VstSpeakerArrangement</a> * </td> + <td class="paramname"> <em>from</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +"to" is deleted, then created and initialized with the same values as "from" ones ("from" must exist). +<p> +<em>to</em> is deleted, then created and initialized with the same values as <em>from</em> (must exist!). It's notably useful when <a class="el" href="class_audio_effect_x.html#eb17011a1b4cdef8e089353aa1449b90">setSpeakerArrangement()</a> is called by the Host.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>to</em> </td><td></td></tr> + <tr><td valign="top"></td><td valign="top"><em>from</em> </td><td></td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>Returns <em>true</em> on success</dd></dl> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="class_audio_effect_x.html#3e1889b78003e183cee1794995ebb9ea">allocateArrangement()</a>, <a class="el" href="class_audio_effect_x.html#1adbe1d04b3405010451b66f13370171">deallocateArrangement()</a>, <a class="el" href="class_audio_effect_x.html#a552bd5967df06fc3702b1c25ce3f171">copySpeaker()</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="f683acda0f55fe277b8cbbbb479f6312"></a><!-- doxytag: member="AudioEffectX::noTail" ref="f683acda0f55fe277b8cbbbb479f6312" args="(bool state=true)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void AudioEffectX::noTail </td> + <td>(</td> + <td class="paramtype">bool </td> + <td class="paramname"> <em>state</em> = <code>true</code> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Plug-in won't produce output signals while there is no input. +<p> +Enables Host to omit <a class="el" href="class_audio_effect.html#dc6e2f1db03219622654a36aafd6b391">processReplacing()</a> when no data is present on any input. +</div> +</div><p> +<a class="anchor" name="12098af2a53a5fee5870cf77b462781e"></a><!-- doxytag: member="AudioEffectX::openFileSelector" ref="12098af2a53a5fee5870cf77b462781e" args="(VstFileSelect *ptr)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::openFileSelector </td> + <td>(</td> + <td class="paramtype"><a class="el" href="struct_vst_file_select.html">VstFileSelect</a> * </td> + <td class="paramname"> <em>ptr</em> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Open a Host File selector (see <a class="el" href="aeffectx_8h.html">aeffectx.h</a> for <a class="el" href="struct_vst_file_select.html">VstFileSelect</a> definition). +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>ptr</em> </td><td></td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>Returns <em>true</em> on success</dd></dl> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="class_audio_effect_x.html#d8db2b195d53ad2a9fa5258e465d2fea">closeFileSelector()</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="60e959f1cf640ce1c6794be928aa4327"></a><!-- doxytag: member="AudioEffectX::processEvents" ref="60e959f1cf640ce1c6794be928aa4327" args="(VstEvents *events)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffectX::processEvents </td> + <td>(</td> + <td class="paramtype"><a class="el" href="struct_vst_events.html">VstEvents</a> * </td> + <td class="paramname"> <em>events</em> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Called when new MIDI events come in. +<p> +<dl compact><dt><b>Returns:</b></dt><dd>return value is ignored</dd></dl> +<dl compact><dt><b>Remarks:</b></dt><dd>Events are always related to the current audio block. For each process cycle, <a class="el" href="class_audio_effect_x.html#60e959f1cf640ce1c6794be928aa4327">processEvents()</a> is called <b>once</b> before a <a class="el" href="class_audio_effect.html#dc6e2f1db03219622654a36aafd6b391">processReplacing()</a> call (if new events are available).</dd></dl> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="struct_vst_events.html">VstEvents</a>, <a class="el" href="struct_vst_midi_event.html">VstMidiEvent</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="d81449ad9aa53166a4bdd945f08be46e"></a><!-- doxytag: member="AudioEffectX::processVariableIo" ref="d81449ad9aa53166a4bdd945f08be46e" args="(VstVariableIo *varIo)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::processVariableIo </td> + <td>(</td> + <td class="paramtype"><a class="el" href="struct_vst_variable_io.html">VstVariableIo</a> * </td> + <td class="paramname"> <em>varIo</em> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Used for variable I/O processing (offline processing like timestreching). +<p> +If called with <em>varIo</em> NULL, returning <em>true</em> indicates that this call is supported by the plug-in. Host will use processReplacing otherwise. The Host should call setTotalSampleToProcess before starting the processIO to inform the plug-in about how many samples will be processed in total. The Host should provide an output buffer at least 5 times bigger than input buffer.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>varIo</em> </td><td></td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>on success </dd></dl> + +</div> +</div><p> +<a class="anchor" name="0b5d8c7546cbec387015a6a8fe7a0a98"></a><!-- doxytag: member="AudioEffectX::sendVstEventsToHost" ref="0b5d8c7546cbec387015a6a8fe7a0a98" args="(VstEvents *events)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::sendVstEventsToHost </td> + <td>(</td> + <td class="paramtype"><a class="el" href="struct_vst_events.html">VstEvents</a> * </td> + <td class="paramname"> <em>events</em> </td> + <td> ) </td> + <td width="100%"></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Send MIDI events back to Host application. +<p> +Can be called inside processReplacing.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>events</em> </td><td>Fill with VST events </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>Returns <em>true</em> on success </dd></dl> + +</div> +</div><p> +<a class="anchor" name="cb473dfc5f46b0f299f87b71b70ad0a1"></a><!-- doxytag: member="AudioEffectX::setBypass" ref="cb473dfc5f46b0f299f87b71b70ad0a1" args="(bool onOff)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::setBypass </td> + <td>(</td> + <td class="paramtype">bool </td> + <td class="paramname"> <em>onOff</em> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +For 'soft-bypass' (this could be automated (in Audio Thread) that why you could NOT call iochanged (if needed) in this function, do it in fxidle). +<p> +process still called (if Supported) although the plug-in was bypassed. Some plugs need to stay 'alive' even when bypassed. An example is a surround decoder which has more inputs than outputs and must maintain some reasonable signal distribution even when being bypassed. A CanDo 'bypass' allows to ask the plug-in if it supports soft bypass or not.<p> +<dl compact><dt><b>Note:</b></dt><dd>This bypass feature could be automated by the Host (this means avoid to much CPU requirement in this call) <p> +If the plug-in supports SoftBypass and it has a latency (initialDelay), in Bypassed state the plug-in has to used the same latency value.</dd></dl> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>onOff</em> </td><td></td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd><ul> +<li>true: supports SoftBypass, process will be called, the plug-in should compensate its latency, and copy inputs to outputs</li><li>false: doesn't support SoftBypass, process will not be called, the Host should bypass the process call</li></ul> +</dd></dl> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="class_audio_effect.html#dc6e2f1db03219622654a36aafd6b391">processReplacing()</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="6421148706f52493b4c218462c6c3669"></a><!-- doxytag: member="AudioEffectX::setPanLaw" ref="6421148706f52493b4c218462c6c3669" args="(VstInt32 type, float val)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::setPanLaw </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>type</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">float </td> + <td class="paramname"> <em>val</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Set the Panning Law used by the Host. +<p> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="aeffectx_8h.html#daf4956252cb9a4070230aa9c3f8a8af">VstPanLawType</a>. </dd></dl> + +</div> +</div><p> +<a class="anchor" name="3406179c9a48249a9fd9110757a85386"></a><!-- doxytag: member="AudioEffectX::setProcessPrecision" ref="3406179c9a48249a9fd9110757a85386" args="(VstInt32 precision)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::setProcessPrecision </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>precision</em> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Set floating-point precision used for processing (32 or 64 bit). +<p> +Is called in suspended state, similar to <a class="el" href="class_audio_effect.html#453b6bed70ffb16df43da9427e066a62">setBlockSize</a>. Default (if not called) is single precision float.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>precision</em> </td><td>kVstProcessPrecision32 or kVstProcessPrecision64 </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>Returns <em>true</em> on success </dd></dl> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="aeffectx_8h.html#f80890a23e919e9dec8a0a82df6bd33b">VstProcessPrecision</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="eb17011a1b4cdef8e089353aa1449b90"></a><!-- doxytag: member="AudioEffectX::setSpeakerArrangement" ref="eb17011a1b4cdef8e089353aa1449b90" args="(VstSpeakerArrangement *pluginInput, VstSpeakerArrangement *pluginOutput)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::setSpeakerArrangement </td> + <td>(</td> + <td class="paramtype"><a class="el" href="struct_vst_speaker_arrangement.html">VstSpeakerArrangement</a> * </td> + <td class="paramname"> <em>pluginInput</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="struct_vst_speaker_arrangement.html">VstSpeakerArrangement</a> * </td> + <td class="paramname"> <em>pluginOutput</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Set the plug-in's speaker arrangements. +<p> +Set the plug-in's speaker arrangements. If a (VST >= 2.3) plug-in returns <em>true</em>, it means that it accepts this IO arrangement. The Host doesn't need to ask for <a class="el" href="class_audio_effect_x.html#bdc7ed0ea2ae1c8c3fdb419d803309ff">getSpeakerArrangement()</a>. If the plug-in returns <em>false</em> it means that it doesn't accept this arrangement, the Host should then ask for <a class="el" href="class_audio_effect_x.html#bdc7ed0ea2ae1c8c3fdb419d803309ff">getSpeakerArrangement()</a> and then can (optional) recall <a class="el" href="class_audio_effect_x.html#eb17011a1b4cdef8e089353aa1449b90">setSpeakerArrangement()</a>.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>pluginInput</em> </td><td>A pointer to the input's <a class="el" href="struct_vst_speaker_arrangement.html">VstSpeakerArrangement</a> structure. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>pluginOutput</em> </td><td>A pointer to the output's <a class="el" href="struct_vst_speaker_arrangement.html">VstSpeakerArrangement</a> structure. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd><em>true</em> on success</dd></dl> +<dl compact><dt><b>Note:</b></dt><dd><a class="el" href="class_audio_effect_x.html#eb17011a1b4cdef8e089353aa1449b90">setSpeakerArrangement()</a> and <a class="el" href="class_audio_effect_x.html#bdc7ed0ea2ae1c8c3fdb419d803309ff">getSpeakerArrangement()</a> are always called in suspended state. (like <a class="el" href="class_audio_effect.html#23710f86624cbb60f97fba870448fdb0">setSampleRate()</a> or <a class="el" href="class_audio_effect.html#453b6bed70ffb16df43da9427e066a62">setBlockSize()</a>).</dd></dl> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="class_audio_effect_x.html#bdc7ed0ea2ae1c8c3fdb419d803309ff">getSpeakerArrangement()</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="275514ba421aa4b8f5f5c6c45cc241ef"></a><!-- doxytag: member="AudioEffectX::setTotalSampleToProcess" ref="275514ba421aa4b8f5f5c6c45cc241ef" args="(VstInt32 value)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffectX::setTotalSampleToProcess </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>value</em> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Called in offline mode before process() or processVariableIo (). +<p> +It indicates how many samples will be processed in total.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>Number of samples to process </td></tr> + </table> +</dl> + +</div> +</div><p> +<a class="anchor" name="33b48b4b937163e7eb0cdac51778dbd1"></a><!-- doxytag: member="AudioEffectX::sizeWindow" ref="33b48b4b937163e7eb0cdac51778dbd1" args="(VstInt32 width, VstInt32 height)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::sizeWindow </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>width</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>height</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Requests to resize the editor window. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>width</em> </td><td>The window's width in pixel </td></tr> + <tr><td valign="top"></td><td valign="top"><em>height</em> </td><td>The window's height in pixel </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd><em>true</em> on success </dd></dl> + +</div> +</div><p> +<a class="anchor" name="7ab6d207143f46d12b273c775f68973b"></a><!-- doxytag: member="AudioEffectX::startProcess" ref="7ab6d207143f46d12b273c775f68973b" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffectX::startProcess </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Called one time before the start of process call. This indicates that the process call will be interrupted (due to Host reconfiguration or bypass state when the plug-in doesn't support softBypass). +<p> + +</div> +</div><p> +<a class="anchor" name="347a6cf07747192e99f6bb1100a9f863"></a><!-- doxytag: member="AudioEffectX::stopProcess" ref="347a6cf07747192e99f6bb1100a9f863" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffectX::stopProcess </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Called after the stop of process call. +<p> + +</div> +</div><p> +<a class="anchor" name="b3bc700b36eb53f126a2d5de70337d62"></a><!-- doxytag: member="AudioEffectX::string2parameter" ref="b3bc700b36eb53f126a2d5de70337d62" args="(VstInt32 index, char *text)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::string2parameter </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>index</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">char * </td> + <td class="paramname"> <em>text</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Convert a string representation to a parameter value. +<p> +Especially useful for plug-ins without user interface. The application can then implement a text edit field for the user to set a parameter by entering text.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>index</em> </td><td>Index of the parameter </td></tr> + <tr><td valign="top"></td><td valign="top"><em>text</em> </td><td>A textual description of the parameter's value. A NULL pointer is used to check the capability (return true). </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd><em>true</em> on success</dd></dl> +<dl compact><dt><b>Note:</b></dt><dd>Implies setParameter (). text==0 is to be expected to check the capability (returns true) </dd></dl> + +</div> +</div><p> +<a class="anchor" name="2a57d5f42162dabf65d9695b6575e785"></a><!-- doxytag: member="AudioEffectX::updateBlockSize" ref="2a57d5f42162dabf65d9695b6575e785" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffectX::updateBlockSize </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Returns block size from Host (may issue <a class="el" href="class_audio_effect.html#2319993e3d01972418a3345aec285c77">getBlockSize()</a>). +<p> +<dl compact><dt><b>Returns:</b></dt><dd>The Host's block size</dd></dl> +<dl compact><dt><b>Note:</b></dt><dd>Will cause application to call AudioEffect's <a class="el" href="class_audio_effect.html#23710f86624cbb60f97fba870448fdb0">setSampleRate()</a> to be called (when implemented). </dd></dl> + +</div> +</div><p> +<a class="anchor" name="62c47e72d53185d259979cef66b96081"></a><!-- doxytag: member="AudioEffectX::updateDisplay" ref="62c47e72d53185d259979cef66b96081" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool AudioEffectX::updateDisplay </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Something has changed in plug-in, request an update display like program (MIDI too) and parameters list in Host. +<p> +<dl compact><dt><b>Returns:</b></dt><dd><em>true</em> if supported </dd></dl> + +</div> +</div><p> +<a class="anchor" name="65ea6583567e22cc5f2594e25a76bcdf"></a><!-- doxytag: member="AudioEffectX::updateSampleRate" ref="65ea6583567e22cc5f2594e25a76bcdf" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">double AudioEffectX::updateSampleRate </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Returns sample rate from Host (may issue <a class="el" href="class_audio_effect.html#23710f86624cbb60f97fba870448fdb0">setSampleRate()</a>). +<p> +<dl compact><dt><b>Returns:</b></dt><dd>The Host's sample rate </dd></dl> + +</div> +</div><p> +<a class="anchor" name="92b1c6115fe4e69e159e1a6ca8a92b96"></a><!-- doxytag: member="AudioEffectX::vendorSpecific" ref="92b1c6115fe4e69e159e1a6ca8a92b96" args="(VstInt32 lArg, VstIntPtr lArg2, void *ptrArg, float floatArg)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">virtual <a class="el" href="aeffect_8h.html#082b56d6065a49d35a4046fa2d4a3882">VstIntPtr</a> AudioEffectX::vendorSpecific </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>lArg</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#082b56d6065a49d35a4046fa2d4a3882">VstIntPtr</a> </td> + <td class="paramname"> <em>lArg2</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void * </td> + <td class="paramname"> <em>ptrArg</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">float </td> + <td class="paramname"> <em>floatArg</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +No definition, vendor specific handling. +<p> + +</div> +</div><p> +<hr>The documentation for this class was generated from the following files:<ul> +<li><a class="el" href="audioeffectx_8h.html">audioeffectx.h</a><li><a class="el" href="audioeffectx_8cpp.html">audioeffectx.cpp</a></ul> +<html> + +<head> + <title>Empty</title> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <meta name="Author" content="mario"> +</head> + +<body> + +<br/> +<hr width="100%" size="2" align="left" /> +<div align=left> +Copyright ©2006 <a href="http://www.steinberg.net" target="_blank"><u>Steinberg Media Technologies</u></a>. +All Rights Reserved. +</div> +</body> + +</html> |
