Audio plugin host https://kx.studio/carla
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ivstpluginterfacesupport.h 2.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. //------------------------------------------------------------------------
  2. // Project : VST SDK
  3. //
  4. // Category : Interfaces
  5. // Filename : pluginterfaces/vst/ivstpluginterfacesupport.h
  6. // Created by : Steinberg, 11/2018
  7. // Description : VST 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. #pragma once
  17. #include "pluginterfaces/base/funknown.h"
  18. #include "pluginterfaces/vst/vsttypes.h"
  19. //------------------------------------------------------------------------
  20. namespace Steinberg {
  21. namespace Vst {
  22. //------------------------------------------------------------------------
  23. /** Host callback interface for an edit controller: Vst::IPlugInterfaceSupport
  24. \ingroup vstIHost vst3612
  25. - [host imp]
  26. - [released: 3.6.12]
  27. - [optional]
  28. Allows a plug-in to ask the host if a given plug-in interface is supported/used by the host.
  29. It is implemented by the hostContext given when the component is initialized.
  30. \section IPlugInterfaceSupportExample Example
  31. \code{.cpp}
  32. //------------------------------------------------------------------------
  33. tresult PLUGIN_API MyPluginController::initialize (FUnknown* context)
  34. {
  35. // ...
  36. FUnknownPtr<IPlugInterfaceSupport> plugInterfaceSupport (context);
  37. if (plugInterfaceSupport)
  38. {
  39. if (plugInterfaceSupport->isPlugInterfaceSupported (IMidiMapping::iid) == kResultTrue)
  40. // IMidiMapping is used by the host
  41. }
  42. // ...
  43. }
  44. \endcode
  45. \see IPluginBase
  46. */
  47. class IPlugInterfaceSupport : public FUnknown
  48. {
  49. public:
  50. /** Returns kResultTrue if the associated interface to the given _iid is supported/used by the host. */
  51. virtual tresult PLUGIN_API isPlugInterfaceSupported (const TUID _iid) = 0;
  52. //------------------------------------------------------------------------
  53. static const FUID iid;
  54. };
  55. DECLARE_CLASS_IID (IPlugInterfaceSupport, 0x4FB58B9E, 0x9EAA4E0F, 0xAB361C1C, 0xCCB56FEA)
  56. //------------------------------------------------------------------------
  57. } // namespace Vst
  58. } // namespace Steinberg