Interface Technology Basics  VST 3.7
SDK for developing VST plug-in
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
Steinberg Namespace Reference

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

Namespaces

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

Classes

class  ConstStringTable
 Constant unicode string table. 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...
 
struct  FReleaser
 Release an interface using automatic object (obsolete). More...
 
class  FVariant
 A Value of variable type. More...
 
class  IBStream
 Base class for streams. More...
 
class  ISizeableStream
 Stream with a size. More...
 
class  ICloneable
 Interface allowing an object to be copied. More...
 
class  IErrorContext
 Interface for error handling. More...
 
class  IPersistent
 Persistent Object Interface. More...
 
class  IAttributes
 Object Data Archive Interface. More...
 
class  IAttributes2
 Extended access to Attributes; supports Attribute retrieval via iteration. More...
 
class  IPluginBase
 Basic interface to a plug-in component: IPluginBase. More...
 
struct  PFactoryInfo
 Basic Information about the class factory of the plug-in. More...
 
struct  PClassInfo
 Basic Information about a class provided by the plug-in. More...
 
class  IPluginFactory
 Class factory that any plug-in defines for creating class instances: IPluginFactory. More...
 
struct  PClassInfo2
 Version 2 of Basic Information about a class provided by the plug-in. More...
 
class  IPluginFactory2
 Version 2 of class factory supporting PClassInfo2: IPluginFactory2. More...
 
struct  PClassInfoW
 Unicode Version of Basic Information about a class provided by the plug-in. More...
 
class  IPluginFactory3
 Version 3 of class factory supporting PClassInfoW: IPluginFactory3. More...
 
class  IPluginCompatibility
 optional interface to query the compatibility of the plug-ins classes More...
 
class  IStringResult
 Interface to return an ascii string of variable size. More...
 
class  IString
 Interface to a string of variable size and encoding. More...
 
class  IUpdateHandler
 Host implements dependency handling for plugins. More...
 
class  IDependent
 A dependent will get notified about changes of a model. More...
 
struct  KeyCode
 Simple data-struct representing a key-stroke on the keyboard. More...
 
class  IPtr
 IPtr - Smart pointer template class. More...
 
class  OPtr
 OPtr - "owning" smart pointer used for newly created FObjects. 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...
 
class  IPlugView
 Plug-in definition of a view. More...
 
class  IPlugFrame
 Callback interface passed to IPlugView. More...
 
class  IPlugViewContentScaleSupport
 Plug-in view content scale support. 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.
 
typedef int64 LARGE_INT
 
typedef char TUID [16]
 plain UID type
 
typedef FIDString IAttrID
 
typedef uint32 ColorSpec
 
typedef uint8 ColorComponent
 
typedef ColorSpec UColorSpec
 
typedef ColorComponent UColorComponent
 
typedef UStringBuffer< 128 > UString128
 128 character UTF-16 string
 
typedef UStringBuffer< 256 > UString256
 256 character UTF-16 string
 

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.
 
template<class I >
IPtr< I > shared (I *p)
 Assigning shared object to an IPtr.
 
SMTG_CONSTEXPR ColorSpec MakeColorSpec (ColorComponent r, ColorComponent g, ColorComponent b)
 Create color specifier with RGB values (alpha is opaque)
 
SMTG_CONSTEXPR ColorSpec MakeColorSpec (ColorComponent r, ColorComponent g, ColorComponent b, ColorComponent a)
 Create color specifier with RGBA values.
 
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.
 
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)
 }
 
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.
 
template<class TSrcChar >
int32 StringLength (const TSrcChar *src, int32 srcSize=-1)
 Find length of null-terminated string, i.e.
 

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.
 
const FIDString kPlatformTypeHIView = "HIView"
 The parent parameter in IPlugView::attached() is a WindowRef.
 
const FIDString kPlatformTypeNSView = "NSView"
 The parent parameter in IPlugView::attached() is a NSView pointer.
 
const FIDString kPlatformTypeUIView = "UIView"
 The parent parameter in IPlugView::attached() is a UIView pointer.
 
const FIDString kPlatformTypeX11EmbedWindowID = "X11EmbedWindowID"
 The parent parameter in IPlugView::attached() is a X11 Window supporting XEmbed.
 

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.
using IID = U::UID<0x01234567, 0x89012345, 0x67890123, 0x45678901>;
virtual void bar () = 0;
};

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 {}
};

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
{
using IID = U::UID<0x11223344, 0x55667788, 0x99001122, 0x33445566>;
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
{
using IID = U::UID<0x99887766, 0x55443322, 0x11009988, 0x77665544>;
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; }
};

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

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 char8* CStringA
typedef const char16* CStringW
typedef const char* CString
typedef const char8* FIDString
typedef int32 UCoord

Coordinates.

typedef int64 LARGE_INT
typedef char TUID[16]

plain UID type

typedef FIDString IAttrID
typedef uint32 ColorSpec
typedef UStringBuffer<128> UString128

128 character UTF-16 string

typedef UStringBuffer<256> UString256

256 character UTF-16 string

Enumeration Type Documentation

anonymous enum
Enumerator
kNoInterface 
kResultOk 
kResultTrue 
kResultFalse 
kInvalidArgument 
kNotImplemented 
kInternalError 
kNotInitialized 
kOutOfMemory 
enum Direction
Enumerator
kNorth 
kNorthEast 
kEast 
kSouthEast 
kSouth 
kSouthWest 
kWest 
kNorthWest 
kNoDirection 
kNumberOfDirections 
Enumerator
kHorizontal 
kVertical 
kNumberOfOrientations 

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 

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.

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

int32 Steinberg::_tstrlen ( const T *  wcs)
inline
int32 Steinberg::tstrlen ( const char *  str)
inline
int32 Steinberg::strlen8 ( const char8 *  str)
inline
int32 Steinberg::strlen16 ( const char16 *  str)
inline
int32 Steinberg::_tstrcmp ( const T *  src,
const T *  dst 
)
inline
int32 Steinberg::tstrcmp ( const char *  src,
const char *  dst 
)
inline
int32 Steinberg::strcmp8 ( const char8 *  src,
const char8 *  dst 
)
inline
int32 Steinberg::strcmp16 ( const char16 *  src,
const char16 *  dst 
)
inline
int32 Steinberg::strcmpT ( const T *  first,
const T *  last 
)
inline
int32 Steinberg::strcmpT< char8 > ( const char8 *  first,
const char8 *  last 
)
inline
int32 Steinberg::strcmpT< char16 > ( const char16 *  first,
const char16 *  last 
)
inline
int32 Steinberg::_tstrncmp ( const T *  first,
const T *  last,
uint32  count 
)
inline
int32 Steinberg::tstrncmp ( const char *  first,
const char *  last,
uint32  count 
)
inline
int32 Steinberg::strncmp8 ( const char8 *  first,
const char8 *  last,
uint32  count 
)
inline
int32 Steinberg::strncmp16 ( const char16 *  first,
const char16 *  last,
uint32  count 
)
inline
int32 Steinberg::strncmpT ( const T *  first,
const T *  last,
uint32  count 
)
inline
int32 Steinberg::strncmpT< char8 > ( const char8 *  first,
const char8 *  last,
uint32  count 
)
inline
int32 Steinberg::strncmpT< char16 > ( const char16 *  first,
const char16 *  last,
uint32  count 
)
inline
T* Steinberg::_tstrcpy ( T *  dst,
const T *  src 
)
inline
char* Steinberg::tstrcpy ( char *  dst,
const char *  src 
)
inline
char8* Steinberg::strcpy8 ( char8 *  dst,
const char8 *  src 
)
inline
char16* Steinberg::strcpy16 ( char16 *  dst,
const char16 *  src 
)
inline
T* Steinberg::_tstrncpy ( T *  dest,
const T *  source,
uint32  count 
)
inline
char* Steinberg::tstrncpy ( char *  dest,
const char *  source,
uint32  count 
)
inline
char8* Steinberg::strncpy8 ( char8 *  dest,
const char8 *  source,
uint32  count 
)
inline
char16* Steinberg::strncpy16 ( char16 *  dest,
const char16 *  source,
uint32  count 
)
inline
T* Steinberg::_tstrcat ( T *  dst,
const T *  src 
)
inline
char* Steinberg::tstrcat ( char *  dst,
const char *  src 
)
inline
char8* Steinberg::strcat8 ( char8 *  dst,
const char8 *  src 
)
inline
char16* Steinberg::strcat16 ( char16 *  dst,
const char16 *  src 
)
inline
void Steinberg::str8ToStr16 ( char16 *  dst,
const char8 *  src,
int32  n = -1 
)
inline
bool Steinberg::FIDStringsEqual ( FIDString  id1,
FIDString  id2 
)
inline
bool Steinberg::strEmpty ( const char *  str)
inline
bool Steinberg::str8Empty ( const char8 *  str)
inline
bool Steinberg::str16Empty ( const char16 *  str)
inline
const TUID& Steinberg::getTUID ( )
const T& Steinberg::Min ( const T &  a,
const T &  b 
)
inline
const T& Steinberg::Max ( const T &  a,
const T &  b 
)
inline
T Steinberg::Abs ( const T &  value)
inline
T Steinberg::Sign ( const T &  value)
inline
T Steinberg::Bound ( minval,
maxval,
x 
)
inline
void Steinberg::Swap ( T &  t1,
T &  t2 
)
bool Steinberg::IsApproximateEqual ( t1,
t2,
epsilon 
)
T Steinberg::ToNormalized ( const T &  value,
const int32  numSteps 
)
inline
int32 Steinberg::FromNormalized ( const T &  norm,
const int32  numSteps 
)
inline
bool Steinberg::operator== ( const FVariant &  v1,
const FVariant &  v2 
)
inline
bool Steinberg::operator!= ( const FVariant &  v1,
const FVariant &  v2 
)
inline
SMTG_CONSTEXPR14 char Steinberg::VirtualKeyCodeToChar ( uint8  vKey)
inline
SMTG_CONSTEXPR14 uint8 Steinberg::CharToVirtualKeyCode ( char  character)
inline
IPtr<I> Steinberg::owned ( I *  p)

Assigning newly created object to an IPtr.

Example:

IPtr<IPath> path = owned (FHostCreate (IPath, hostClasses));

which is a slightly shorter form of writing:

IPtr<IPath> path = OPtr<IPath> (FHostCreate (IPath, hostClasses));
IPtr<I> Steinberg::shared ( I *  p)

Assigning shared object to an IPtr.

Example:

IPtr<IPath> path = shared (iface.getXY ());
SMTG_CONSTEXPR ColorSpec Steinberg::MakeColorSpec ( ColorComponent  r,
ColorComponent  g,
ColorComponent  b 
)
inline

Create color specifier with RGB values (alpha is opaque)

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

Create color specifier with RGBA values.

SMTG_CONSTEXPR ColorComponent Steinberg::GetBlue ( ColorSpec  cs)
inline
SMTG_CONSTEXPR ColorComponent Steinberg::GetGreen ( ColorSpec  cs)
inline
SMTG_CONSTEXPR ColorComponent Steinberg::GetRed ( ColorSpec  cs)
inline
SMTG_CONSTEXPR ColorComponent Steinberg::GetAlpha ( ColorSpec  cs)
inline
void Steinberg::SetBlue ( ColorSpec &  argb,
ColorComponent  b 
)
inline
void Steinberg::SetGreen ( ColorSpec &  argb,
ColorComponent  g 
)
inline
void Steinberg::SetRed ( ColorSpec &  argb,
ColorComponent  r 
)
inline
void Steinberg::SetAlpha ( ColorSpec &  argb,
ColorComponent  a 
)
inline
double Steinberg::NormalizeColorComponent ( ColorComponent  c)
inline

Normalized color components.

{

ColorComponent Steinberg::DenormalizeColorComponent ( double  c)
inline
void Steinberg::SetAlphaNorm ( ColorSpec &  argb,
double  a 
)
inline
double Steinberg::GetAlphaNorm ( ColorSpec  cs)
inline
double Steinberg::NormalizeAlpha ( uint8  alpha)
inline
ColorComponent Steinberg::DenormalizeAlpha ( double  alphaNorm)
inline
ColorSpec Steinberg::StripAlpha ( ColorSpec  argb)
inline

}

ColorSpec SMTG_CONSTEXPR Steinberg::BlendColor ( ColorSpec  color,
double  opacity 
)
inline
void Steinberg::StringCopy ( TDstChar *  dst,
int32  dstSize,
const TSrcChar *  src,
int32  srcSize = -1 
)

Copy strings of different character width.

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

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

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

Variable Documentation

const FIDString kPlatformStringWin = "WIN"
const FIDString kPlatformStringMac = "MAC"
const FIDString kPlatformStringIOS = "IOS"
const FIDString kPlatformStringLinux = "Linux"
const FIDString kPlatformString = kPlatformStringLinux
Empty

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