JUCE-7.0.12-0-g4f43011b96 JUCE-7.0.12-0-g4f43011b96
JUCE — C++ application framework with suport for VST, VST3, LV2 audio plug-ins

« « « Anklang Documentation
Loading...
Searching...
No Matches
ivstunits.h
Go to the documentation of this file.
1 //------------------------------------------------------------------------
2// Project : VST SDK
3//
4// Category : Interfaces
5// Filename : pluginterfaces/vst/ivstunits.h
6// Created by : Steinberg, 2005
7// Description : VST Units 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
17#pragma once
18
21
22//------------------------------------------------------------------------
24//------------------------------------------------------------------------
25
26//------------------------------------------------------------------------
27namespace Steinberg {
28class IBStream;
29//------------------------------------------------------------------------
30namespace Vst {
31//------------------------------------------------------------------------
33static const UnitID kRootUnitId = 0;
34static const UnitID kNoParentUnitId = -1;
35
36//------------------------------------------------------------------------
38static const ProgramListID kNoProgramListId = -1;
39
40//------------------------------------------------------------------------
51
52//------------------------------------------------------------------------
62
63//------------------------------------------------------------------------
65static const int32 kAllProgramInvalid = -1;
66
67//------------------------------------------------------------------------
80class IUnitHandler : public FUnknown
81{
82public:
83//------------------------------------------------------------------------
85 virtual tresult PLUGIN_API notifyUnitSelection (UnitID unitId) = 0;
86
90 virtual tresult PLUGIN_API notifyProgramListChange (ProgramListID listId, int32 programIndex) = 0;
91
92//------------------------------------------------------------------------
93 static const FUID iid;
94};
95
96DECLARE_CLASS_IID (IUnitHandler, 0x4B5147F8, 0x4654486B, 0x8DAB30BA, 0x163A3C56)
97
98//------------------------------------------------------------------------
116{
117public:
118 //------------------------------------------------------------------------
120 virtual tresult PLUGIN_API notifyUnitByBusChange () = 0;
121
122 //------------------------------------------------------------------------
123 static const FUID iid;
124};
125
126DECLARE_CLASS_IID (IUnitHandler2, 0xF89F8CDF, 0x699E4BA5, 0x96AAC9A4, 0x81452B01)
127
128//------------------------------------------------------------------------
144class IUnitInfo : public FUnknown
145{
146public:
147//------------------------------------------------------------------------
149 virtual int32 PLUGIN_API getUnitCount () = 0;
150
152 virtual tresult PLUGIN_API getUnitInfo (int32 unitIndex, UnitInfo& info /*out*/) = 0;
153
156 virtual int32 PLUGIN_API getProgramListCount () = 0;
157
159 virtual tresult PLUGIN_API getProgramListInfo (int32 listIndex, ProgramListInfo& info /*out*/) = 0;
160
162 virtual tresult PLUGIN_API getProgramName (ProgramListID listId, int32 programIndex, String128 name /*out*/) = 0;
163
165 virtual tresult PLUGIN_API getProgramInfo (ProgramListID listId, int32 programIndex,
166 CString attributeId /*in*/, String128 attributeValue /*out*/) = 0;
167
169 virtual tresult PLUGIN_API hasProgramPitchNames (ProgramListID listId, int32 programIndex) = 0;
170
173 virtual tresult PLUGIN_API getProgramPitchName (ProgramListID listId, int32 programIndex,
174 int16 midiPitch, String128 name /*out*/) = 0;
175
176 // units selection --------------------
178 virtual UnitID PLUGIN_API getSelectedUnit () = 0;
179
181 virtual tresult PLUGIN_API selectUnit (UnitID unitId) = 0;
182
185 virtual tresult PLUGIN_API getUnitByBus (MediaType type, BusDirection dir, int32 busIndex,
186 int32 channel, UnitID& unitId /*out*/) = 0;
187
193 virtual tresult PLUGIN_API setUnitProgramData (int32 listOrUnitId, int32 programIndex, IBStream* data) = 0;
194
195//------------------------------------------------------------------------
196 static const FUID iid;
197};
198
199DECLARE_CLASS_IID (IUnitInfo, 0x3D4BD6B5, 0x913A4FD2, 0xA886E768, 0xA5EB92C1)
200
201//------------------------------------------------------------------------
215{
216public:
217//------------------------------------------------------------------------
219 virtual tresult PLUGIN_API programDataSupported (ProgramListID listId) = 0;
220
222 virtual tresult PLUGIN_API getProgramData (ProgramListID listId, int32 programIndex, IBStream* data) = 0;
223
225 virtual tresult PLUGIN_API setProgramData (ProgramListID listId, int32 programIndex, IBStream* data) = 0;
226
227//------------------------------------------------------------------------
228 static const FUID iid;
229};
230
231DECLARE_CLASS_IID (IProgramListData, 0x8683B01F, 0x7B354F70, 0xA2651DEC, 0x353AF4FF)
232
233//------------------------------------------------------------------------
246class IUnitData : public FUnknown
247{
248public:
249//------------------------------------------------------------------------
251 virtual tresult PLUGIN_API unitDataSupported (UnitID unitID) = 0;
252
254 virtual tresult PLUGIN_API getUnitData (UnitID unitId, IBStream* data) = 0;
255
257 virtual tresult PLUGIN_API setUnitData (UnitID unitId, IBStream* data) = 0;
258
259//------------------------------------------------------------------------
260 static const FUID iid;
261};
262
263DECLARE_CLASS_IID (IUnitData, 0x6C389611, 0xD391455D, 0xB870B833, 0x94A0EFDD)
264
265//------------------------------------------------------------------------
266} // namespace Vst
267} // namespace Steinberg
268
269//------------------------------------------------------------------------
271//------------------------------------------------------------------------
Handling 16 Byte Globally Unique Identifiers.
Definition funknown.h:241
The basic interface of all interfaces.
Definition funknown.h:375
Base class for streams.
Definition ibstream.h:30
Component extension to access program list data: Vst::IProgramListData.
Definition ivstunits.h:215
virtual tresult PLUGIN_API getProgramData(ProgramListID listId, int32 programIndex, IBStream *data)=0
Gets for a given program list ID and program index the program Data.
virtual tresult PLUGIN_API setProgramData(ProgramListID listId, int32 programIndex, IBStream *data)=0
Sets for a given program list ID and program index a program Data.
virtual tresult PLUGIN_API programDataSupported(ProgramListID listId)=0
Returns kResultTrue if the given Program List ID supports Program Data.
Component extension to access unit data: Vst::IUnitData.
Definition ivstunits.h:247
virtual tresult PLUGIN_API getUnitData(UnitID unitId, IBStream *data)=0
Gets the preset data for the specified unit.
virtual tresult PLUGIN_API unitDataSupported(UnitID unitID)=0
Returns kResultTrue if the specified unit supports export and import of preset data.
virtual tresult PLUGIN_API setUnitData(UnitID unitId, IBStream *data)=0
Sets the preset data for the specified unit.
Host callback for extended unit support: Vst::IUnitHandler2.
Definition ivstunits.h:116
virtual tresult PLUGIN_API notifyUnitByBusChange()=0
Tell host that assignment Unit-Bus defined by IUnitInfo::getUnitByBus has changed.
Host callback for unit support: Vst::IUnitHandler.
Definition ivstunits.h:81
virtual tresult PLUGIN_API notifyUnitSelection(UnitID unitId)=0
Notify host when a module is selected in plug-in GUI.
virtual tresult PLUGIN_API notifyProgramListChange(ProgramListID listId, int32 programIndex)=0
Tell host that the plug-in controller changed a program list (rename, load, PitchName changes).
Edit controller extension to describe the plug-in structure: Vst::IUnitInfo.
Definition ivstunits.h:145
virtual tresult PLUGIN_API getProgramInfo(ProgramListID listId, int32 programIndex, CString attributeId, String128 attributeValue)=0
Gets for a given program list ID, program index and attributeId the associated attribute value.
virtual tresult PLUGIN_API getUnitByBus(MediaType type, BusDirection dir, int32 busIndex, int32 channel, UnitID &unitId)=0
Gets the according unit if there is an unambiguous relation between a channel or a bus and a unit.
virtual int32 PLUGIN_API getUnitCount()=0
Returns the flat count of units.
virtual tresult PLUGIN_API getProgramListInfo(int32 listIndex, ProgramListInfo &info)=0
Gets for a given index the Program List Info.
virtual tresult PLUGIN_API getUnitInfo(int32 unitIndex, UnitInfo &info)=0
Gets UnitInfo for a given index in the flat list of unit.
virtual UnitID PLUGIN_API getSelectedUnit()=0
Gets the current selected unit.
virtual tresult PLUGIN_API setUnitProgramData(int32 listOrUnitId, int32 programIndex, IBStream *data)=0
Receives a preset data stream.
virtual tresult PLUGIN_API selectUnit(UnitID unitId)=0
Sets a new selected unit.
virtual int32 PLUGIN_API getProgramListCount()=0
Component intern program structure.
virtual tresult PLUGIN_API getProgramPitchName(ProgramListID listId, int32 programIndex, int16 midiPitch, String128 name)=0
Gets the PitchName for a given program list ID, program index and pitch.
virtual tresult PLUGIN_API getProgramName(ProgramListID listId, int32 programIndex, String128 name)=0
Gets for a given program list ID and program index its program name.
virtual tresult PLUGIN_API hasProgramPitchNames(ProgramListID listId, int32 programIndex)=0
Returns kResultTrue if the given program index of a given program list ID supports PitchNames.
ProgramListID programListId
id of program list used in unit (kNoProgramListId = no programs used in this unit)
Definition ivstunits.h:49
String128 name
name of program list
Definition ivstunits.h:59
TChar String128[128]
128 character UTF-16 string
Definition vsttypes.h:69
UnitID parentUnitId
identifier of parent unit (kNoParentUnitId: does not apply, this unit is the root)
Definition ivstunits.h:47
int32 programCount
number of programs in this list
Definition ivstunits.h:60
String128 name
name, optional for the root component, required otherwise
Definition ivstunits.h:48
UnitID id
unit identifier
Definition ivstunits.h:46
int32 ProgramListID
program list identifier
Definition vsttypes.h:82
int32 BusDirection
bus direction (in/out)
Definition vsttypes.h:76
int32 UnitID
unit identifier
Definition vsttypes.h:79
const char8 * CString
C-String.
Definition vsttypes.h:70
int32 MediaType
media type (audio/event)
Definition vsttypes.h:75
ProgramListID id
program list identifier
Definition ivstunits.h:58
Basic Program List Description.
Definition ivstunits.h:57
Basic Unit Description.
Definition ivstunits.h:45