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.

98 lines
3.6KB

  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. #pragma once
  17. #include "pluginterfaces/vst/ivstattributes.h"
  18. //------------------------------------------------------------------------
  19. #include "pluginterfaces/base/falignpush.h"
  20. //------------------------------------------------------------------------
  21. //------------------------------------------------------------------------
  22. namespace Steinberg {
  23. namespace Vst {
  24. //------------------------------------------------------------------------
  25. /** Private plug-in message: Vst::IMessage
  26. \ingroup vstIHost vst300
  27. - [host imp]
  28. - [create via IHostApplication::createInstance]
  29. - [released: 3.0.0]
  30. - [mandatory]
  31. Messages are sent from a VST controller component to a VST editor component and vice versa.
  32. \see IAttributeList, IConnectionPoint, \ref vst3Communication
  33. */
  34. class IMessage : public FUnknown
  35. {
  36. public:
  37. //------------------------------------------------------------------------
  38. /** Returns the message ID (for example "TextMessage"). */
  39. virtual FIDString PLUGIN_API getMessageID () = 0;
  40. /** Sets a message ID (for example "TextMessage"). */
  41. virtual void PLUGIN_API setMessageID (FIDString id /*in*/) = 0;
  42. /** Returns the attribute list associated to the message. */
  43. virtual IAttributeList* PLUGIN_API getAttributes () = 0;
  44. //------------------------------------------------------------------------
  45. static const FUID iid;
  46. };
  47. DECLARE_CLASS_IID (IMessage, 0x936F033B, 0xC6C047DB, 0xBB0882F8, 0x13C1E613)
  48. //------------------------------------------------------------------------
  49. /** Connect a component with another one: Vst::IConnectionPoint
  50. \ingroup vstIPlug vst300
  51. - [plug imp]
  52. - [host imp]
  53. - [released: 3.0.0]
  54. - [mandatory]
  55. This interface is used for the communication of separate components.
  56. Note that some hosts will place a proxy object between the components so that they are not directly connected.
  57. \see \ref vst3Communication
  58. */
  59. class IConnectionPoint : public FUnknown
  60. {
  61. public:
  62. //------------------------------------------------------------------------
  63. /** Connects this instance with another connection point. */
  64. virtual tresult PLUGIN_API connect (IConnectionPoint* other) = 0;
  65. /** Disconnects a given connection point from this. */
  66. virtual tresult PLUGIN_API disconnect (IConnectionPoint* other) = 0;
  67. /** Called when a message has been sent from the connection point to this. */
  68. virtual tresult PLUGIN_API notify (IMessage* message) = 0;
  69. //------------------------------------------------------------------------
  70. static const FUID iid;
  71. };
  72. DECLARE_CLASS_IID (IConnectionPoint, 0x70A4156F, 0x6E6E4026, 0x989148BF, 0xAA60D8D1)
  73. //------------------------------------------------------------------------
  74. } // namespace Vst
  75. } // namespace Steinberg
  76. //------------------------------------------------------------------------
  77. #include "pluginterfaces/base/falignpop.h"
  78. //------------------------------------------------------------------------