ivstattributes.h

Go to the documentation of this file.
00001 //------------------------------------------------------------------------
00002 // Project     : VST SDK
00003 // Version     : 3.0
00004 //
00005 // Category    : Interfaces
00006 // Filename    : ivstattributes.h
00007 // Created by  : Steinberg, 05/2006
00008 // Modified    : $Date: 2008/01/09 12:51:44 $
00009 // Description : VST Attribute Interfaces
00010 //
00011 //-----------------------------------------------------------------------------
00012 // LICENSE
00013 // © 2008, Steinberg Media Technologies GmbH, All Rights Reserved
00014 //-----------------------------------------------------------------------------
00015 // This Software Development Kit may not be distributed in parts or its entirety  
00016 // without prior written agreement by Steinberg Media Technologies GmbH. 
00017 // This SDK must not be used to re-engineer or manipulate any technology used  
00018 // in any Steinberg or Third-party application or software module, 
00019 // unless permitted by law.
00020 // Neither the name of the Steinberg Media Technologies nor the names of its
00021 // contributors may be used to endorse or promote products derived from this 
00022 // software without specific prior written permission.
00023 // 
00024 // THIS SDK IS PROVIDED BY STEINBERG MEDIA TECHNOLOGIES GMBH "AS IS" AND
00025 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
00026 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
00027 // IN NO EVENT SHALL STEINBERG MEDIA TECHNOLOGIES GMBH BE LIABLE FOR ANY DIRECT, 
00028 // INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
00029 // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 
00030 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 
00031 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 
00032 // OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
00033 // OF THE POSSIBILITY OF SUCH DAMAGE.
00034 //----------------------------------------------------------------------------------
00035 
00036 #ifndef __ivstattributes__
00037 #define __ivstattributes__
00038 
00039 #include "pluginterfaces/base/funknown.h"
00040 #include "pluginterfaces/vst/vsttypes.h"
00041 
00042 //------------------------------------------------------------------------
00043 #include "pluginterfaces/base/falignpush.h"
00044 //------------------------------------------------------------------------
00045 
00046 //------------------------------------------------------------------------
00047 namespace Steinberg {
00048 namespace Vst {
00049 
00050 //------------------------------------------------------------------------
00051 // IAttributeList Interface
00052 //------------------------------------------------------------------------
00057 class IAttributeList: public FUnknown
00058 {
00059 public:
00060 //------------------------------------------------------------------------
00061         typedef const char* AttrID;
00062 
00064         virtual tresult PLUGIN_API setInt (AttrID id, int64 value) = 0;
00065         
00067         virtual tresult PLUGIN_API getInt (AttrID id, int64& value) = 0;
00068         
00070         virtual tresult PLUGIN_API setFloat (AttrID id, double value) = 0;
00071         
00073         virtual tresult PLUGIN_API getFloat (AttrID id, double& value) = 0;
00074         
00076         virtual tresult PLUGIN_API setString (AttrID id, const TChar* string) = 0;
00077         
00079         virtual tresult PLUGIN_API getString (AttrID id, TChar* string, uint32 size) = 0;
00080         
00082         virtual tresult PLUGIN_API setBinary (AttrID id, const void* data, uint32 size) = 0;
00083         
00085         virtual tresult PLUGIN_API getBinary (AttrID id, const void*& data, uint32& size) = 0;
00086 //------------------------------------------------------------------------
00087         static const FUID iid;
00088 };
00089 
00090 DECLARE_CLASS_IID (IAttributeList, 0x1E5F0AEB, 0xCC7F4533, 0xA2544011, 0x38AD5EE4)
00091 
00092 
00093 //------------------------------------------------------------------------
00094 // IStreamAttributes Interface
00095 //------------------------------------------------------------------------
00101 class IStreamAttributes: public FUnknown
00102 {
00103 public:
00104 //------------------------------------------------------------------------
00106         virtual tresult PLUGIN_API getFileName (String128 name) = 0;
00107         
00109         virtual IAttributeList* PLUGIN_API getAttributes () = 0;
00110 //------------------------------------------------------------------------
00111         static const FUID iid;
00112 };
00113 
00114 DECLARE_CLASS_IID (IStreamAttributes, 0xD6CE2FFC, 0xEFAF4B8C, 0x9E74F1BB, 0x12DA44B4)
00115 
00116 //------------------------------------------------------------------------
00117 } // namespace Vst
00118 } // namespace Steinberg
00119 
00120 //------------------------------------------------------------------------
00121 #include "pluginterfaces/base/falignpop.h"
00122 //------------------------------------------------------------------------
00123 
00124 #endif // __ivstattributes__
Empty

Copyright ©2008 Steinberg Media Technologies. All Rights Reserved.