Interface Technology Basics VST 3.7
SDK for developing VST plug-in
Steinberg Namespace Reference

This header provides classes for working with FUnknown. More...

Namespaces

namespace  FUnknownImpl
 
namespace  FUnknownPrivate
 
namespace  GeoConstants
 
namespace  KeyCodes
 Utility functions to handle key-codes.
 
namespace  Linux
 
namespace  U
 Shortcut namespace for implementing FUnknown based objects.
 

Classes

class  ConstStringTable
 Constant unicode string table. More...
 
struct  FReleaser
 Release an interface using automatic object (obsolete). More...
 
class  FUID
 Handling 16 Byte Globally Unique Identifiers. More...
 
class  FUnknown
 The basic interface of all interfaces. More...
 
class  FUnknownPtr
 FUnknownPtr - automatic interface conversion and smart pointer in one. More...
 
class  FVariant
 A Value of variable type. More...
 
class  IAttributes
 Object Data Archive Interface. More...
 
class  IAttributes2
 Extended access to Attributes; supports Attribute retrieval via iteration. More...
 
class  IBStream
 Base class for streams. More...
 
class  ICloneable
 Interface allowing an object to be copied. More...
 
class  IDependent
 A dependent will get notified about changes of a model. More...
 
class  IErrorContext
 Interface for error handling. More...
 
class  IPersistent
 Persistent Object Interface. More...
 
class  IPlugFrame
 Callback interface passed to IPlugView. More...
 
class  IPluginBase
 Basic interface to a plug-in component: IPluginBase. More...
 
class  IPluginCompatibility
 optional interface to query the compatibility of the plug-ins classes More...
 
class  IPluginFactory
 Class factory that any plug-in defines for creating class instances: IPluginFactory. More...
 
class  IPluginFactory2
 Version 2 of class factory supporting PClassInfo2: IPluginFactory2. More...
 
class  IPluginFactory3
 Version 3 of class factory supporting PClassInfoW: IPluginFactory3. More...
 
class  IPlugView
 Plug-in definition of a view. More...
 
class  IPlugViewContentScaleSupport
 Plug-in view content scale support. More...
 
class  IPtr
 IPtr - Smart pointer template class. More...
 
class  ISizeableStream
 Stream with a size. More...
 
class  IString
 Interface to a string of variable size and encoding. More...
 
class  IStringResult
 Interface to return an ascii string of variable size. More...
 
class  IUpdateHandler
 Host implements dependency handling for plugins. More...
 
struct  KeyCode
 Simple data-struct representing a key-stroke on the keyboard. More...
 
class  OPtr
 OPtr - "owning" smart pointer used for newly created FObjects. More...
 
struct  PClassInfo
 Basic Information about a class provided by the plug-in. More...
 
struct  PClassInfo2
 Version 2 of Basic Information about a class provided by the plug-in. More...
 
struct  PClassInfoW
 Unicode Version of Basic Information about a class provided by the plug-in. More...
 
struct  PFactoryInfo
 Basic Information about the class factory of the plug-in. More...
 
class  UString
 UTF-16 string class without buffer management. More...
 
class  UStringBuffer
 UTF-16 string with fixed buffer size. More...
 
struct  ViewRect
 Graphical rectangle structure. More...
 

Typedefs

typedef char int8
 
typedef uint8_t uint8
 
typedef unsigned char uchar
 
typedef int16_t int16
 
typedef uint16_t uint16
 
typedef int32_t int32
 
typedef uint32_t uint32
 
typedef int64_t int64
 
typedef uint64_t uint64
 
typedef int64 TSize
 
typedef int32 tresult
 
typedef uint64 TPtrInt
 
typedef uint8 TBool
 
typedef char char8
 
typedef char16_t char16
 
typedef char16 char
 
typedef const char8CStringA
 
typedef const char16CStringW
 
typedef const charCString
 
typedef const char8FIDString
 
typedef int32 UCoord
 Coordinates. More...
 
typedef int64 LARGE_INT
 
typedef char TUID[16]
 plain UID type More...
 
typedef FIDString IAttrID
 
typedef uint32 ColorSpec
 
typedef uint8 ColorComponent
 
typedef ColorSpec UColorSpec
 
typedef ColorComponent UColorComponent
 
typedef UStringBuffer< 128 > UString128
 128 character UTF-16 string More...
 
typedef UStringBuffer< 256 > UString256
 256 character UTF-16 string More...
 

Enumerations

enum  {
  kNoInterface = -1 , kResultOk , kResultTrue = kResultOk , kResultFalse ,
  kInvalidArgument , kNotImplemented , kInternalError , kNotInitialized ,
  kOutOfMemory
}
 
enum  Direction {
  kNorth , kNorthEast , kEast , kSouthEast ,
  kSouth , kSouthWest , kWest , kNorthWest ,
  kNoDirection , kNumberOfDirections
}
 
enum  Orientation { kHorizontal , kVertical , kNumberOfOrientations }
 
enum  VirtualKeyCodes {
  KEY_BACK = 1 , KEY_TAB , KEY_CLEAR , KEY_RETURN ,
  KEY_PAUSE , KEY_ESCAPE , KEY_SPACE , KEY_NEXT ,
  KEY_END , KEY_HOME , KEY_LEFT , KEY_UP ,
  KEY_RIGHT , KEY_DOWN , KEY_PAGEUP , KEY_PAGEDOWN ,
  KEY_SELECT , KEY_PRINT , KEY_ENTER , KEY_SNAPSHOT ,
  KEY_INSERT , KEY_DELETE , KEY_HELP , KEY_NUMPAD0 ,
  KEY_NUMPAD1 , KEY_NUMPAD2 , KEY_NUMPAD3 , KEY_NUMPAD4 ,
  KEY_NUMPAD5 , KEY_NUMPAD6 , KEY_NUMPAD7 , KEY_NUMPAD8 ,
  KEY_NUMPAD9 , KEY_MULTIPLY , KEY_ADD , KEY_SEPARATOR ,
  KEY_SUBTRACT , KEY_DECIMAL , KEY_DIVIDE , KEY_F1 ,
  KEY_F2 , KEY_F3 , KEY_F4 , KEY_F5 ,
  KEY_F6 , KEY_F7 , KEY_F8 , KEY_F9 ,
  KEY_F10 , KEY_F11 , KEY_F12 , KEY_NUMLOCK ,
  KEY_SCROLL , KEY_SHIFT , KEY_CONTROL , KEY_ALT ,
  KEY_EQUALS , KEY_CONTEXTMENU , KEY_MEDIA_PLAY , KEY_MEDIA_STOP ,
  KEY_MEDIA_PREV , KEY_MEDIA_NEXT , KEY_VOLUME_UP , KEY_VOLUME_DOWN ,
  KEY_F13 , KEY_F14 , KEY_F15 , KEY_F16 ,
  KEY_F17 , KEY_F18 , KEY_F19 , KEY_F20 ,
  KEY_F21 , KEY_F22 , KEY_F23 , KEY_F24 ,
  KEY_SUPER , VKEY_FIRST_CODE = KEY_BACK , VKEY_LAST_CODE = KEY_SUPER , VKEY_FIRST_ASCII = 128
}
 Virtual Key Codes. More...
 
enum  KeyModifier { kShiftKey = 1 << 0 , kAlternateKey = 1 << 1 , kCommandKey = 1 << 2 , kControlKey = 1 << 3 }
 OS-independent enumeration of virtual modifier-codes. More...
 
enum  StandardColor {
  kBlack = 0 , kWhite , kGray5 , kGray10 ,
  kGray20 , kGray30 , kGray40 , kGray50 ,
  kGray60 , kGray70 , kGray80 , kGray90 ,
  kRed , kLtRed , kDkRed , kGreen ,
  kLtGreen , kDkGreen , kBlue , kLtBlue ,
  kDkBlue , kMagenta , kLtMagenta , kDkMagenta ,
  kYellow , kLtYellow , kDkYellow , kOrange ,
  kLtOrange , kDkOrange , kGold , kBlack50 ,
  kBlack70 , kNumStandardColors , kLtGray = kGray20 , kGray = kGray50 ,
  kDkGray = kGray70
}
 

Functions

template<class T >
int32 _tstrlen (const T *wcs)
 
int32 tstrlen (const char *str)
 
int32 strlen8 (const char8 *str)
 
int32 strlen16 (const char16 *str)
 
template<class T >
int32 _tstrcmp (const T *src, const T *dst)
 
int32 tstrcmp (const char *src, const char *dst)
 
int32 strcmp8 (const char8 *src, const char8 *dst)
 
int32 strcmp16 (const char16 *src, const char16 *dst)
 
template<typename T >
int32 strcmpT (const T *first, const T *last)
 
template<>
int32 strcmpT< char8 > (const char8 *first, const char8 *last)
 
template<>
int32 strcmpT< char16 > (const char16 *first, const char16 *last)
 
template<class T >
int32 _tstrncmp (const T *first, const T *last, uint32 count)
 
int32 tstrncmp (const char *first, const char *last, uint32 count)
 
int32 strncmp8 (const char8 *first, const char8 *last, uint32 count)
 
int32 strncmp16 (const char16 *first, const char16 *last, uint32 count)
 
template<typename T >
int32 strncmpT (const T *first, const T *last, uint32 count)
 
template<>
int32 strncmpT< char8 > (const char8 *first, const char8 *last, uint32 count)
 
template<>
int32 strncmpT< char16 > (const char16 *first, const char16 *last, uint32 count)
 
template<class T >
T * _tstrcpy (T *dst, const T *src)
 
chartstrcpy (char *dst, const char *src)
 
char8strcpy8 (char8 *dst, const char8 *src)
 
char16strcpy16 (char16 *dst, const char16 *src)
 
template<class T >
T * _tstrncpy (T *dest, const T *source, uint32 count)
 
chartstrncpy (char *dest, const char *source, uint32 count)
 
char8strncpy8 (char8 *dest, const char8 *source, uint32 count)
 
char16strncpy16 (char16 *dest, const char16 *source, uint32 count)
 
template<class T >
T * _tstrcat (T *dst, const T *src)
 
chartstrcat (char *dst, const char *src)
 
char8strcat8 (char8 *dst, const char8 *src)
 
char16strcat16 (char16 *dst, const char16 *src)
 
void str8ToStr16 (char16 *dst, const char8 *src, int32 n=-1)
 
bool FIDStringsEqual (FIDString id1, FIDString id2)
 
bool strEmpty (const char *str)
 
bool str8Empty (const char8 *str)
 
bool str16Empty (const char16 *str)
 
template<typename T >
const TUIDgetTUID ()
 
template<class T >
const T & Min (const T &a, const T &b)
 
template<class T >
const T & Max (const T &a, const T &b)
 
template<class T >
Abs (const T &value)
 
template<class T >
Sign (const T &value)
 
template<class T >
Bound (T minval, T maxval, T x)
 
template<class T >
void Swap (T &t1, T &t2)
 
template<class T >
bool IsApproximateEqual (T t1, T t2, T epsilon)
 
template<class T >
ToNormalized (const T &value, const int32 numSteps)
 
template<class T >
int32 FromNormalized (const T &norm, const int32 numSteps)
 
bool operator== (const FVariant &v1, const FVariant &v2)
 
bool operator!= (const FVariant &v1, const FVariant &v2)
 
SMTG_CONSTEXPR14 char VirtualKeyCodeToChar (uint8 vKey)
 
SMTG_CONSTEXPR14 uint8 CharToVirtualKeyCode (char character)
 
template<class I >
IPtr< I > owned (I *p)
 Assigning newly created object to an IPtr. More...
 
template<class I >
IPtr< I > shared (I *p)
 Assigning shared object to an IPtr. More...
 
SMTG_CONSTEXPR ColorSpec MakeColorSpec (ColorComponent r, ColorComponent g, ColorComponent b)
 Create color specifier with RGB values (alpha is opaque) More...
 
SMTG_CONSTEXPR ColorSpec MakeColorSpec (ColorComponent r, ColorComponent g, ColorComponent b, ColorComponent a)
 Create color specifier with RGBA values
More...
 
SMTG_CONSTEXPR ColorComponent GetBlue (ColorSpec cs)
 
SMTG_CONSTEXPR ColorComponent GetGreen (ColorSpec cs)
 
SMTG_CONSTEXPR ColorComponent GetRed (ColorSpec cs)
 
SMTG_CONSTEXPR ColorComponent GetAlpha (ColorSpec cs)
 
void SetBlue (ColorSpec &argb, ColorComponent b)
 
void SetGreen (ColorSpec &argb, ColorComponent g)
 
void SetRed (ColorSpec &argb, ColorComponent r)
 
void SetAlpha (ColorSpec &argb, ColorComponent a)
 
double NormalizeColorComponent (ColorComponent c)
 Normalized color components. More...
 
ColorComponent DenormalizeColorComponent (double c)
 
void SetAlphaNorm (ColorSpec &argb, double a)
 
double GetAlphaNorm (ColorSpec cs)
 
double NormalizeAlpha (uint8 alpha)
 
ColorComponent DenormalizeAlpha (double alphaNorm)
 
ColorSpec StripAlpha (ColorSpec argb)
 } More...
 
ColorSpec SMTG_CONSTEXPR BlendColor (ColorSpec color, double opacity)
 
template<class TDstChar , class TSrcChar >
void StringCopy (TDstChar *dst, int32 dstSize, const TSrcChar *src, int32 srcSize=-1)
 Copy strings of different character width. More...
 
template<class TSrcChar >
int32 StringLength (const TSrcChar *src, int32 srcSize=-1)
 Find length of null-terminated string, i.e. More...
 

Variables

const FIDString kPlatformStringWin = "WIN"
 
const FIDString kPlatformStringMac = "MAC"
 
const FIDString kPlatformStringIOS = "IOS"
 
const FIDString kPlatformStringLinux = "Linux"
 
const FIDString kPlatformString = kPlatformStringLinux
 
const FIDString kPlatformTypeHWND = "HWND"
 The parent parameter in IPlugView::attached() is a HWND handle. More...
 
const FIDString kPlatformTypeHIView = "HIView"
 The parent parameter in IPlugView::attached() is a WindowRef. More...
 
const FIDString kPlatformTypeNSView = "NSView"
 The parent parameter in IPlugView::attached() is a NSView pointer. More...
 
const FIDString kPlatformTypeUIView = "UIView"
 The parent parameter in IPlugView::attached() is a UIView pointer. More...
 
const FIDString kPlatformTypeX11EmbedWindowID = "X11EmbedWindowID"
 The parent parameter in IPlugView::attached() is a X11 Window supporting XEmbed. More...
 

Detailed Description

This header provides classes for working with FUnknown.

An interface which shall support Steinbergs Module Architecture should inherit from U::Unknown and provide a typedef IID of type U::UID.

On OS X you can generate an U::UID and copy it to the clipboard with the following shell command:

uuidgen | { read id; echo -n "using IID = U::UID<0x${id:0:8}, 0x${id:9:4}${id:14:4}, 0x${id:19:4}${id:24:4}, 0x${id:28:8}>;" ; } | pbcopy

Example:

struct IFoo : public U::Unknown
{
// Use a generated random uid here.
virtual void bar () = 0;
};
A base class which hides the FUnknown::iid static var.
Definition: funknownimpl.h:150
This class provides a compile-time uid and enables interfaces to specify a UID as a simple typedef.
Definition: funknownimpl.h:174

A class implementing the interface IFoo uses the U::Implements template to specify the interfaces it implements. All interfaces which the class should derive from need to be listed in the U::Directly template.

Example:

struct FooImpl : public U::Implements<U::Directly<IFoo>>
{
void bar () override {}
};
ImplementsImpl< Detail::QueryInterfaceEnd< Detail::RefCounted >, D, I > Implements
This typedef provides the interface implementation.
Definition: funknownimpl.h:443

To check if a class can provide a specific interface use the U::cast function.

Example:

void test (U::Unknown* obj)
{
if (auto foo = U::cast<IFoo> (obj))
{
// obj provided IFoo
}
}

The U::Implements class supports a second template parameter U::Indirectly for specifying a list of interfaces which should be available via queryInterface but not inherited from. This is useful if an interface extends another interface.

Example:

struct IBar : public IFoo
{
virtual void baz () = 0;
};
struct BarImpl : public U::Implements<U::Directly<IBar>, U::Indirectly<IFoo>>
{
void bar () override {}
void baz () override {}
};

In some cases a class shall be extended and an additional interface implemented. This is possible with the U::Extends template which is a generalization of the U::Implements template and allows specifying a base class from which should be inherited.

Example:

struct ITest : public U::Unknown
{
virtual bool equal (int a, int b) const = 0;
};
struct TestImpl : public U::Extends<FooImpl, U::Directly<ITest>>
{
bool equal (int a, int b) const override { return a == b; }
};
ImplementsImpl< BaseClass, D, I > Extends
This typedef enables using a custom base class with the interface implementation.
Definition: funknownimpl.h:439

To pass arbitrary arguments to the specified base class one can use the inherited Base typedef. All arguments passed to Base are automatically perfectly forwarded to the base class.

In the following example the value 42 is passed to the AlternativeFooImpl base class:

struct AlternativeFooImpl : public U::Implements<U::Directly<IFoo>>
{
AlternativeFooImpl (int dummy = 0) : dummy {dummy} {}
void bar () override {}
int dummy;
};
struct AlternativeTestImpl : public U::Extends<AlternativeFooImpl, U::Directly<ITest>>
{
AlternativeTestImpl () : Base {42} {}
bool equal (int a, int b) const override { return a == b; }
};

Typedef Documentation

◆ int8

typedef char int8

◆ uint8

typedef uint8_t uint8

◆ uchar

typedef unsigned char uchar

◆ int16

typedef int16_t int16

◆ uint16

typedef uint16_t uint16

◆ int32

typedef int32_t int32

◆ uint32

typedef uint32_t uint32

◆ int64

typedef int64_t int64

◆ uint64

typedef uint64_t uint64

◆ TSize

typedef int64 TSize

◆ tresult

typedef int32 tresult

◆ TPtrInt

typedef uint64 TPtrInt

◆ TBool

typedef uint8 TBool

◆ char8

typedef char char8

◆ char16

typedef char16_t char16

◆ char

typedef char16 char

◆ CStringA

typedef const char8* CStringA

◆ CStringW

typedef const char16* CStringW

◆ CString

typedef const char* CString

◆ FIDString

typedef const char8* FIDString

◆ UCoord

typedef int32 UCoord

Coordinates.

◆ LARGE_INT

typedef int64 LARGE_INT

◆ TUID

typedef char TUID[16]

plain UID type

◆ IAttrID

typedef FIDString IAttrID

◆ ColorSpec

typedef uint32 ColorSpec

◆ ColorComponent

◆ UColorSpec

◆ UColorComponent

◆ UString128

typedef UStringBuffer<128> UString128

128 character UTF-16 string

◆ UString256

typedef UStringBuffer<256> UString256

256 character UTF-16 string

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
kNoInterface 
kResultOk 
kResultTrue 
kResultFalse 
kInvalidArgument 
kNotImplemented 
kInternalError 
kNotInitialized 
kOutOfMemory 

◆ Direction

enum Direction
Enumerator
kNorth 
kNorthEast 
kEast 
kSouthEast 
kSouth 
kSouthWest 
kWest 
kNorthWest 
kNoDirection 
kNumberOfDirections 

◆ Orientation

Enumerator
kHorizontal 
kVertical 
kNumberOfOrientations 

◆ VirtualKeyCodes

Virtual Key Codes.

OS-independent enumeration of virtual keycodes.

Enumerator
KEY_BACK 
KEY_TAB 
KEY_CLEAR 
KEY_RETURN 
KEY_PAUSE 
KEY_ESCAPE 
KEY_SPACE 
KEY_NEXT 
KEY_END 
KEY_HOME 
KEY_LEFT 
KEY_UP 
KEY_RIGHT 
KEY_DOWN 
KEY_PAGEUP 
KEY_PAGEDOWN 
KEY_SELECT 
KEY_PRINT 
KEY_ENTER 
KEY_SNAPSHOT 
KEY_INSERT 
KEY_DELETE 
KEY_HELP 
KEY_NUMPAD0 
KEY_NUMPAD1 
KEY_NUMPAD2 
KEY_NUMPAD3 
KEY_NUMPAD4 
KEY_NUMPAD5 
KEY_NUMPAD6 
KEY_NUMPAD7 
KEY_NUMPAD8 
KEY_NUMPAD9 
KEY_MULTIPLY 
KEY_ADD 
KEY_SEPARATOR 
KEY_SUBTRACT 
KEY_DECIMAL 
KEY_DIVIDE 
KEY_F1 
KEY_F2 
KEY_F3 
KEY_F4 
KEY_F5 
KEY_F6 
KEY_F7 
KEY_F8 
KEY_F9 
KEY_F10 
KEY_F11 
KEY_F12 
KEY_NUMLOCK 
KEY_SCROLL 
KEY_SHIFT 
KEY_CONTROL 
KEY_ALT 
KEY_EQUALS 
KEY_CONTEXTMENU 
KEY_MEDIA_PLAY 
KEY_MEDIA_STOP 
KEY_MEDIA_PREV 
KEY_MEDIA_NEXT 
KEY_VOLUME_UP 
KEY_VOLUME_DOWN 
KEY_F13 
KEY_F14 
KEY_F15 
KEY_F16 
KEY_F17 
KEY_F18 
KEY_F19 
KEY_F20 
KEY_F21 
KEY_F22 
KEY_F23 
KEY_F24 
KEY_SUPER 
VKEY_FIRST_CODE 
VKEY_LAST_CODE 
VKEY_FIRST_ASCII 

◆ KeyModifier

OS-independent enumeration of virtual modifier-codes.

Enumerator
kShiftKey 

same on Windows and macOS

kAlternateKey 

same on Windows and macOS

kCommandKey 

Windows: ctrl key; macOS: cmd key.

kControlKey 

Windows: win key, macOS: ctrl key.

◆ StandardColor

Enumerator
kBlack 
kWhite 
kGray5 
kGray10 
kGray20 
kGray30 
kGray40 
kGray50 
kGray60 
kGray70 
kGray80 
kGray90 
kRed 
kLtRed 
kDkRed 
kGreen 
kLtGreen 
kDkGreen 
kBlue 
kLtBlue 
kDkBlue 
kMagenta 
kLtMagenta 
kDkMagenta 
kYellow 
kLtYellow 
kDkYellow 
kOrange 
kLtOrange 
kDkOrange 
kGold 
kBlack50 
kBlack70 
kNumStandardColors 
kLtGray 
kGray 
kDkGray 

Function Documentation

◆ _tstrlen()

int32 Steinberg::_tstrlen ( const T *  wcs)
inline

◆ tstrlen()

int32 Steinberg::tstrlen ( const char str)
inline

◆ strlen8()

int32 Steinberg::strlen8 ( const char8 str)
inline

◆ strlen16()

int32 Steinberg::strlen16 ( const char16 str)
inline

◆ _tstrcmp()

int32 Steinberg::_tstrcmp ( const T *  src,
const T *  dst 
)
inline

◆ tstrcmp()

int32 Steinberg::tstrcmp ( const char src,
const char dst 
)
inline

◆ strcmp8()

int32 Steinberg::strcmp8 ( const char8 src,
const char8 dst 
)
inline

◆ strcmp16()

int32 Steinberg::strcmp16 ( const char16 src,
const char16 dst 
)
inline

◆ strcmpT()

int32 Steinberg::strcmpT ( const T *  first,
const T *  last 
)
inline

◆ strcmpT< char8 >()

int32 Steinberg::strcmpT< char8 > ( const char8 first,
const char8 last 
)
inline

◆ strcmpT< char16 >()

int32 Steinberg::strcmpT< char16 > ( const char16 first,
const char16 last 
)
inline

◆ _tstrncmp()

int32 Steinberg::_tstrncmp ( const T *  first,
const T *  last,
uint32  count 
)
inline

◆ tstrncmp()

int32 Steinberg::tstrncmp ( const char first,
const char last,
uint32  count 
)
inline

◆ strncmp8()

int32 Steinberg::strncmp8 ( const char8 first,
const char8 last,
uint32  count 
)
inline

◆ strncmp16()

int32 Steinberg::strncmp16 ( const char16 first,
const char16 last,
uint32  count 
)
inline

◆ strncmpT()

int32 Steinberg::strncmpT ( const T *  first,
const T *  last,
uint32  count 
)
inline

◆ strncmpT< char8 >()

int32 Steinberg::strncmpT< char8 > ( const char8 first,
const char8 last,
uint32  count 
)
inline

◆ strncmpT< char16 >()

int32 Steinberg::strncmpT< char16 > ( const char16 first,
const char16 last,
uint32  count 
)
inline

◆ _tstrcpy()

T * Steinberg::_tstrcpy ( T *  dst,
const T *  src 
)
inline

◆ tstrcpy()

char * Steinberg::tstrcpy ( char dst,
const char src 
)
inline

◆ strcpy8()

char8 * Steinberg::strcpy8 ( char8 dst,
const char8 src 
)
inline

◆ strcpy16()

char16 * Steinberg::strcpy16 ( char16 dst,
const char16 src 
)
inline

◆ _tstrncpy()

T * Steinberg::_tstrncpy ( T *  dest,
const T *  source,
uint32  count 
)
inline

◆ tstrncpy()

char * Steinberg::tstrncpy ( char dest,
const char source,
uint32  count 
)
inline

◆ strncpy8()

char8 * Steinberg::strncpy8 ( char8 dest,
const char8 source,
uint32  count 
)
inline

◆ strncpy16()

char16 * Steinberg::strncpy16 ( char16 dest,
const char16 source,
uint32  count 
)
inline

◆ _tstrcat()

T * Steinberg::_tstrcat ( T *  dst,
const T *  src 
)
inline

◆ tstrcat()

char * Steinberg::tstrcat ( char dst,
const char src 
)
inline

◆ strcat8()

char8 * Steinberg::strcat8 ( char8 dst,
const char8 src 
)
inline

◆ strcat16()

char16 * Steinberg::strcat16 ( char16 dst,
const char16 src 
)
inline

◆ str8ToStr16()

void Steinberg::str8ToStr16 ( char16 dst,
const char8 src,
int32  n = -1 
)
inline

◆ FIDStringsEqual()

bool Steinberg::FIDStringsEqual ( FIDString  id1,
FIDString  id2 
)
inline

◆ strEmpty()

bool Steinberg::strEmpty ( const char str)
inline

◆ str8Empty()

bool Steinberg::str8Empty ( const char8 str)
inline

◆ str16Empty()

bool Steinberg::str16Empty ( const char16 str)
inline

◆ getTUID()

const TUID & Steinberg::getTUID ( )

◆ Min()

const T & Steinberg::Min ( const T &  a,
const T &  b 
)
inline

◆ Max()

const T & Steinberg::Max ( const T &  a,
const T &  b 
)
inline

◆ Abs()

T Steinberg::Abs ( const T &  value)
inline

◆ Sign()

T Steinberg::Sign ( const T &  value)
inline

◆ Bound()

T Steinberg::Bound ( minval,
maxval,
x 
)
inline

◆ Swap()

void Steinberg::Swap ( T &  t1,
T &  t2 
)

◆ IsApproximateEqual()

bool Steinberg::IsApproximateEqual ( t1,
t2,
epsilon 
)

◆ ToNormalized()

T Steinberg::ToNormalized ( const T &  value,
const int32  numSteps 
)
inline

◆ FromNormalized()

int32 Steinberg::FromNormalized ( const T &  norm,
const int32  numSteps 
)
inline

◆ operator==()

bool Steinberg::operator== ( const FVariant v1,
const FVariant v2 
)
inline

◆ operator!=()

bool Steinberg::operator!= ( const FVariant v1,
const FVariant v2 
)
inline

◆ VirtualKeyCodeToChar()

SMTG_CONSTEXPR14 char Steinberg::VirtualKeyCodeToChar ( uint8  vKey)
inline

◆ CharToVirtualKeyCode()

SMTG_CONSTEXPR14 uint8 Steinberg::CharToVirtualKeyCode ( char  character)
inline

◆ owned()

IPtr< I > Steinberg::owned ( I *  p)

Assigning newly created object to an IPtr.

Example:

IPtr<IPath> path = owned (FHostCreate (IPath, hostClasses));
IPtr - Smart pointer template class.
Definition: smartpointer.h:44
IPtr< I > owned(I *p)
Assigning newly created object to an IPtr.
Definition: smartpointer.h:241

which is a slightly shorter form of writing:

IPtr<IPath> path = OPtr<IPath> (FHostCreate (IPath, hostClasses));
OPtr - "owning" smart pointer used for newly created FObjects.
Definition: smartpointer.h:210

◆ shared()

IPtr< I > Steinberg::shared ( I *  p)

Assigning shared object to an IPtr.

Example:

IPtr<IPath> path = shared (iface.getXY ());
IPtr< I > shared(I *p)
Assigning shared object to an IPtr.
Definition: smartpointer.h:253

◆ MakeColorSpec() [1/2]

SMTG_CONSTEXPR ColorSpec Steinberg::MakeColorSpec ( ColorComponent  r,
ColorComponent  g,
ColorComponent  b 
)
inline

Create color specifier with RGB values (alpha is opaque)

◆ MakeColorSpec() [2/2]

SMTG_CONSTEXPR ColorSpec Steinberg::MakeColorSpec ( ColorComponent  r,
ColorComponent  g,
ColorComponent  b,
ColorComponent  a 
)
inline

Create color specifier with RGBA values

◆ GetBlue()

SMTG_CONSTEXPR ColorComponent Steinberg::GetBlue ( ColorSpec  cs)
inline

◆ GetGreen()

SMTG_CONSTEXPR ColorComponent Steinberg::GetGreen ( ColorSpec  cs)
inline

◆ GetRed()

SMTG_CONSTEXPR ColorComponent Steinberg::GetRed ( ColorSpec  cs)
inline

◆ GetAlpha()

SMTG_CONSTEXPR ColorComponent Steinberg::GetAlpha ( ColorSpec  cs)
inline

◆ SetBlue()

void Steinberg::SetBlue ( ColorSpec argb,
ColorComponent  b 
)
inline

◆ SetGreen()

void Steinberg::SetGreen ( ColorSpec argb,
ColorComponent  g 
)
inline

◆ SetRed()

void Steinberg::SetRed ( ColorSpec argb,
ColorComponent  r 
)
inline

◆ SetAlpha()

void Steinberg::SetAlpha ( ColorSpec argb,
ColorComponent  a 
)
inline

◆ NormalizeColorComponent()

double Steinberg::NormalizeColorComponent ( ColorComponent  c)
inline

Normalized color components.

{

◆ DenormalizeColorComponent()

ColorComponent Steinberg::DenormalizeColorComponent ( double  c)
inline

◆ SetAlphaNorm()

void Steinberg::SetAlphaNorm ( ColorSpec argb,
double  a 
)
inline

◆ GetAlphaNorm()

double Steinberg::GetAlphaNorm ( ColorSpec  cs)
inline

◆ NormalizeAlpha()

double Steinberg::NormalizeAlpha ( uint8  alpha)
inline

◆ DenormalizeAlpha()

ColorComponent Steinberg::DenormalizeAlpha ( double  alphaNorm)
inline

◆ StripAlpha()

ColorSpec Steinberg::StripAlpha ( ColorSpec  argb)
inline

}

◆ BlendColor()

ColorSpec SMTG_CONSTEXPR Steinberg::BlendColor ( ColorSpec  color,
double  opacity 
)
inline

◆ StringCopy()

void Steinberg::StringCopy ( TDstChar *  dst,
int32  dstSize,
const TSrcChar *  src,
int32  srcSize = -1 
)

Copy strings of different character width.

◆ StringLength()

int32 Steinberg::StringLength ( const TSrcChar *  src,
int32  srcSize = -1 
)

Find length of null-terminated string, i.e.

StringLength (L"ABC\0") => 3

Variable Documentation

◆ kPlatformStringWin

const FIDString kPlatformStringWin = "WIN"

◆ kPlatformStringMac

const FIDString kPlatformStringMac = "MAC"

◆ kPlatformStringIOS

const FIDString kPlatformStringIOS = "IOS"

◆ kPlatformStringLinux

const FIDString kPlatformStringLinux = "Linux"

◆ kPlatformString

const FIDString kPlatformString = kPlatformStringLinux

◆ kPlatformTypeHWND

const FIDString kPlatformTypeHWND = "HWND"

The parent parameter in IPlugView::attached() is a HWND handle.

You should attach a child window to it. HWND handle. (Microsoft Windows)

◆ kPlatformTypeHIView

const FIDString kPlatformTypeHIView = "HIView"

The parent parameter in IPlugView::attached() is a WindowRef.

You should attach a HIViewRef to the content view of the window. HIViewRef. (Mac OS X)

◆ kPlatformTypeNSView

const FIDString kPlatformTypeNSView = "NSView"

The parent parameter in IPlugView::attached() is a NSView pointer.

You should attach a NSView to it. NSView pointer. (Mac OS X)

◆ kPlatformTypeUIView

const FIDString kPlatformTypeUIView = "UIView"

The parent parameter in IPlugView::attached() is a UIView pointer.

You should attach an UIView to it. UIView pointer. (iOS)

◆ kPlatformTypeX11EmbedWindowID

const FIDString kPlatformTypeX11EmbedWindowID = "X11EmbedWindowID"

The parent parameter in IPlugView::attached() is a X11 Window supporting XEmbed.

You should attach a Window to it that supports the XEmbed extension. See https://standards.freedesktop.org/xembed-spec/xembed-spec-latest.html X11 Window ID. (X11)

Empty

Copyright © Steinberg Media Technologies GmbH. All Rights Reserved. This documentation is under this license.