Cleanup
[carla.git] / source / includes / vst3sdk / pluginterfaces / vst / ivstinterappaudio.h
blobadd78bab42f16ecd4284a2b38f1b576fd4f6df2b
1 //------------------------------------------------------------------------
2 // Project : VST SDK
3 //
4 // Category : Interfaces
5 // Filename : pluginterfaces/vst/ivstinterappaudio.h
6 // Created by : Steinberg, 08/2013
7 // Description : VST InterAppAudio 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 //-----------------------------------------------------------------------------
17 #pragma once
19 #include "pluginterfaces/base/funknown.h"
21 //------------------------------------------------------------------------
22 namespace Steinberg {
23 struct ViewRect;
24 namespace Vst {
25 struct Event;
26 class IInterAppAudioPresetManager;
28 //------------------------------------------------------------------------
29 /** Inter-App Audio host Interface.
30 \ingroup vstIHost vst360
31 - [host imp]
32 - [passed as 'context' to IPluginBase::initialize () ]
33 - [released: 3.6.0]
34 - [optional]
36 Implemented by the InterAppAudio Wrapper.
38 class IInterAppAudioHost : public FUnknown
40 public:
41 /** get the size of the screen
42 * @param size size of the screen
43 * @param scale scale of the screen
44 * @return kResultTrue on success
46 virtual tresult PLUGIN_API getScreenSize (ViewRect* size, float* scale) = 0;
48 /** get status of connection
49 * @return kResultTrue if an Inter-App Audio connection is established
51 virtual tresult PLUGIN_API connectedToHost () = 0;
53 /** switch to the host.
54 * @return kResultTrue on success
56 virtual tresult PLUGIN_API switchToHost () = 0;
58 /** send a remote control event to the host
59 * @param event event type, see AudioUnitRemoteControlEvent in the iOS SDK documentation for possible types
60 * @return kResultTrue on success
62 virtual tresult PLUGIN_API sendRemoteControlEvent (uint32 event) = 0;
64 /** ask for the host icon.
65 * @param icon pointer to a CGImageRef
66 * @return kResultTrue on success
68 virtual tresult PLUGIN_API getHostIcon (void** icon) = 0;
70 /** schedule an event from the user interface thread
71 * @param event the event to schedule
72 * @return kResultTrue on success
74 virtual tresult PLUGIN_API scheduleEventFromUI (Event& event) = 0;
76 /** get the preset manager
77 * @param cid class ID to use by the preset manager
78 * @return the preset manager. Needs to be released by called.
80 virtual IInterAppAudioPresetManager* PLUGIN_API createPresetManager (const TUID& cid) = 0;
82 /** show the settings view
83 * currently includes MIDI settings and Tempo setting
84 * @return kResultTrue on success
86 virtual tresult PLUGIN_API showSettingsView () = 0;
88 //------------------------------------------------------------------------
89 static const FUID iid;
92 DECLARE_CLASS_IID (IInterAppAudioHost, 0x0CE5743D, 0x68DF415E, 0xAE285BD4, 0xE2CDC8FD)
94 //------------------------------------------------------------------------
95 /** Extended plug-in interface IEditController for Inter-App Audio connection state change notifications
96 \ingroup vstIPlug vst360
97 - [plug imp]
98 - [extends IEditController]
99 - [released: 3.6.0]
101 class IInterAppAudioConnectionNotification : public FUnknown
103 public:
104 /** called when the Inter-App Audio connection state changes
105 * @param newState true if an Inter-App Audio connection is established, otherwise false
107 virtual void PLUGIN_API onInterAppAudioConnectionStateChange (TBool newState) = 0;
109 //------------------------------------------------------------------------
110 static const FUID iid;
113 DECLARE_CLASS_IID (IInterAppAudioConnectionNotification, 0x6020C72D, 0x5FC24AA1, 0xB0950DB5, 0xD7D6D5CF)
115 //------------------------------------------------------------------------
116 /** Extended plug-in interface IEditController for Inter-App Audio Preset Management
117 \ingroup vstIPlug vst360
118 - [plug imp]
119 - [extends IEditController]
120 - [released: 3.6.0]
122 class IInterAppAudioPresetManager : public FUnknown
124 public:
125 /** Open the Preset Browser in order to load a preset */
126 virtual tresult PLUGIN_API runLoadPresetBrowser () = 0;
127 /** Open the Preset Browser in order to save a preset */
128 virtual tresult PLUGIN_API runSavePresetBrowser () = 0;
129 /** Load the next available preset */
130 virtual tresult PLUGIN_API loadNextPreset () = 0;
131 /** Load the previous available preset */
132 virtual tresult PLUGIN_API loadPreviousPreset () = 0;
134 //------------------------------------------------------------------------
135 static const FUID iid;
138 DECLARE_CLASS_IID (IInterAppAudioPresetManager, 0xADE6FCC4, 0x46C94E1D, 0xB3B49A80, 0xC93FEFDD)
140 //------------------------------------------------------------------------
141 } // namespace Vst
142 } // namespace Steinberg