LMMS
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//------------------------------------------------------------------------
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//------------------------------------------------------------------------
CAdPlugDatabase::CRecord::RecordType type
Definition adplugdb.cpp:93
Definition funknown.h:233
Definition funknown.h:361
Definition ibstream.h:30
Definition ivstunits.h:215
virtual tresult PLUGIN_API getProgramData(ProgramListID listId, int32 programIndex, IBStream *data)=0
static const FUID iid
Definition ivstunits.h:228
virtual tresult PLUGIN_API setProgramData(ProgramListID listId, int32 programIndex, IBStream *data)=0
virtual tresult PLUGIN_API programDataSupported(ProgramListID listId)=0
Definition ivstunits.h:247
virtual tresult PLUGIN_API getUnitData(UnitID unitId, IBStream *data)=0
virtual tresult PLUGIN_API unitDataSupported(UnitID unitID)=0
static const FUID iid
Definition ivstunits.h:260
virtual tresult PLUGIN_API setUnitData(UnitID unitId, IBStream *data)=0
Definition ivstunits.h:116
static const FUID iid
Definition ivstunits.h:123
virtual tresult PLUGIN_API notifyUnitByBusChange()=0
Definition ivstunits.h:81
virtual tresult PLUGIN_API notifyUnitSelection(UnitID unitId)=0
static const FUID iid
Definition ivstunits.h:93
virtual tresult PLUGIN_API notifyProgramListChange(ProgramListID listId, int32 programIndex)=0
Definition ivstunits.h:145
virtual tresult PLUGIN_API getProgramInfo(ProgramListID listId, int32 programIndex, CString attributeId, String128 attributeValue)=0
virtual tresult PLUGIN_API getUnitByBus(MediaType type, BusDirection dir, int32 busIndex, int32 channel, UnitID &unitId)=0
virtual int32 PLUGIN_API getUnitCount()=0
virtual tresult PLUGIN_API getProgramListInfo(int32 listIndex, ProgramListInfo &info)=0
virtual tresult PLUGIN_API getUnitInfo(int32 unitIndex, UnitInfo &info)=0
static const FUID iid
Definition ivstunits.h:196
virtual UnitID PLUGIN_API getSelectedUnit()=0
virtual tresult PLUGIN_API setUnitProgramData(int32 listOrUnitId, int32 programIndex, IBStream *data)=0
virtual tresult PLUGIN_API selectUnit(UnitID unitId)=0
virtual int32 PLUGIN_API getProgramListCount()=0
virtual tresult PLUGIN_API getProgramPitchName(ProgramListID listId, int32 programIndex, int16 midiPitch, String128 name)=0
virtual tresult PLUGIN_API getProgramName(ProgramListID listId, int32 programIndex, String128 name)=0
virtual tresult PLUGIN_API hasProgramPitchNames(ProgramListID listId, int32 programIndex)=0
#define DECLARE_CLASS_IID(ClassName, l1, l2, l3, l4)
Definition funknown.h:74
static const char * name
Definition pugl.h:1582
struct backing_store_struct * info
Definition jmemsys.h:183
JSAMPIMAGE data
Definition jpeglib.h:945
Definition ivstattributes.h:28
static const UnitID kNoParentUnitId
used for the root unit which does not have a parent.
Definition ivstunits.h:34
TChar String128[128]
128 character UTF-16 string
Definition vsttypes.h:63
static const int32 kAllProgramInvalid
all program information is invalid
Definition ivstunits.h:65
static const ProgramListID kNoProgramListId
no programs are used in the unit.
Definition ivstunits.h:38
int32 ProgramListID
program list identifier
Definition vsttypes.h:76
int32 BusDirection
bus direction (in/out)
Definition vsttypes.h:70
static const UnitID kRootUnitId
identifier for the top level unit (root)
Definition ivstunits.h:33
int32 UnitID
unit identifier
Definition vsttypes.h:73
const char8 * CString
C-String.
Definition vsttypes.h:64
int32 MediaType
media type (audio/event)
Definition vsttypes.h:69
Definition baseiids.cpp:43
short int16
Definition ftypes.h:43
int int32
Definition ftypes.h:50
int32 tresult
Definition ftypes.h:76
Definition ivstunits.h:57
String128 name
name of program list
Definition ivstunits.h:59
int32 programCount
number of programs in this list
Definition ivstunits.h:60
ProgramListID id
program list identifier
Definition ivstunits.h:58
Definition ivstunits.h:45
ProgramListID programListId
id of program list used in unit (kNoProgramListId = no programs used in this unit)
Definition ivstunits.h:49
UnitID parentUnitId
identifier of parent unit (kNoParentUnitId: does not apply, this unit is the root)
Definition ivstunits.h:47
String128 name
name, optional for the root component, required otherwise
Definition ivstunits.h:48
UnitID id
unit identifier
Definition ivstunits.h:46