1 //------------------------------------------------------------------------ 2 // Project : VST SDK 3 // 4 // Category : Interfaces 5 // Filename : pluginterfaces/vst/ivstmessage.h 6 // Created by : Steinberg, 04/2005 7 // Description : VST Message Interfaces 8 // 9 //----------------------------------------------------------------------------- 10 // This file is part of a Steinberg SDK. It is subject to the license terms 11 // in the LICENSE file found in the top-level directory of this distribution 12 // and at www.steinberg.net/sdklicenses. 13 // No part of the SDK, including this file, may be copied, modified, propagated, 14 // or distributed except according to the terms contained in the LICENSE file. 15 //----------------------------------------------------------------------------- 16 17 #pragma once 18 19 #include "pluginterfaces/vst/ivstattributes.h" 20 21 //------------------------------------------------------------------------ 22 #include "pluginterfaces/base/falignpush.h" 23 //------------------------------------------------------------------------ 24 25 //------------------------------------------------------------------------ 26 namespace Steinberg { 27 namespace Vst { 28 29 //------------------------------------------------------------------------ 30 /** Private plug-in message: Vst::IMessage 31 \ingroup vstIHost vst300 32 - [host imp] 33 - [create via IHostApplication::createInstance] 34 - [released: 3.0.0] 35 - [mandatory] 36 37 Messages are sent from a VST controller component to a VST editor component and vice versa. 38 \see IAttributeList, IConnectionPoint, \ref vst3Communication 39 */ 40 class IMessage : public FUnknown 41 { 42 public: 43 //------------------------------------------------------------------------ 44 /** Returns the message ID (for example "TextMessage"). */ 45 virtual FIDString PLUGIN_API getMessageID () = 0; 46 47 /** Sets a message ID (for example "TextMessage"). */ 48 virtual void PLUGIN_API setMessageID (FIDString id /*in*/) = 0; 49 50 /** Returns the attribute list associated to the message. */ 51 virtual IAttributeList* PLUGIN_API getAttributes () = 0; 52 53 //------------------------------------------------------------------------ 54 static const FUID iid; 55 }; 56 57 DECLARE_CLASS_IID (IMessage, 0x936F033B, 0xC6C047DB, 0xBB0882F8, 0x13C1E613) 58 59 //------------------------------------------------------------------------ 60 /** Connect a component with another one: Vst::IConnectionPoint 61 \ingroup vstIPlug vst300 62 - [plug imp] 63 - [host imp] 64 - [released: 3.0.0] 65 - [mandatory] 66 67 This interface is used for the communication of separate components. 68 Note that some hosts will place a proxy object between the components so that they are not directly connected. 69 70 \see \ref vst3Communication 71 */ 72 class IConnectionPoint : public FUnknown 73 { 74 public: 75 //------------------------------------------------------------------------ 76 /** Connects this instance with another connection point. */ 77 virtual tresult PLUGIN_API connect (IConnectionPoint* other) = 0; 78 79 /** Disconnects a given connection point from this. */ 80 virtual tresult PLUGIN_API disconnect (IConnectionPoint* other) = 0; 81 82 /** Called when a message has been sent from the connection point to this. */ 83 virtual tresult PLUGIN_API notify (IMessage* message) = 0; 84 85 //------------------------------------------------------------------------ 86 static const FUID iid; 87 }; 88 89 DECLARE_CLASS_IID (IConnectionPoint, 0x70A4156F, 0x6E6E4026, 0x989148BF, 0xAA60D8D1) 90 91 //------------------------------------------------------------------------ 92 } // namespace Vst 93 } // namespace Steinberg 94 95 //------------------------------------------------------------------------ 96 #include "pluginterfaces/base/falignpop.h" 97 //------------------------------------------------------------------------ 98