|
- //------------------------------------------------------------------------
- // Project : VST SDK
- //
- // Category : Interfaces
- // Filename : pluginterfaces/vst/ivstinterappaudio.h
- // Created by : Steinberg, 08/2013
- // Description : VST InterAppAudio 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"
-
- //------------------------------------------------------------------------
- namespace Steinberg {
- struct ViewRect;
- namespace Vst {
- struct Event;
- class IInterAppAudioPresetManager;
-
- //------------------------------------------------------------------------
- /** Inter-App Audio host Interface.
- \ingroup vstIHost vst360
- - [host imp]
- - [passed as 'context' to IPluginBase::initialize () ]
- - [released: 3.6.0]
- - [optional]
-
- Implemented by the InterAppAudio Wrapper. */
- //------------------------------------------------------------------------
- class IInterAppAudioHost: public FUnknown
- {
- public:
- /** get the size of the screen
- * @param size size of the screen
- * @param scale scale of the screen
- * @return kResultTrue on success
- */
- virtual tresult PLUGIN_API getScreenSize (ViewRect* size, float* scale) = 0;
-
- /** get status of connection
- * @return kResultTrue if an Inter-App Audio connection is established
- */
- virtual tresult PLUGIN_API connectedToHost () = 0;
-
- /** switch to the host.
- * @return kResultTrue on success
- */
- virtual tresult PLUGIN_API switchToHost () = 0;
-
- /** send a remote control event to the host
- * @param event event type, see AudioUnitRemoteControlEvent in the iOS SDK documentation for possible types
- * @return kResultTrue on success
- */
- virtual tresult PLUGIN_API sendRemoteControlEvent (uint32 event) = 0;
-
- /** ask for the host icon.
- * @param icon pointer to a CGImageRef
- * @return kResultTrue on success
- */
- virtual tresult PLUGIN_API getHostIcon (void** icon) = 0;
-
- /** schedule an event from the user interface thread
- * @param event the event to schedule
- * @return kResultTrue on success
- */
- virtual tresult PLUGIN_API scheduleEventFromUI (Event& event) = 0;
-
- /** get the preset manager
- * @param cid class ID to use by the preset manager
- * @return the preset manager. Needs to be released by called.
- */
- virtual IInterAppAudioPresetManager* PLUGIN_API createPresetManager (const TUID& cid) = 0;
-
- /** show the settings view
- * currently includes MIDI settings and Tempo setting
- * @return kResultTrue on success
- */
- virtual tresult PLUGIN_API showSettingsView () = 0;
-
- //------------------------------------------------------------------------
- static const FUID iid;
- };
-
- DECLARE_CLASS_IID (IInterAppAudioHost, 0x0CE5743D, 0x68DF415E, 0xAE285BD4, 0xE2CDC8FD)
-
- //------------------------------------------------------------------------
- /** Extended Plug-in interface IEditController for Inter-App Audio connection state change notifications
- \ingroup vstIPlug vst360
- - [plug imp]
- - [extends IEditController]
- - [released: 3.6.0]
- */
- //------------------------------------------------------------------------
- class IInterAppAudioConnectionNotification : public FUnknown
- {
- public:
- /** called when the Inter-App Audio connection state changes
- * @param newState true if an Inter-App Audio connection is established, otherwise false
- */
- virtual void PLUGIN_API onInterAppAudioConnectionStateChange (TBool newState) = 0;
-
- //------------------------------------------------------------------------
- static const FUID iid;
- };
-
- DECLARE_CLASS_IID (IInterAppAudioConnectionNotification, 0x6020C72D, 0x5FC24AA1, 0xB0950DB5, 0xD7D6D5CF)
-
- //------------------------------------------------------------------------
- /** Extended Plug-in interface IEditController for Inter-App Audio Preset Management
- \ingroup vstIPlug vst360
- - [plug imp]
- - [extends IEditController]
- - [released: 3.6.0]
- */
- //------------------------------------------------------------------------
- class IInterAppAudioPresetManager : public FUnknown
- {
- public:
- /** TODO */
- virtual tresult PLUGIN_API runLoadPresetBrowser () = 0;
- /** TODO */
- virtual tresult PLUGIN_API runSavePresetBrowser () = 0;
- /** TODO */
- virtual tresult PLUGIN_API loadNextPreset () = 0;
- /** TODO */
- virtual tresult PLUGIN_API loadPreviousPreset () = 0;
-
- //------------------------------------------------------------------------
- static const FUID iid;
- };
-
- DECLARE_CLASS_IID (IInterAppAudioPresetManager, 0xADE6FCC4, 0x46C94E1D, 0xB3B49A80, 0xC93FEFDD)
-
- //------------------------------------------------------------------------
- } // namespace Vst
- } // namespace Steinberg
|