ardour/libs/vst3/pluginterfaces/vst/ivstpluginterfacesupport.h

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