LMMS
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 {
66 };
71};
72
73
74//------------------------------------------------------------------------
75//------------------------------------------------------------------------
181{
182public:
185 IBStream* stream /*out*/) = 0;
186
187//------------------------------------------------------------------------
188 static const FUID iid;
189};
190
191DECLARE_CLASS_IID (IXmlRepresentationController, 0xA81A0471, 0x48C34DC4, 0xAC30C9E1, 0x3C8393D5)
192
193//------------------------------------------------------------------------
195
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,
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//------------------------------------------------------------------------
304
305//------------------------------------------------------------------------
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//------------------------------------------------------------------------
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//------------------------------------------------------------------------
354{
355 const CString kHideableFlag = "hideable";
356};
357
358//------------------------------------------------------------------------
359} // namespace Vst
360} // namespace Steinberg
361
362//------------------------------------------------------------------------
364//------------------------------------------------------------------------
Definition funknown.h:233
Definition funknown.h:361
Definition ibstream.h:30
Definition ivstrepresentation.h:181
static const FUID iid
Definition ivstrepresentation.h:188
virtual tresult PLUGIN_API getXmlRepresentationStream(RepresentationInfo &info, IBStream *stream)=0
#define DECLARE_CLASS_IID(ClassName, l1, l2, l3, l4)
Definition funknown.h:74
#define ATTR_TURNSPERFULLRANGE
Definition ivstrepresentation.h:237
#define ATTR_STYLE
Definition ivstrepresentation.h:234
#define ATTR_LEDSTYLE
Definition ivstrepresentation.h:226
#define ATTR_FUNCTION
Definition ivstrepresentation.h:224
#define ATTR_FLAGS
Definition ivstrepresentation.h:223
#define ATTR_SWITCHSTYLE
Definition ivstrepresentation.h:235
struct backing_store_struct * info
Definition jmemsys.h:183
Definition ivstrepresentation.h:354
const CString kHideableFlag
the associated layer marked as hideable allows a remote to hide or make it not usable a parameter whe...
Definition ivstrepresentation.h:355
Definition ivstrepresentation.h:308
const CString kPanPosCenterXFunc
Global Style.
Definition ivstrepresentation.h:310
const CString kPanMirrorModeFunc
Panning Mirror Mode.
Definition ivstrepresentation.h:318
const CString kPanPosFrontRightXFunc
Right channel Position in X-axis.
Definition ivstrepresentation.h:314
const CString kSoloFunc
Solo.
Definition ivstrepresentation.h:321
const CString kPanPosCenterYFunc
Gravity point Y-axis (Front-Rear).
Definition ivstrepresentation.h:311
const CString kVolumeFunc
Volume.
Definition ivstrepresentation.h:323
const CString kGainReductionFunc
Gain Reduction for compressor.
Definition ivstrepresentation.h:320
const CString kPanPosFrontRightYFunc
Right channel Position in Y-axis.
Definition ivstrepresentation.h:315
const CString kMuteFunc
Mute.
Definition ivstrepresentation.h:322
const CString kPanLawFunc
Panning Law.
Definition ivstrepresentation.h:317
const CString kPanPosFrontLeftYFunc
Left channel Position in Y-axis.
Definition ivstrepresentation.h:313
const CString kPanLfeGainFunc
Panning LFE Gain.
Definition ivstrepresentation.h:319
const CString kPanPosFrontLeftXFunc
Left channel Position in X-axis.
Definition ivstrepresentation.h:312
const CString kPanRotationFunc
Rotation around the Center (gravity point).
Definition ivstrepresentation.h:316
Definition ivstrepresentation.h:296
const CString kLEDStyle
string attribute : See AttributesStyle for available string value
Definition ivstrepresentation.h:298
const CString kKnobTurnsPerFullRange
float attribute
Definition ivstrepresentation.h:300
const CString kStyle
string attribute : See AttributesStyle for available string value
Definition ivstrepresentation.h:297
const CString kFlags
string attribute : See AttributesFlags for available string value
Definition ivstrepresentation.h:302
const CString kFunction
string attribute : See AttributesFunction for available string value
Definition ivstrepresentation.h:301
const CString kSwitchStyle
string attribute : See AttributesStyle for available string value
Definition ivstrepresentation.h:299
Definition ivstrepresentation.h:329
const CString kLEDWrapRightStyle
----—<====|
Definition ivstrepresentation.h:335
const CString kSwitchLatchStyle
A timeout between push and release could be used to simulate a push style (if timeout is reached).
Definition ivstrepresentation.h:347
const CString kSwitchPushDecLoopedStyle
Push will decrement the value. When the min is reached it will restart with max.
Definition ivstrepresentation.h:344
const CString kLEDBoostCutStyle
---—|===>–
Definition ivstrepresentation.h:337
const CString kLEDWrapLeftStyle
LED Style.
Definition ivstrepresentation.h:334
const CString kLEDSpreadStyle
—<==|==>—
Definition ivstrepresentation.h:336
const CString kSwitchPushStyle
Switch Style.
Definition ivstrepresentation.h:341
const CString kSwitchPushIncLoopedStyle
The default one if not specified (with 2 states values it is a OnOff switch).
Definition ivstrepresentation.h:342
const CString kInverseStyle
Global Style.
Definition ivstrepresentation.h:331
const CString kSwitchPushIncStyle
Increment after each press (delta depends of the curve).
Definition ivstrepresentation.h:345
const CString kSwitchPushDecStyle
Decrement after each press (delta depends of the curve).
Definition ivstrepresentation.h:346
const CString kLEDSingleDotStyle
-----—|-—
Definition ivstrepresentation.h:338
Definition ivstrepresentation.h:288
const CString kValueList
Definition ivstrepresentation.h:290
const CString kSegment
Definition ivstrepresentation.h:289
Definition ivstrepresentation.h:257
@ kSwitch
a "on/off" button
Definition ivstrepresentation.h:263
@ kPressedKnob
a knob which is used by pressing and turning
Definition ivstrepresentation.h:261
@ kKnob
a knob (encoder or not)
Definition ivstrepresentation.h:260
@ kLink
indicates that this layer is a folder linked to an another INode (page)
Definition ivstrepresentation.h:265
@ kDisplay
only for text display (not really a control)
Definition ivstrepresentation.h:266
@ kSwitchKnob
knob could be pressed to simulate a switch
Definition ivstrepresentation.h:262
@ kFader
a fader
Definition ivstrepresentation.h:267
@ kEndOfLayerType
Definition ivstrepresentation.h:268
@ kLED
LED like VU-meter or display around a knob.
Definition ivstrepresentation.h:264
static const FIDString layerTypeFIDString[]
Definition ivstrepresentation.h:272
Definition ivstattributes.h:28
const char8 * CString
C-String.
Definition vsttypes.h:64
Definition baseiids.cpp:43
char char8
Definition ftypes.h:93
const char8 * FIDString
Definition ftypes.h:117
int32 tresult
Definition ftypes.h:76
Definition ivstrepresentation.h:38
char8 version[kNameSize]
Version of this "Remote" (eg. "1.0").
Definition ivstrepresentation.h:69
RepresentationInfo(char8 *_vendor, char8 *_name=nullptr, char8 *_version=nullptr, char8 *_host=nullptr)
Definition ivstrepresentation.h:47
char8 name[kNameSize]
Representation (remote) Name (eg. "O2").
Definition ivstrepresentation.h:68
@ kNameSize
Definition ivstrepresentation.h:65
char8 host[kNameSize]
Optional: used if the representation is for a given host only (eg. "Nuendo").
Definition ivstrepresentation.h:70
char8 vendor[kNameSize]
Vendor name of the associated representation (remote) (eg. "Yamaha").
Definition ivstrepresentation.h:67
RepresentationInfo()
Definition ivstrepresentation.h:39