LMMS
Loading...
Searching...
No Matches
vstcomponent.h
Go to the documentation of this file.
1//-----------------------------------------------------------------------------
2// Project : VST SDK
3//
4// Category : Helpers
5// Filename : public.sdk/source/vst/vstcomponent.h
6// Created by : Steinberg, 04/2005
7// Description : Basic VST Plug-in Implementation
8//
9//-----------------------------------------------------------------------------
10// LICENSE
11// (c) 2021, Steinberg Media Technologies GmbH, All Rights Reserved
12//-----------------------------------------------------------------------------
13// Redistribution and use in source and binary forms, with or without modification,
14// are permitted provided that the following conditions are met:
15//
16// * Redistributions of source code must retain the above copyright notice,
17// this list of conditions and the following disclaimer.
18// * Redistributions in binary form must reproduce the above copyright notice,
19// this list of conditions and the following disclaimer in the documentation
20// and/or other materials provided with the distribution.
21// * Neither the name of the Steinberg Media Technologies nor the names of its
22// contributors may be used to endorse or promote products derived from this
23// software without specific prior written permission.
24//
25// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
26// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
27// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
28// IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
29// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
30// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
31// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
32// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
33// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
34// OF THE POSSIBILITY OF SUCH DAMAGE.
35//-----------------------------------------------------------------------------
36
37#pragma once
38
42
43//------------------------------------------------------------------------
44namespace Steinberg {
45namespace Vst {
46
47//------------------------------------------------------------------------
52class Component : public ComponentBase, public IComponent
53{
54public:
55//------------------------------------------------------------------------
57 Component ();
58
59 //---Internal Methods-------
61 void setControllerClass (const FUID& cid) { controllerClass = cid; }
62
65
68
71 tresult renameBus (MediaType type, BusDirection dir, int32 index, const String128 newName);
72
73 //---from IComponent--------
78 tresult PLUGIN_API getRoutingInfo (RoutingInfo& inInfo, RoutingInfo& outInfo) SMTG_OVERRIDE;
79 tresult PLUGIN_API activateBus (MediaType type, BusDirection dir, int32 index, TBool state) SMTG_OVERRIDE;
80 tresult PLUGIN_API setActive (TBool state) SMTG_OVERRIDE;
81 tresult PLUGIN_API setState (IBStream* state) SMTG_OVERRIDE;
82 tresult PLUGIN_API getState (IBStream* state) SMTG_OVERRIDE;
83
84 //---from ComponentBase------
85 tresult PLUGIN_API initialize (FUnknown* context) SMTG_OVERRIDE;
86 tresult PLUGIN_API terminate () SMTG_OVERRIDE;
87
88 //---Interface---------
94
95//------------------------------------------------------------------------
96protected:
102
105};
106
107//------------------------------------------------------------------------
108// some Helper functions....
109//------------------------------------------------------------------------
110
113tresult getSpeakerChannelIndex (SpeakerArrangement arrangement, uint64 speaker, int32& channel);
114
115//------------------------------------------------------------------------
116} // namespace Vst
117} // namespace Steinberg
CAdPlugDatabase::CRecord::RecordType type
Definition adplugdb.cpp:93
Definition funknown.h:233
Definition funknown.h:361
Definition ibstream.h:30
Definition vstbus.h:142
Definition vstcomponentbase.h:55
ComponentBase()
Definition vstcomponentbase.cpp:46
Definition vstcomponent.h:53
int32 PLUGIN_API getBusCount(MediaType type, BusDirection dir) SMTG_OVERRIDE
Definition vstcomponent.cpp:123
BusList eventInputs
Definition vstcomponent.h:100
tresult PLUGIN_API getState(IBStream *state) SMTG_OVERRIDE
Definition vstcomponent.cpp:185
BusList audioInputs
Definition vstcomponent.h:98
tresult PLUGIN_API getRoutingInfo(RoutingInfo &inInfo, RoutingInfo &outInfo) SMTG_OVERRIDE
Definition vstcomponent.cpp:150
tresult PLUGIN_API setState(IBStream *state) SMTG_OVERRIDE
Definition vstcomponent.cpp:179
tresult PLUGIN_API setActive(TBool state) SMTG_OVERRIDE
Definition vstcomponent.cpp:173
FUID controllerClass
Definition vstcomponent.h:97
tresult PLUGIN_API initialize(FUnknown *context) SMTG_OVERRIDE
Definition vstcomponent.cpp:54
tresult PLUGIN_API setIoMode(IoMode mode) SMTG_OVERRIDE
Definition vstcomponent.cpp:117
tresult PLUGIN_API activateBus(MediaType type, BusDirection dir, int32 index, TBool state) SMTG_OVERRIDE
Definition vstcomponent.cpp:156
tresult PLUGIN_API getControllerClassId(TUID classID) SMTG_OVERRIDE
Definition vstcomponent.cpp:106
tresult PLUGIN_API getBusInfo(MediaType type, BusDirection dir, int32 index, BusInfo &info) SMTG_OVERRIDE
Definition vstcomponent.cpp:130
void setControllerClass(const FUID &cid)
Definition vstcomponent.h:61
BusList eventOutputs
Definition vstcomponent.h:101
BusList audioOutputs
Definition vstcomponent.h:99
BusList * getBusList(MediaType type, BusDirection dir)
Definition vstcomponent.cpp:69
tresult PLUGIN_API terminate() SMTG_OVERRIDE
Definition vstcomponent.cpp:60
Component()
Definition vstcomponent.cpp:45
tresult removeAllBusses()
Definition vstcomponent.cpp:97
tresult renameBus(MediaType type, BusDirection dir, int32 index, const String128 newName)
Definition vstcomponent.cpp:191
tresult removeAudioBusses()
Definition vstcomponent.cpp:79
tresult removeEventBusses()
Definition vstcomponent.cpp:88
Definition ivstcomponent.h:158
#define DEFINE_INTERFACES
Definition fobject.h:378
#define DEF_INTERFACE(InterfaceName)
Definition fobject.h:385
#define OBJ_METHODS(className, baseClass)
Definition fobject.h:339
#define END_DEFINE_INTERFACES(BaseClass)
Definition fobject.h:391
#define REFCOUNT_METHODS(BaseClass)
Definition fobject.h:351
#define SMTG_OVERRIDE
Definition fplatform.h:241
struct backing_store_struct * info
Definition jmemsys.h:183
Definition ivstattributes.h:28
int32 IoMode
I/O mode (see vst3IoMode).
Definition vsttypes.h:72
TChar String128[128]
128 character UTF-16 string
Definition vsttypes.h:63
tresult getSpeakerChannelIndex(SpeakerArrangement arrangement, uint64 speaker, int32 &channel)
Definition vstcomponent.cpp:210
int32 BusDirection
bus direction (in/out)
Definition vsttypes.h:70
uint64 SpeakerArrangement
Bitset of speakers.
Definition vsttypes.h:98
int32 MediaType
media type (audio/event)
Definition vsttypes.h:69
Definition baseiids.cpp:43
unsigned long long uint64
Definition ftypes.h:67
int int32
Definition ftypes.h:50
int8 TUID[16]
plain UID type
Definition funknown.h:210
uint8 TBool
Definition ftypes.h:89
int32 tresult
Definition ftypes.h:76
png_structrp int mode
Definition png.h:1139
Definition ivstcomponent.h:93
Definition ivstcomponent.h:136