C++ API Reference RNBO: common/RNBO_Types.h File Reference

RNBO: common/RNBO_Types.h File Reference

Various type aliases used throughout RNBO. More...

#include "RNBO_CompilerMacros.h"
#include "RNBO_Std.h"

Go to the source code of this file.

Data Structures

struct  RNBO::ParameterInfo
 
struct  RNBO::MessageInfo
 

Macros

#define RNBO_NO_DENORM_TEST
 
#define CALL_MEMBER_FN(ptrToObject, ptrToMember)   ((*ptrToObject).*(ptrToMember))
 
#define RNBO_Q(x)   #x
 
#define RNBO_QUOTE(x)   RNBO_Q(x)
 

Typedefs

using RNBO::number = double
 RNBO treats all numbers as double-precision floating point values.
 
using RNBO::SampleValue = double
 RNBO sample values are represented as double-precision floating points.
 
using RNBO::signal = SampleValue *
 a RNBO signal is an array of SampleValues
 
using RNBO::generic = number
 
using RNBO::ParameterValue = number
 the value of a RNBO parameter
 
using RNBO::Sample = SampleValue
 an audio sample value
 
template<size_t L>
using RNBO::SampleArray = Sample *[L]
 a modifiable array of samples More...
 
template<size_t L>
using RNBO::ConstSampleArray = const Sample *[L]
 a read-only array of samples More...
 
using RNBO::MillisecondTime = number
 working with time is usually done in milliseconds
 
using RNBO::Tempo = number
 tempo (BPM) is represented as a floating point
 
using RNBO::BeatTime = number
 time in terms of quarter notes More...
 
using RNBO::Index = size_t
 an index into an array
 
using RNBO::Int = intptr_t
 the integer type for RNBO
 
using RNBO::UInt = uint64_t
 
using RNBO::ParameterIndex = Index
 a parameter identifier
 
using RNBO::MessageIndex = Index
 a message identifier
 
using RNBO::OutletIndex = Index
 an outlet identifier
 
using RNBO::SignalIndex = Index
 an signal identifier
 
using RNBO::SampleIndex = Int
 a sample array index
 
using RNBO::SampleOffset = Int
 used to represent an index offset from some origin
 
using RNBO::ClockId = Int
 a clock identifier
 
using RNBO::ParameterInterfaceId = const void *
 an identifier for a ParameterInterface
 
using RNBO::DataRefIndex = Int
 an index into an external data reference More...
 
using RNBO::ProbingIndex = Int
 an index into the array of signal probes More...
 
using RNBO::ConstCharPointer = const char *
 const pointer to char
 
using RNBO::ConstByteArray = const uint8_t *
 an alias to aid type annotation
 
using RNBO::BinOpInt = int32_t
 a signed integer for bitwise operations
 
using RNBO::UBinOpInt = uint32_t
 an unsigned integer for bitwise operations
 
using RNBO::MessageTag = uint32_t
 a unique identifier for a tag More...
 
using RNBO::MessageTagInfo = const char *
 the human-readable name of an inport or outport
 

Enumerations

enum  TransportState { STOPPED, RUNNING }
 
enum  RNBO::ParameterType {
  RNBO::ParameterTypeNumber = 0, RNBO::ParameterTypeBang, RNBO::ParameterTypeList, RNBO::ParameterTypeSignal,
  ParameterTypeCount
}
 
enum  RNBO::IOType { RNBO::IOTypeInput, RNBO::IOTypeOutput, RNBO::IOTypeUndefined }
 
enum  LogLevel { Info, Warning, Error }
 
enum  RNBO::MessagePortType { RNBO::Inport, RNBO::Outport, RNBO::Undefined }
 

Functions

template<typename T >
T * RNBO::addressOf (T &object)
 
constexpr MessageTag RNBO::TAG (const char *str, MessageTag hash=0)
 Generate a MessageTag from a message name via SDBM hashing. More...
 
constexpr MessageTag RNBO::ID (const char *str)
 

Variables

const Index RNBO::INVALID_INDEX = SIZE_MAX
 

Detailed Description

Various type aliases used throughout RNBO.

Macro Definition Documentation

◆ RNBO_Q

#define RNBO_Q (   x)    #x

Adds quotes within preprocessor macros

Typedef Documentation

◆ BeatTime

time in terms of quarter notes

Beat time is commonly used in conjunction with Ableton Link.

◆ ConstSampleArray

template<size_t L>
typedef const RNBO::Sample * RNBO::ConstSampleArray

a read-only array of samples

Note: templating allows JS code-generation to specify the array size

◆ DataRefIndex

an index into an external data reference

In order to encode additional information (such as the absence of a DataRef), negative values are allowed.

◆ MessageTag

uint32_t RNBO::MessageTag

a unique identifier for a tag

Generated via hashing the message name

◆ ProbingIndex

an index into the array of signal probes

Internal use.

In order to encode additional information, negative values are allowed.

◆ SampleArray

template<size_t L>
typedef RNBO::Sample * RNBO::SampleArray

a modifiable array of samples

Note: templating allows JS code-generation to specify the array size

Enumeration Type Documentation

◆ IOType

Valid types of I/O

Enumerator
IOTypeInput 

input

IOTypeOutput 

output

IOTypeUndefined 

undefined

◆ MessagePortType

Valid message port types

Enumerator
Inport 

an inport

Outport 

an outport

Undefined 

undefined (e.g. for null messages)

◆ ParameterType

Valid types of parameters

Enumerator
ParameterTypeNumber 

a number parameter (e.g. from param)

ParameterTypeBang 

a bang

ParameterTypeList 

unimplemented, placeholder

ParameterTypeSignal 

a signal parameter (e.g. from param~)

Function Documentation

◆ addressOf()

template<typename T >
T* RNBO::addressOf ( T &  object)

Get the address of an object

◆ TAG()

constexpr MessageTag RNBO::TAG ( const char *  str,
MessageTag  hash = 0 
)
constexpr

Generate a MessageTag from a message name via SDBM hashing.

Parameters
strthe message name
hashan initial hash value
Returns
a MessageTag
TAG("test") // = 1195757874