00001 //------------------------------------------------------------------------ 00002 // Project : VST SDK 00003 // Version : 3.0 00004 // 00005 // Category : Examples 00006 // Filename : againcontroller.h 00007 // Created by : Steinberg, 04/2005 00008 // Modified : $Date: 2008/01/15 15:00:26 $ 00009 // Description : AGain Editor Example for VST 3.0 00010 //----------------------------------------------------------------------------- 00011 // LICENSE 00012 // © 2008, Steinberg Media Technologies GmbH, All Rights Reserved 00013 //----------------------------------------------------------------------------- 00014 // This Software Development Kit may not be distributed in parts or its entirety 00015 // without prior written agreement by Steinberg Media Technologies GmbH. 00016 // This SDK must not be used to re-engineer or manipulate any technology used 00017 // in any Steinberg or Third-party application or software module, 00018 // unless permitted by law. 00019 // Neither the name of the Steinberg Media Technologies nor the names of its 00020 // contributors may be used to endorse or promote products derived from this 00021 // software without specific prior written permission. 00022 // 00023 // THIS SDK IS PROVIDED BY STEINBERG MEDIA TECHNOLOGIES GMBH "AS IS" AND 00024 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 00025 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 00026 // IN NO EVENT SHALL STEINBERG MEDIA TECHNOLOGIES GMBH BE LIABLE FOR ANY DIRECT, 00027 // INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 00028 // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 00029 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 00030 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 00031 // OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 00032 // OF THE POSSIBILITY OF SUCH DAMAGE. 00033 //----------------------------------------------------------------------------- 00034 00035 #ifndef __againcontroller__ 00036 #define __againcontroller__ 00037 00038 #include "public.sdk/source/vst/vsteditcontroller.h" 00039 00040 using namespace Steinberg::Vst; 00041 00042 class AGainEditorView; 00043 00044 //------------------------------------------------------------------------ 00045 // AGainController 00046 //------------------------------------------------------------------------ 00047 class AGainController: public EditController 00048 { 00049 public: 00050 //------------------------------------------------------------------------ 00051 // create function required for plugin factory, 00052 // it will be called to create new instances of this controller 00053 //------------------------------------------------------------------------ 00054 static FUnknown* createInstance (void* context) 00055 { 00056 return (IEditController*)new AGainController; 00057 } 00058 00059 //---from IPluginBase-------- 00060 tresult PLUGIN_API initialize (FUnknown* context); 00061 tresult PLUGIN_API terminate (); 00062 00063 //---from EditController----- 00064 tresult PLUGIN_API setComponentState (IBStream* state); 00065 IPlugView* PLUGIN_API createView (const char* name); 00066 tresult PLUGIN_API setState (IBStream* state); 00067 tresult PLUGIN_API getState (IBStream* state); 00068 tresult PLUGIN_API setParamNormalized (ParamID tag, ParamValue value); 00069 tresult PLUGIN_API getParamStringByValue (ParamID tag, ParamValue valueNormalized, String128 string); 00070 tresult PLUGIN_API getParamValueByString (ParamID tag, TChar* string, ParamValue& valueNormalized); 00071 00072 //---from ComponentBase----- 00073 tresult receiveText (const char* text); 00074 00075 //---Internal functions------- 00076 void addDependentView (AGainEditorView* view); 00077 void removeDependentView (AGainEditorView* view); 00078 00079 void setDefaultMessageText (String128 text); 00080 TChar* getDefaultMessageText (); 00081 //------------------------------------------------------------------------ 00082 00083 private: 00084 CArray viewsArray; 00085 String128 defaultMessageText; 00086 }; 00087 00088 #endif