LMMS
Loading...
Searching...
No Matches
ivsteditcontroller.h
Go to the documentation of this file.
1//------------------------------------------------------------------------
2// Project : VST SDK
3//
4// Category : Interfaces
5// Filename : pluginterfaces/vst/ivsteditcontroller.h
6// Created by : Steinberg, 09/2005
7// Description : VST Edit Controller 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//------------------------------------------------------------------------
28//------------------------------------------------------------------------
29#ifndef kVstComponentControllerClass
30#define kVstComponentControllerClass "Component Controller Class"
31#endif
32
33//------------------------------------------------------------------------
34namespace Steinberg {
35class IPlugView;
36class IBStream;
37
38//------------------------------------------------------------------------
39namespace Vst {
40
41//------------------------------------------------------------------------
47{
48//------------------------------------------------------------------------
57
60 {
62 kCanAutomate = 1 << 0,
63 kIsReadOnly = 1 << 1,
64 kIsWrapAround = 1 << 2,
65 kIsList = 1 << 3,
66 kIsHidden = 1 << 4,
68
69 kIsProgramChange = 1 << 15,
71 kIsBypass = 1 << 16
73 };
74//------------------------------------------------------------------------
75};
76
77//------------------------------------------------------------------------
79//------------------------------------------------------------------------
80namespace ViewType {
81const CString kEditor = "editor";
82}
83
84//------------------------------------------------------------------------
151
152//------------------------------------------------------------------------
165{
166public:
167//------------------------------------------------------------------------
170 virtual tresult PLUGIN_API beginEdit (ParamID id) = 0;
171
174 virtual tresult PLUGIN_API performEdit (ParamID id, ParamValue valueNormalized) = 0;
175
178 virtual tresult PLUGIN_API endEdit (ParamID id) = 0;
179
182 virtual tresult PLUGIN_API restartComponent (int32 flags) = 0;
183
184//------------------------------------------------------------------------
185 static const FUID iid;
186};
187
188DECLARE_CLASS_IID (IComponentHandler, 0x93A0BEA3, 0x0BD045DB, 0x8E890B0C, 0xC1E46AC6)
189
190//------------------------------------------------------------------------
249{
250public:
251 //------------------------------------------------------------------------
254 virtual tresult PLUGIN_API setDirty (TBool state) = 0;
255
259
260 //------------------------------------------------------------------------
264 virtual tresult PLUGIN_API startGroupEdit () = 0;
265
267 virtual tresult PLUGIN_API finishGroupEdit () = 0;
268
269 //------------------------------------------------------------------------
270 static const FUID iid;
271};
272
273DECLARE_CLASS_IID (IComponentHandler2, 0xF040B4B3, 0xA36045EC, 0xABCDC045, 0xB4D5A2CC)
274
275//------------------------------------------------------------------------
300{
301public:
302//------------------------------------------------------------------------
305 TBool state) = 0;
306
307//------------------------------------------------------------------------
308 static const FUID iid;
309};
310
311DECLARE_CLASS_IID (IComponentHandlerBusActivation, 0x067D02C1, 0x5B4E274D, 0xA92D90FD, 0x6EAF7240)
312
313//------------------------------------------------------------------------
354class IProgress : public FUnknown
355{
356public:
357 //------------------------------------------------------------------------
363
364 using ID = uint64;
365
368 virtual tresult PLUGIN_API start (ProgressType type, const tchar* optionalDescription,
369 ID& outID) = 0;
371 virtual tresult PLUGIN_API update (ID id, ParamValue normValue) = 0;
373 virtual tresult PLUGIN_API finish (ID id) = 0;
374
375//------------------------------------------------------------------------
376 static const FUID iid;
377};
378
379DECLARE_CLASS_IID (IProgress, 0x00C9DC5B, 0x9D904254, 0x91A388C8, 0xB4E91B69)
380
381//------------------------------------------------------------------------
392{
393public:
394//------------------------------------------------------------------------
396 virtual tresult PLUGIN_API setComponentState (IBStream* state) = 0;
397
399 virtual tresult PLUGIN_API setState (IBStream* state) = 0;
400
402 virtual tresult PLUGIN_API getState (IBStream* state) = 0;
403
404 // parameters -------------------------
406 virtual int32 PLUGIN_API getParameterCount () = 0;
408 virtual tresult PLUGIN_API getParameterInfo (int32 paramIndex, ParameterInfo& info /*out*/) = 0;
409
411 virtual tresult PLUGIN_API getParamStringByValue (ParamID id, ParamValue valueNormalized /*in*/, String128 string /*out*/) = 0;
413 virtual tresult PLUGIN_API getParamValueByString (ParamID id, TChar* string /*in*/, ParamValue& valueNormalized /*out*/) = 0;
414
417 virtual ParamValue PLUGIN_API normalizedParamToPlain (ParamID id, ParamValue valueNormalized) = 0;
419 virtual ParamValue PLUGIN_API plainParamToNormalized (ParamID id, ParamValue plainValue) = 0;
420
422 virtual ParamValue PLUGIN_API getParamNormalized (ParamID id) = 0;
426 virtual tresult PLUGIN_API setParamNormalized (ParamID id, ParamValue value) = 0;
427
428 // handler ----------------------------
432
433 // view -------------------------------
436 virtual IPlugView* PLUGIN_API createView (FIDString name) = 0;
437
438//------------------------------------------------------------------------
439 static const FUID iid;
440};
441
442DECLARE_CLASS_IID (IEditController, 0xDCD7BBE3, 0x7742448D, 0xA874AACC, 0x979C759E)
443
444//------------------------------------------------------------------------
452
453//------------------------------------------------------------------------
456//------------------------------------------------------------------------
460
461//------------------------------------------------------------------------
475{
476public:
478 virtual tresult PLUGIN_API setKnobMode (KnobMode mode) = 0;
479
483 virtual tresult PLUGIN_API openHelp (TBool onlyCheck) = 0;
484
488 virtual tresult PLUGIN_API openAboutBox (TBool onlyCheck) = 0;
489
490 //------------------------------------------------------------------------
491 static const FUID iid;
492};
493
494DECLARE_CLASS_IID (IEditController2, 0x7F4EFE59, 0xF3204967, 0xAC27A3AE, 0xAFB63038)
495
496//------------------------------------------------------------------------
550class IMidiMapping : public FUnknown
551{
552public:
559 virtual tresult PLUGIN_API getMidiControllerAssignment (int32 busIndex, int16 channel,
560 CtrlNumber midiControllerNumber, ParamID& id/*out*/) = 0;
561
562 //------------------------------------------------------------------------
563 static const FUID iid;
564};
565
566DECLARE_CLASS_IID (IMidiMapping, 0xDF0FF9F7, 0x49B74669, 0xB63AB732, 0x7ADBF5E5)
567
568//------------------------------------------------------------------------
595{
596public:
598 virtual tresult PLUGIN_API beginEditFromHost (ParamID paramID) = 0;
599
601 virtual tresult PLUGIN_API endEditFromHost (ParamID paramID) = 0;
602
603 //------------------------------------------------------------------------
604 static const FUID iid;
605};
606
607DECLARE_CLASS_IID (IEditControllerHostEditing, 0xC1271208, 0x70594098, 0xB9DD34B3, 0x6BB0195E)
608
609//------------------------------------------------------------------------
610} // namespace Vst
611} // namespace Steinberg
612
613//------------------------------------------------------------------------
615//------------------------------------------------------------------------
CAdPlugDatabase::CRecord::RecordType type
Definition adplugdb.cpp:93
Definition funknown.h:233
Definition funknown.h:361
Definition ibstream.h:30
Definition iplugview.h:123
Definition ipluginbase.h:37
Definition ivsteditcontroller.h:249
virtual tresult PLUGIN_API setDirty(TBool state)=0
static const FUID iid
Definition ivsteditcontroller.h:270
virtual tresult PLUGIN_API startGroupEdit()=0
virtual tresult PLUGIN_API requestOpenEditor(FIDString name=ViewType::kEditor)=0
virtual tresult PLUGIN_API finishGroupEdit()=0
Definition ivsteditcontroller.h:300
static const FUID iid
Definition ivsteditcontroller.h:308
virtual tresult PLUGIN_API requestBusActivation(MediaType type, BusDirection dir, int32 index, TBool state)=0
Definition ivsteditcontroller.h:165
virtual tresult PLUGIN_API restartComponent(int32 flags)=0
static const FUID iid
Definition ivsteditcontroller.h:185
virtual tresult PLUGIN_API beginEdit(ParamID id)=0
virtual tresult PLUGIN_API endEdit(ParamID id)=0
virtual tresult PLUGIN_API performEdit(ParamID id, ParamValue valueNormalized)=0
Definition ivsteditcontroller.h:475
virtual tresult PLUGIN_API setKnobMode(KnobMode mode)=0
static const FUID iid
Definition ivsteditcontroller.h:491
virtual tresult PLUGIN_API openAboutBox(TBool onlyCheck)=0
virtual tresult PLUGIN_API openHelp(TBool onlyCheck)=0
Definition ivsteditcontroller.h:595
virtual tresult PLUGIN_API beginEditFromHost(ParamID paramID)=0
static const FUID iid
Definition ivsteditcontroller.h:604
virtual tresult PLUGIN_API endEditFromHost(ParamID paramID)=0
Definition ivsteditcontroller.h:392
virtual tresult PLUGIN_API setState(IBStream *state)=0
virtual tresult PLUGIN_API getParameterInfo(int32 paramIndex, ParameterInfo &info)=0
virtual tresult PLUGIN_API setComponentHandler(IComponentHandler *handler)=0
virtual tresult PLUGIN_API getState(IBStream *state)=0
virtual tresult PLUGIN_API getParamValueByString(ParamID id, TChar *string, ParamValue &valueNormalized)=0
virtual tresult PLUGIN_API setParamNormalized(ParamID id, ParamValue value)=0
virtual ParamValue PLUGIN_API getParamNormalized(ParamID id)=0
virtual tresult PLUGIN_API setComponentState(IBStream *state)=0
virtual ParamValue PLUGIN_API normalizedParamToPlain(ParamID id, ParamValue valueNormalized)=0
virtual ParamValue PLUGIN_API plainParamToNormalized(ParamID id, ParamValue plainValue)=0
static const FUID iid
Definition ivsteditcontroller.h:439
virtual int32 PLUGIN_API getParameterCount()=0
virtual IPlugView *PLUGIN_API createView(FIDString name)=0
virtual tresult PLUGIN_API getParamStringByValue(ParamID id, ParamValue valueNormalized, String128 string)=0
Definition ivsteditcontroller.h:551
static const FUID iid
Definition ivsteditcontroller.h:563
virtual tresult PLUGIN_API getMidiControllerAssignment(int32 busIndex, int16 channel, CtrlNumber midiControllerNumber, ParamID &id)=0
Definition ivsteditcontroller.h:355
virtual tresult PLUGIN_API update(ID id, ParamValue normValue)=0
static const FUID iid
Definition ivsteditcontroller.h:376
uint64 ID
Definition ivsteditcontroller.h:364
ProgressType
Definition ivsteditcontroller.h:359
@ UIBackgroundTask
a plug-in task triggered by a UI action
Definition ivsteditcontroller.h:361
@ AsyncStateRestoration
plug-in state is restored async (in a background Thread)
Definition ivsteditcontroller.h:360
virtual tresult PLUGIN_API start(ProgressType type, const tchar *optionalDescription, ID &outID)=0
virtual tresult PLUGIN_API finish(ID id)=0
#define DECLARE_CLASS_IID(ClassName, l1, l2, l3, l4)
Definition funknown.h:74
static PuglViewHint int value
Definition pugl.h:1708
static const char * name
Definition pugl.h:1582
struct backing_store_struct * info
Definition jmemsys.h:183
Definition ivsteditcontroller.h:80
const CString kEditor
Definition ivsteditcontroller.h:81
int32 KnobMode
Definition ivsteditcontroller.h:458
uint32 ParamID
parameter identifier
Definition vsttypes.h:75
TChar String128[128]
128 character UTF-16 string
Definition vsttypes.h:63
char16 TChar
UTF-16 character.
Definition vsttypes.h:62
double ParamValue
parameter value type
Definition vsttypes.h:74
int16 CtrlNumber
MIDI controller number (see ControllerNumbers for allowed values).
Definition vsttypes.h:77
RestartFlags
Definition ivsteditcontroller.h:87
@ kParamTitlesChanged
Definition ivsteditcontroller.h:115
@ kRoutingInfoChanged
Definition ivsteditcontroller.h:149
@ kLatencyChanged
Definition ivsteditcontroller.h:110
@ kNoteExpressionChanged
Definition ivsteditcontroller.h:130
@ kMidiCCAssignmentChanged
Definition ivsteditcontroller.h:123
@ kIoTitlesChanged
Definition ivsteditcontroller.h:135
@ kIoChanged
Definition ivsteditcontroller.h:98
@ kReloadComponent
Definition ivsteditcontroller.h:91
@ kParamValuesChanged
Definition ivsteditcontroller.h:103
@ kPrefetchableSupportChanged
Definition ivsteditcontroller.h:142
int32 BusDirection
bus direction (in/out)
Definition vsttypes.h:70
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
KnobModes
Definition ivsteditcontroller.h:447
@ kCircularMode
Circular with jump to clicked position.
Definition ivsteditcontroller.h:448
@ kLinearMode
Linear: depending on vertical movement.
Definition ivsteditcontroller.h:450
@ kRelativCircularMode
Circular without jump to clicked position.
Definition ivsteditcontroller.h:449
Definition baseiids.cpp:43
unsigned long long uint64
Definition ftypes.h:67
short int16
Definition ftypes.h:43
int int32
Definition ftypes.h:50
const char8 * FIDString
Definition ftypes.h:117
char16 tchar
Definition ftypes.h:105
uint8 TBool
Definition ftypes.h:89
int32 tresult
Definition ftypes.h:76
unsigned int uint32
Definition ftypes.h:51
png_structrp int mode
Definition png.h:1139
Definition ivsteditcontroller.h:47
int32 flags
ParameterFlags (see below).
Definition ivsteditcontroller.h:58
ParamID id
unique identifier of this parameter (named tag too)
Definition ivsteditcontroller.h:49
String128 title
parameter title (e.g. "Volume")
Definition ivsteditcontroller.h:50
String128 units
parameter unit (e.g. "dB")
Definition ivsteditcontroller.h:52
String128 shortTitle
parameter shortTitle (e.g. "Vol")
Definition ivsteditcontroller.h:51
ParamValue defaultNormalizedValue
default normalized value [0,1] (in case of discrete value: defaultNormalizedValue = defDiscreteValue ...
Definition ivsteditcontroller.h:55
int32 stepCount
(corresponding to max - min, for example: 127 for a min = 0 and a max = 127) - see vst3ParameterIntro...
Definition ivsteditcontroller.h:53
UnitID unitId
id of unit this parameter belongs to (see vst3Units)
Definition ivsteditcontroller.h:56
ParameterFlags
Definition ivsteditcontroller.h:60
@ kIsList
parameter should be displayed as list in generic editor or automation editing [SDK 3....
Definition ivsteditcontroller.h:65
@ kCanAutomate
parameter can be automated
Definition ivsteditcontroller.h:62
@ kIsProgramChange
Definition ivsteditcontroller.h:69
@ kIsReadOnly
parameter cannot be changed from outside the plug-in (implies that kCanAutomate is NOT set)
Definition ivsteditcontroller.h:63
@ kIsBypass
(highly recommended to export a bypass parameter for effect plug-in)
Definition ivsteditcontroller.h:71
@ kIsWrapAround
attempts to set the parameter value out of the limits will result in a wrap around [SDK 3....
Definition ivsteditcontroller.h:64
@ kIsHidden
(implies that kCanAutomate is NOT set and kIsReadOnly is set) [SDK 3.7.0]
Definition ivsteditcontroller.h:66
@ kNoFlags
no flags wanted
Definition ivsteditcontroller.h:61
void handler(int signal)
Definition fileio.c:1632