13
0
livetrax/libs/vst3/pluginterfaces/vst/ivstmessage.h

97 lines
3.7 KiB
C
Raw Normal View History

2019-09-03 09:45:25 -04:00
//------------------------------------------------------------------------
// Project : VST SDK
//
// Category : Interfaces
// Filename : pluginterfaces/vst/ivstmessage.h
// Created by : Steinberg, 04/2005
// Description : VST Message Interfaces
//
//-----------------------------------------------------------------------------
// This file is part of a Steinberg SDK. It is subject to the license terms
// in the LICENSE file found in the top-level directory of this distribution
// and at www.steinberg.net/sdklicenses.
// No part of the SDK, including this file, may be copied, modified, propagated,
// or distributed except according to the terms contained in the LICENSE file.
//-----------------------------------------------------------------------------
#pragma once
#include "pluginterfaces/vst/ivstattributes.h"
//------------------------------------------------------------------------
#include "pluginterfaces/base/falignpush.h"
//------------------------------------------------------------------------
//------------------------------------------------------------------------
namespace Steinberg {
namespace Vst {
//------------------------------------------------------------------------
/** Private Plug-in message.
\ingroup vstIHost vst300
- [host imp]
- [create via IHostApplication::createInstance]
- [released: 3.0.0]
- [mandatory]
Messages are sent from a VST-controller component to a VST-editor component and vice versa.
\see IAttributeList, IConnectionPoint, \ref vst3Communication */
//------------------------------------------------------------------------
class IMessage: public FUnknown
{
public:
//------------------------------------------------------------------------
/** Returns the message ID (for example "TextMessage"). */
virtual FIDString PLUGIN_API getMessageID () = 0;
/** Sets a message ID (for example "TextMessage"). */
virtual void PLUGIN_API setMessageID (FIDString id /*in*/) = 0;
/** Returns the attribute list associated to the message. */
virtual IAttributeList* PLUGIN_API getAttributes () = 0;
//------------------------------------------------------------------------
static const FUID iid;
};
DECLARE_CLASS_IID (IMessage, 0x936F033B, 0xC6C047DB, 0xBB0882F8, 0x13C1E613)
//------------------------------------------------------------------------
/** Connect a component with another one.
\ingroup vstIPlug vst300
- [plug imp]
- [host imp]
- [released: 3.0.0]
- [mandatory]
This interface is used for the communication of separate components.
Note that some hosts will place a proxy object between the components so that they are not directly connected.
\see \ref vst3Communication*/
//------------------------------------------------------------------------
class IConnectionPoint: public FUnknown
{
public:
//------------------------------------------------------------------------
/** Connects this instance with another connection point. */
virtual tresult PLUGIN_API connect (IConnectionPoint* other) = 0;
/** Disconnects a given connection point from this. */
virtual tresult PLUGIN_API disconnect (IConnectionPoint* other) = 0;
/** Called when a message has been sent from the connection point to this. */
virtual tresult PLUGIN_API notify (IMessage* message) = 0;
//------------------------------------------------------------------------
static const FUID iid;
};
DECLARE_CLASS_IID (IConnectionPoint, 0x70A4156F, 0x6E6E4026, 0x989148BF, 0xAA60D8D1)
//------------------------------------------------------------------------
} // namespace Vst
} // namespace Steinberg
//------------------------------------------------------------------------
#include "pluginterfaces/base/falignpop.h"
//------------------------------------------------------------------------