Interface Technology Basics VST 3.7
SDK for developing VST plug-in
|
#include "pluginterfaces/base/fplatform.h"
#include "pluginterfaces/base/ftypes.h"
#include "pluginterfaces/base/smartpointer.h"
#include <cstring>
Classes | |
class | FUID |
Handling 16 Byte Globally Unique Identifiers. More... | |
class | FUnknown |
The basic interface of all interfaces. More... | |
class | FUnknownPtr< I > |
FUnknownPtr - automatic interface conversion and smart pointer in one. More... | |
struct | FReleaser |
Release an interface using automatic object (obsolete). More... | |
Namespaces | |
namespace | Steinberg |
This header provides classes for working with FUnknown. | |
namespace | Steinberg::FUnknownPrivate |
Macros | |
#define | INLINE_UID(l1, l2, l3, l4) |
#define | DECLARE_UID(name, l1, l2, l3, l4) SMTG_CONSTEXPR14 ::Steinberg::TUID name = INLINE_UID (l1, l2, l3, l4); |
#define | EXTERN_UID(name) extern const ::Steinberg::TUID name; |
#define | DECLARE_CLASS_IID(ClassName, l1, l2, l3, l4) static SMTG_CONSTEXPR14 const ::Steinberg::TUID ClassName##_iid = INLINE_UID (l1, l2, l3, l4); |
#define | DEF_CLASS_IID(ClassName) const ::Steinberg::FUID ClassName::iid (ClassName##_iid); |
#define | INLINE_UID_OF(ClassName) ClassName##_iid |
#define | INLINE_UID_FROM_FUID(x) INLINE_UID (x.getLong1 (), x.getLong2 (), x.getLong3 (), x.getLong4 ()) |
#define | DECLARE_FUNKNOWN_METHODS |
#define | DELEGATE_REFCOUNT(ClassName) |
#define | IMPLEMENT_REFCOUNT(ClassName) |
#define | FUNKNOWN_CTOR { __funknownRefCount = 1; } |
#define | FUNKNOWN_DTOR |
#define | QUERY_INTERFACE(iid, obj, InterfaceIID, InterfaceName) |
#define | IMPLEMENT_QUERYINTERFACE(ClassName, InterfaceName, ClassIID) |
#define | IMPLEMENT_FUNKNOWN_METHODS(ClassName, InterfaceName, ClassIID) |
Typedefs | |
typedef int64 | LARGE_INT |
typedef char | TUID[16] |
plain UID type More... | |
Enumerations | |
enum | { kNoInterface = -1 , kResultOk , kResultTrue = kResultOk , kResultFalse , kInvalidArgument , kNotImplemented , kInternalError , kNotInitialized , kOutOfMemory } |
Functions | |
SMTG_ALWAYS_INLINE bool | iidEqual (const void *iid1, const void *iid2) |
int32 | atomicAdd (int32 &var, int32 d) |
template<typename T > | |
const TUID & | getTUID () |
#define INLINE_UID | ( | l1, | |
l2, | |||
l3, | |||
l4 | |||
) |
#define DECLARE_UID | ( | name, | |
l1, | |||
l2, | |||
l3, | |||
l4 | |||
) | SMTG_CONSTEXPR14 ::Steinberg::TUID name = INLINE_UID (l1, l2, l3, l4); |
#define EXTERN_UID | ( | name | ) | extern const ::Steinberg::TUID name; |
#define DECLARE_CLASS_IID | ( | ClassName, | |
l1, | |||
l2, | |||
l3, | |||
l4 | |||
) | static SMTG_CONSTEXPR14 const ::Steinberg::TUID ClassName##_iid = INLINE_UID (l1, l2, l3, l4); |
#define DEF_CLASS_IID | ( | ClassName | ) | const ::Steinberg::FUID ClassName::iid (ClassName##_iid); |
#define INLINE_UID_OF | ( | ClassName | ) | ClassName##_iid |
#define INLINE_UID_FROM_FUID | ( | x | ) | INLINE_UID (x.getLong1 (), x.getLong2 (), x.getLong3 (), x.getLong4 ()) |
#define DECLARE_FUNKNOWN_METHODS |
#define DELEGATE_REFCOUNT | ( | ClassName | ) |
#define IMPLEMENT_REFCOUNT | ( | ClassName | ) |
#define FUNKNOWN_CTOR { __funknownRefCount = 1; } |
#define FUNKNOWN_DTOR |
#define QUERY_INTERFACE | ( | iid, | |
obj, | |||
InterfaceIID, | |||
InterfaceName | |||
) |
#define IMPLEMENT_QUERYINTERFACE | ( | ClassName, | |
InterfaceName, | |||
ClassIID | |||
) |
#define IMPLEMENT_FUNKNOWN_METHODS | ( | ClassName, | |
InterfaceName, | |||
ClassIID | |||
) |