65 lines
2.3 KiB
C
65 lines
2.3 KiB
C
|
//------------------------------------------------------------------------
|
||
|
// Project : VST SDK
|
||
|
//
|
||
|
// Category : Interfaces
|
||
|
// Filename : pluginterfaces/vst/ivstpluginterfacesupport.h
|
||
|
// Created by : Steinberg, 11/2018
|
||
|
// Description : VST 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/base/funknown.h"
|
||
|
#include "vsttypes.h"
|
||
|
|
||
|
//------------------------------------------------------------------------
|
||
|
namespace Steinberg {
|
||
|
namespace Vst {
|
||
|
//------------------------------------------------------------------------
|
||
|
/** Host callback interface for an edit controller.
|
||
|
\ingroup vstIHost vst3612
|
||
|
- [host imp]
|
||
|
- [released: 3.6.12]
|
||
|
- [optional]
|
||
|
|
||
|
Allow a Plug-in to ask the host if a given Plug-in interface is supported/used by the host.
|
||
|
It is implemented by the hostContext given when the component is initialized.
|
||
|
|
||
|
\code
|
||
|
tresult PLUGIN_API MyPluginController::initialize (FUnknown* context)
|
||
|
{
|
||
|
// ...
|
||
|
FUnknownPtr<IPlugInterfaceSupport> plugInterfaceSupport (context);
|
||
|
if (plugInterfaceSupport)
|
||
|
{
|
||
|
if (plugInterfaceSupport->isPlugInterfaceSupported (IMidiMapping::iid) == kResultTrue)
|
||
|
// IMidiMapping is used by the host
|
||
|
}
|
||
|
// ...
|
||
|
}
|
||
|
\endcode
|
||
|
\see IPluginBase */
|
||
|
//------------------------------------------------------------------------
|
||
|
class IPlugInterfaceSupport : public FUnknown
|
||
|
{
|
||
|
public:
|
||
|
/** Returns kResultTrue if the associated interface to the given _iid is supported/used by the host. */
|
||
|
virtual tresult PLUGIN_API isPlugInterfaceSupported (const TUID _iid) = 0;
|
||
|
|
||
|
//------------------------------------------------------------------------
|
||
|
static const FUID iid;
|
||
|
};
|
||
|
|
||
|
DECLARE_CLASS_IID (IPlugInterfaceSupport, 0x4FB58B9E, 0x9EAA4E0F, 0xAB361C1C, 0xCCB56FEA)
|
||
|
|
||
|
//------------------------------------------------------------------------
|
||
|
} // namespace Vst
|
||
|
} // namespace Steinberg
|