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
ivstrepresentation.h
Go to the documentation of this file.
1 //------------------------------------------------------------------------
2// Project : VST SDK
3//
4// Category : Interfaces
5// Filename : pluginterfaces/vst/ivstrepresentation.h
6// Created by : Steinberg, 08/2010
7// Description : VST Representation Interface
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
32//------------------------------------------------------------------------
38{
40 {
41 memset (vendor, 0, kNameSize);
42 memset (name, 0, kNameSize);
43 memset (version, 0, kNameSize);
44 memset (host, 0, kNameSize);
45 }
46
47 RepresentationInfo (char8* _vendor, char8* _name = nullptr, char8* _version = nullptr, char8* _host = nullptr)
48 {
49 memset (vendor, 0, kNameSize);
50 if (_vendor)
51 strcpy (vendor, _vendor);
52 memset (name, 0, kNameSize);
53 if (_name)
54 strcpy (name, _name);
55 memset (version, 0, kNameSize);
56 if (_version)
57 strcpy (version, _version);
58 memset (host, 0, kNameSize);
59 if (_host)
60 strcpy (host, _host);
61 }
62
63 enum
64 {
65 kNameSize = 64
66 };
67 char8 vendor[kNameSize];
68 char8 name[kNameSize];
69 char8 version[kNameSize];
70 char8 host[kNameSize];
71};
72
73
74//------------------------------------------------------------------------
75//------------------------------------------------------------------------
181{
182public:
184 virtual tresult PLUGIN_API getXmlRepresentationStream (RepresentationInfo& info /*in*/,
185 IBStream* stream /*out*/) = 0;
186
187//------------------------------------------------------------------------
188 static const FUID iid;
189};
190
191DECLARE_CLASS_IID (IXmlRepresentationController, 0xA81A0471, 0x48C34DC4, 0xAC30C9E1, 0x3C8393D5)
192
193//------------------------------------------------------------------------
196#define ROOTXML_TAG "vstXML"
197
198#define COMMENT_TAG "comment"
199#define CELL_TAG "cell"
200#define CELLGROUP_TAG "cellGroup"
201#define CELLGROUPTEMPLATE_TAG "cellGroupTemplate"
202#define CURVE_TAG "curve"
203#define CURVETEMPLATE_TAG "curveTemplate"
204#define DATE_TAG "date"
205#define LAYER_TAG "layer"
206#define NAME_TAG "name"
207#define ORIGINATOR_TAG "originator"
208#define PAGE_TAG "page"
209#define PAGETEMPLATE_TAG "pageTemplate"
210#define PLUGIN_TAG "plugin"
211#define VALUE_TAG "value"
212#define VALUEDISPLAY_TAG "valueDisplay"
213#define VALUELIST_TAG "valueList"
214#define REPRESENTATION_TAG "representation"
215#define SEGMENT_TAG "segment"
216#define SEGMENTLIST_TAG "segmentList"
217#define TITLEDISPLAY_TAG "titleDisplay"
218
219#define ATTR_CATEGORY "category"
220#define ATTR_CLASSID "classID"
221#define ATTR_ENDPOINT "endPoint"
222#define ATTR_INDEX "index"
223#define ATTR_FLAGS "flags"
224#define ATTR_FUNCTION "function"
225#define ATTR_HOST "host"
226#define ATTR_LEDSTYLE "ledStyle"
227#define ATTR_LENGTH "length"
228#define ATTR_LINKEDTO "linkedTo"
229#define ATTR_NAME "name"
230#define ATTR_ORDER "order"
231#define ATTR_PAGE "page"
232#define ATTR_PARAMID "parameterID"
233#define ATTR_STARTPOINT "startPoint"
234#define ATTR_STYLE "style"
235#define ATTR_SWITCHSTYLE "switchStyle"
236#define ATTR_TEMPLATE "template"
237#define ATTR_TURNSPERFULLRANGE "turnsPerFullRange"
238#define ATTR_TYPE "type"
239#define ATTR_UNITID "unitID"
240#define ATTR_VARIABLES "variables"
241#define ATTR_VENDOR "vendor"
242#define ATTR_VERSION "version"
243
244//------------------------------------------------------------------------
246#define GENERIC "Generic"
247#define GENERIC_4_CELLS "Generic 4 Cells"
248#define GENERIC_8_CELLS "Generic 8 Cells"
249#define GENERIC_12_CELLS "Generic 12 Cells"
250#define GENERIC_24_CELLS "Generic 24 Cells"
251#define GENERIC_N_CELLS "Generic %d Cells"
252#define QUICK_CONTROL_8_CELLS "Quick Controls 8 Cells"
253
254//------------------------------------------------------------------------
256namespace LayerType
257{
258 enum
259 {
260 kKnob = 0,
268 kEndOfLayerType
269 };
270
272 static const FIDString layerTypeFIDString[] = {
273 "knob"
274 ,"pressedKnob"
275 ,"switchKnob"
276 ,"switch"
277 ,"LED"
278 ,"link"
279 ,"display"
280 ,"fader"
281 ,nullptr
282 };
283};
284
285//------------------------------------------------------------------------
287namespace CurveType
288{
289 const CString kSegment = "segment";
290 const CString kValueList = "valueList";
291};
292
293//------------------------------------------------------------------------
295namespace Attributes
296{
297 const CString kStyle = ATTR_STYLE;
298 const CString kLEDStyle = ATTR_LEDSTYLE;
299 const CString kSwitchStyle = ATTR_SWITCHSTYLE;
300 const CString kKnobTurnsPerFullRange = ATTR_TURNSPERFULLRANGE;
301 const CString kFunction = ATTR_FUNCTION;
302 const CString kFlags = ATTR_FLAGS;
303};
304
305//------------------------------------------------------------------------
307namespace AttributesFunction
308{
310 const CString kPanPosCenterXFunc = "PanPosCenterX";
311 const CString kPanPosCenterYFunc = "PanPosCenterY";
312 const CString kPanPosFrontLeftXFunc = "PanPosFrontLeftX";
313 const CString kPanPosFrontLeftYFunc = "PanPosFrontLeftY";
314 const CString kPanPosFrontRightXFunc = "PanPosFrontRightX";
315 const CString kPanPosFrontRightYFunc = "PanPosFrontRightY";
316 const CString kPanRotationFunc = "PanRotation";
317 const CString kPanLawFunc = "PanLaw";
318 const CString kPanMirrorModeFunc = "PanMirrorMode";
319 const CString kPanLfeGainFunc = "PanLfeGain";
320 const CString kGainReductionFunc = "GainReduction";
321 const CString kSoloFunc = "Solo";
322 const CString kMuteFunc = "Mute";
323 const CString kVolumeFunc = "Volume";
324};
325
326//------------------------------------------------------------------------
328namespace AttributesStyle
329{
331 const CString kInverseStyle = "inverse";
332
334 const CString kLEDWrapLeftStyle = "wrapLeft";
335 const CString kLEDWrapRightStyle = "wrapRight";
336 const CString kLEDSpreadStyle = "spread";
337 const CString kLEDBoostCutStyle = "boostCut";
338 const CString kLEDSingleDotStyle = "singleDot";
339
341 const CString kSwitchPushStyle = "push";
342 const CString kSwitchPushIncLoopedStyle = "pushIncLooped";
344 const CString kSwitchPushDecLoopedStyle = "pushDecLooped";
345 const CString kSwitchPushIncStyle = "pushInc";
346 const CString kSwitchPushDecStyle = "pushDec";
347 const CString kSwitchLatchStyle = "latch";
349};
350
351//------------------------------------------------------------------------
353namespace AttributesFlags
354{
355 const CString kHideableFlag = "hideable";
356};
357
358//------------------------------------------------------------------------
359} // namespace Vst
360} // namespace Steinberg
361
362//------------------------------------------------------------------------
364//------------------------------------------------------------------------
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
Extended plug-in interface IEditController for a component: Vst::IXmlRepresentationController.
virtual tresult PLUGIN_API getXmlRepresentationStream(RepresentationInfo &info, IBStream *stream)=0
Retrieves a stream containing a XmlRepresentation for a wanted representation info.
memset
const CString kHideableFlag
the associated layer marked as hideable allows a remote to hide or make it not usable a parameter whe...
const CString kPanPosCenterXFunc
Global Style.
const CString kPanMirrorModeFunc
Panning Mirror Mode.
const CString kPanPosFrontRightXFunc
Right channel Position in X-axis.
const CString kPanPosCenterYFunc
Gravity point Y-axis (Front-Rear)
const CString kGainReductionFunc
Gain Reduction for compressor.
const CString kPanPosFrontRightYFunc
Right channel Position in Y-axis.
const CString kPanLawFunc
Panning Law.
const CString kPanPosFrontLeftYFunc
Left channel Position in Y-axis.
const CString kPanLfeGainFunc
Panning LFE Gain.
const CString kPanPosFrontLeftXFunc
Left channel Position in X-axis.
const CString kPanRotationFunc
Rotation around the Center (gravity point)
const CString kLEDWrapRightStyle
----—<====|
const CString kSwitchLatchStyle
Each push-release will change the value between min and max.
const CString kSwitchPushDecLoopedStyle
Push will decrement the value. When the min is reached it will restart with max.
const CString kLEDBoostCutStyle
---—|===>–
const CString kLEDWrapLeftStyle
LED Style.
const CString kLEDSpreadStyle
—<==|==>—
const CString kSwitchPushStyle
Switch Style.
const CString kSwitchPushIncLoopedStyle
Push will increment the value.
const CString kInverseStyle
Global Style.
const CString kSwitchPushIncStyle
Increment after each press (delta depends of the curve).
const CString kSwitchPushDecStyle
Decrement after each press (delta depends of the curve).
const CString kLEDSingleDotStyle
-----—|-—
const CString kLEDStyle
string attribute : See AttributesStyle for available string value
const CString kKnobTurnsPerFullRange
float attribute
const CString kStyle
string attribute : See AttributesStyle for available string value
const CString kFlags
string attribute : See AttributesFlags for available string value
const CString kFunction
string attribute : See AttributesFunction for available string value
const CString kSwitchStyle
string attribute : See AttributesStyle for available string value
@ kPressedKnob
a knob which is used by pressing and turning
@ kKnob
a knob (encoder or not)
@ kLink
indicates that this layer is a folder linked to an another INode (page)
@ kDisplay
only for text display (not really a control)
@ kSwitchKnob
knob could be pressed to simulate a switch
@ kLED
LED like VU-meter or display around a knob.
const char8 * CString
C-String.
Definition vsttypes.h:70
strcpy
RepresentationInfo is the structure describing a representation This structure is used in the functio...
char8 version[kNameSize]
Version of this "Remote" (eg. "1.0").
char8 name[kNameSize]
Representation (remote) Name (eg. "O2").
char8 host[kNameSize]
Optional: used if the representation is for a given host only (eg. "Nuendo").
char8 vendor[kNameSize]
Vendor name of the associated representation (remote) (eg. "Yamaha").