|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- //------------------------------------------------------------------------
- // Project : VST SDK
- //
- // Category : Interfaces
- // Filename : pluginterfaces/vst/ivsthostapplication.h
- // Created by : Steinberg, 04/2006
- // Description : VST Host Interface
- //
- //-----------------------------------------------------------------------------
- // 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/ivstmessage.h"
-
- //------------------------------------------------------------------------
- namespace Steinberg {
- namespace Vst {
- //------------------------------------------------------------------------
- /** Basic Host Callback Interface.
- \ingroup vstIHost vst300
- - [host imp]
- - [passed as 'context' in to IPluginBase::initialize () ]
- - [released: 3.0.0]
- - [mandatory]
-
- Basic VST host application interface. */
- //------------------------------------------------------------------------
- class IHostApplication: public FUnknown
- {
- public:
- //------------------------------------------------------------------------
- /** Gets host application name. */
- virtual tresult PLUGIN_API getName (String128 name) = 0;
-
- /** Creates host object (e.g. Vst::IMessage). */
- virtual tresult PLUGIN_API createInstance (TUID cid, TUID _iid, void** obj) = 0;
-
- //------------------------------------------------------------------------
- static const FUID iid;
- };
-
- DECLARE_CLASS_IID (IHostApplication, 0x58E595CC, 0xDB2D4969, 0x8B6AAF8C, 0x36A664E5)
-
- //------------------------------------------------------------------------
- inline IMessage* allocateMessage (IHostApplication* host)
- {
- TUID iid;
- IMessage::iid.toTUID (iid);
- IMessage* m = 0;
- if (host->createInstance (iid, iid, (void**)&m) == kResultOk)
- return m;
- return 0;
- }
-
- //------------------------------------------------------------------------
- /** VST 3 to VST 2 Wrapper Interface.
- \ingroup vstIHost vst310
- - [host imp]
- - [passed as 'context' to IPluginBase::initialize () ]
- - [released: 3.1.0]
- - [mandatory]
-
- Informs the Plug-in that a VST 3 to VST 2 wrapper is used between the Plug-in and the real host.
- Implemented by the VST 2 Wrapper. */
- //------------------------------------------------------------------------
- class IVst3ToVst2Wrapper: public FUnknown
- {
- public:
- //------------------------------------------------------------------------
- static const FUID iid;
- };
-
- DECLARE_CLASS_IID (IVst3ToVst2Wrapper, 0x29633AEC, 0x1D1C47E2, 0xBB85B97B, 0xD36EAC61)
-
- //------------------------------------------------------------------------
- /** VST 3 to AU Wrapper Interface.
- \ingroup vstIHost vst310
- - [host imp]
- - [passed as 'context' to IPluginBase::initialize () ]
- - [released: 3.1.0]
- - [mandatory]
-
- Informs the Plug-in that a VST 3 to AU wrapper is used between the Plug-in and the real host.
- Implemented by the AU Wrapper. */
- //------------------------------------------------------------------------
- class IVst3ToAUWrapper: public FUnknown
- {
- public:
- //------------------------------------------------------------------------
- static const FUID iid;
- };
-
- DECLARE_CLASS_IID (IVst3ToAUWrapper, 0xA3B8C6C5, 0xC0954688, 0xB0916F0B, 0xB697AA44)
-
- //------------------------------------------------------------------------
- /** VST 3 to AAX Wrapper Interface.
- \ingroup vstIHost vst368
- - [host imp]
- - [passed as 'context' to IPluginBase::initialize () ]
- - [released: 3.6.8]
- - [mandatory]
-
- Informs the Plug-in that a VST 3 to AAX wrapper is used between the Plug-in and the real host.
- Implemented by the AAX Wrapper. */
- //------------------------------------------------------------------------
- class IVst3ToAAXWrapper : public FUnknown
- {
- public:
- //------------------------------------------------------------------------
- static const FUID iid;
- };
- DECLARE_CLASS_IID (IVst3ToAAXWrapper, 0x6D319DC6, 0x60C56242, 0xB32C951B, 0x93BEF4C6)
-
- //------------------------------------------------------------------------
- /** Wrapper MPE Support Interface
- \ingroup vstIHost vst3612
- - [host imp]
- - [passed as 'context' to IPluginBase::initialize () ]
- - [released: 3.6.12]
- - [optional]
-
- Implemented on wrappers that support MPE to Note Expression translation.
-
- Per default MPE input processing is enabled, the masterChannel will be zero, the memberBeginChannel
- will be one and the memberEndChannel will be 14.
-
- As MPE is a subset of the VST3 Note Expression feature, mapping from the three MPE expressions is
- handled via the INoteExpressionPhysicalUIMapping interface.
- */
- //------------------------------------------------------------------------
- class IVst3WrapperMPESupport : public FUnknown
- {
- public:
- //------------------------------------------------------------------------
- /** enable or disable MPE processing
- * @param state true to enable, false to disable MPE processing
- * @return kResultTrue on success */
- virtual tresult PLUGIN_API enableMPEInputProcessing (TBool state) = 0;
- /** setup the MPE processing
- * @param masterChannel MPE master channel (zero based)
- * @param memberBeginChannel MPE member begin channel (zero based)
- * @param memberEndChannel MPE member end channel (zero based)
- * @return kResultTrue on success */
- virtual tresult PLUGIN_API setMPEInputDeviceSettings (int32 masterChannel,
- int32 memberBeginChannel,
- int32 memberEndChannel) = 0;
-
- //------------------------------------------------------------------------
- static const FUID iid;
- };
-
- DECLARE_CLASS_IID (IVst3WrapperMPESupport, 0x44149067, 0x42CF4BF9, 0x8800B750, 0xF7359FE3)
-
- //------------------------------------------------------------------------
- } // namespace Vst
- } // namespace Steinberg
|