96 constexpr PFactoryInfo () : vendor (), url (), email (), flags () {}
210 const char8* _sdkVersion)
293 const char16* _sdkVersion)
369#define LICENCE_UID(l1, l2, l3, l4) \
371 (int8)((l1 & 0xFF000000) >> 24), (int8)((l1 & 0x00FF0000) >> 16), \
372 (int8)((l1 & 0x0000FF00) >> 8), (int8)((l1 & 0x000000FF) ), \
373 (int8)((l2 & 0xFF000000) >> 24), (int8)((l2 & 0x00FF0000) >> 16), \
374 (int8)((l2 & 0x0000FF00) >> 8), (int8)((l2 & 0x000000FF) ), \
375 (int8)((l3 & 0xFF000000) >> 24), (int8)((l3 & 0x00FF0000) >> 16), \
376 (int8)((l3 & 0x0000FF00) >> 8), (int8)((l3 & 0x000000FF) ), \
377 (int8)((l4 & 0xFF000000) >> 24), (int8)((l4 & 0x00FF0000) >> 16), \
378 (int8)((l4 & 0x0000FF00) >> 8), (int8)((l4 & 0x000000FF) ) \
Definition funknown.h:233
Definition funknown.h:361
Definition ipluginbase.h:37
static const FUID iid
Definition ipluginbase.h:50
virtual tresult PLUGIN_API terminate()=0
virtual tresult PLUGIN_API initialize(FUnknown *context)=0
Definition ipluginbase.h:255
static const FUID iid
Definition ipluginbase.h:262
virtual tresult PLUGIN_API getClassInfo2(int32 index, PClassInfo2 *info)=0
Definition ipluginbase.h:352
static const FUID iid
Definition ipluginbase.h:362
virtual tresult PLUGIN_API getClassInfoUnicode(int32 index, PClassInfoW *info)=0
virtual tresult PLUGIN_API setHostContext(FUnknown *context)=0
Definition ipluginbase.h:159
virtual tresult PLUGIN_API getClassInfo(int32 index, PClassInfo *info)=0
virtual int32 PLUGIN_API countClasses()=0
virtual tresult PLUGIN_API getFactoryInfo(PFactoryInfo *info)=0
static const FUID iid
Definition ipluginbase.h:176
virtual tresult PLUGIN_API createInstance(FIDString cid, FIDString _iid, void **obj)=0
#define DECLARE_CLASS_IID(ClassName, l1, l2, l3, l4)
Definition funknown.h:74
static const char * name
Definition pugl.h:1582
SMTG_EXPORT_SYMBOL Steinberg::IPluginFactory *PLUGIN_API GetPluginFactory()
Steinberg::IPluginFactory *(PLUGIN_API * GetFactoryProc)()
Definition ipluginbase.h:424
struct backing_store_struct * info
Definition jmemsys.h:183
int version
Definition jpeglib.h:901
Definition baseiids.cpp:43
int16 char16
Definition ftypes.h:101
int int32
Definition ftypes.h:50
void str8ToStr16(char16 *dst, const char8 *src, int32 n=-1)
Definition fstrdefs.h:250
char char8
Definition ftypes.h:93
int8 TUID[16]
plain UID type
Definition funknown.h:210
const char8 * FIDString
Definition ftypes.h:117
char16 * strncpy16(char16 *dest, const char16 *source, uint32 count)
Definition fstrdefs.h:228
char8 * strncpy8(char8 *dest, const char8 *source, uint32 count)
Definition fstrdefs.h:227
int32 tresult
Definition ftypes.h:76
unsigned int uint32
Definition ftypes.h:51
Definition ipluginbase.h:187
char8 version[kVersionSize]
Version string (e.g. "1.0.0.512" with Major.Minor.Subversion.Build).
Definition ipluginbase.h:203
char8 name[PClassInfo::kNameSize]
class name, visible to the user
Definition ipluginbase.h:192
char8 category[PClassInfo::kCategorySize]
class category, host uses this to categorize interfaces
Definition ipluginbase.h:191
PClassInfo2()
Definition ipluginbase.h:243
TUID cid
Class ID 16 Byte class GUID.
Definition ipluginbase.h:189
uint32 classFlags
flags used for a specific category, must be defined where category is defined
Definition ipluginbase.h:200
int32 cardinality
cardinality of the class, set to kManyInstances (see PClassInfo::ClassCardinality)
Definition ipluginbase.h:190
char8 sdkVersion[kVersionSize]
SDK version used to build this class (e.g. "VST 3.0").
Definition ipluginbase.h:204
@ kVendorSize
Definition ipluginbase.h:195
@ kSubCategoriesSize
Definition ipluginbase.h:197
@ kVersionSize
Definition ipluginbase.h:196
char8 vendor[kVendorSize]
overwrite vendor information from factory info
Definition ipluginbase.h:202
PClassInfo2(const TUID _cid, int32 _cardinality, const char8 *_category, const char8 *_name, int32 _classFlags, const char8 *_subCategories, const char8 *_vendor, const char8 *_version, const char8 *_sdkVersion)
Definition ipluginbase.h:208
char8 subCategories[kSubCategoriesSize]
module specific subcategories, can be more than one, logically added by the OR operator
Definition ipluginbase.h:201
Definition ipluginbase.h:107
int32 cardinality
cardinality of the class, set to kManyInstances (see ClassCardinality)
Definition ipluginbase.h:121
PClassInfo()
Definition ipluginbase.h:139
PClassInfo(const TUID _cid, int32 _cardinality, const char8 *_category, const char8 *_name)
Definition ipluginbase.h:126
TUID cid
Class ID 16 Byte class GUID.
Definition ipluginbase.h:120
@ kNameSize
Definition ipluginbase.h:117
@ kCategorySize
Definition ipluginbase.h:116
char8 category[kCategorySize]
class category, host uses this to categorize interfaces
Definition ipluginbase.h:122
ClassCardinality
Definition ipluginbase.h:110
@ kManyInstances
Definition ipluginbase.h:111
char8 name[kNameSize]
class name, visible to the user
Definition ipluginbase.h:123
Definition ipluginbase.h:271
@ kVendorSize
Definition ipluginbase.h:279
@ kVersionSize
Definition ipluginbase.h:280
@ kSubCategoriesSize
Definition ipluginbase.h:281
void fromAscii(const PClassInfo2 &ci2)
Definition ipluginbase.h:329
char16 name[PClassInfo::kNameSize]
see PClassInfo
Definition ipluginbase.h:276
char16 sdkVersion[kVersionSize]
SDK version used to build this class (e.g. "VST 3.0").
Definition ipluginbase.h:288
uint32 classFlags
flags used for a specific category, must be defined where category is defined
Definition ipluginbase.h:284
char16 version[kVersionSize]
Version string (e.g. "1.0.0.512" with Major.Minor.Subversion.Build).
Definition ipluginbase.h:287
PClassInfoW()
Definition ipluginbase.h:326
char8 subCategories[kSubCategoriesSize]
module specific subcategories, can be more than one, logically added by the OR operator
Definition ipluginbase.h:285
char8 category[PClassInfo::kCategorySize]
see PClassInfo
Definition ipluginbase.h:275
char16 vendor[kVendorSize]
overwrite vendor information from factory info
Definition ipluginbase.h:286
PClassInfoW(const TUID _cid, int32 _cardinality, const char8 *_category, const char16 *_name, int32 _classFlags, const char8 *_subCategories, const char16 *_vendor, const char16 *_version, const char16 *_sdkVersion)
Definition ipluginbase.h:291
TUID cid
see PClassInfo
Definition ipluginbase.h:273
int32 cardinality
see PClassInfo
Definition ipluginbase.h:274
Definition ipluginbase.h:61
int32 flags
(see above)
Definition ipluginbase.h:83
PFactoryInfo()
Definition ipluginbase.h:98
FactoryFlags
Definition ipluginbase.h:64
@ kNoFlags
Nothing.
Definition ipluginbase.h:65
@ kLicenseCheck
Class IDs of components are interpreted as Syncrosoft-License (LICENCE_UID). Loaded in a Steinberg ho...
Definition ipluginbase.h:67
@ kUnicode
Components have entirely unicode encoded strings. (True for VST 3 plug-ins so far).
Definition ipluginbase.h:69
@ kComponentNonDiscardable
Component will not be unloaded until process exit.
Definition ipluginbase.h:68
@ kClassesDiscardable
The number of exported classes can change each time the Module is loaded. If this flag is set,...
Definition ipluginbase.h:66
PFactoryInfo(const char8 *_vendor, const char8 *_url, const char8 *_email, int32 _flags)
Definition ipluginbase.h:85
char8 email[kEmailSize]
e.g. "info@steinberg.de"
Definition ipluginbase.h:82
char8 url[kURLSize]
e.g. "http://www.steinberg.de"
Definition ipluginbase.h:81
char8 vendor[kNameSize]
e.g. "Steinberg Media Technologies"
Definition ipluginbase.h:80
@ kURLSize
Definition ipluginbase.h:74
@ kNameSize
Definition ipluginbase.h:76
@ kEmailSize
Definition ipluginbase.h:75
memcpy(hh, h, RAND_HEAD_LEN)