VAE - Virtual Audio Engine 1
Small Data Driven Audio Engine
vae.hpp File Reference

Contains all public API types for VAE. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  vae::DeviceInfo
 Basic struct describing a audio device. More...
 
struct  vae::Vector3
 Public vae Vector 3 type. More...
 
struct  vae::LocationDirection
 Emitters have a position and direction vector. More...
 
struct  vae::LocationOrientation
 Listener uses additional up vector. More...
 
struct  vae::EventCallbackData
 Struct containing relevant data passed to EventCallback provided in the EngineConfig. More...
 
struct  vae::EngineConfig
 Settings for the engine defined at EnginePimpl::init. More...
 

Namespaces

namespace  vaeb
 Contains generated Event ids using generate_bank_defines.py.
 
namespace  vae
 Contains Typedefinitions and basic structures use by the public API and internally.
 
namespace  vae::StaticConfig
 Contains some fundamental Configuration needed at compile time Dynamic settings are contained in the EngineSettings struct above.
 
namespace  vae::StaticConfig::Speakers
 Placement of the speakers around the listener used for SPCAP panning.
 

Macros

#define VAE_VERSION_MAJOR   0
 
#define VAE_VERSION_MINOR   0
 
#define VAE_VERSION_PATCH   1
 

Typedefs

using vae::Sample = float
 Default sample types used where ever possible, changing this means the engine needs to be recompiled, short and int isn't working, probably needs a few changes in the pipeline. More...
 
using vae::Size = unsigned int
 How the elements are addressed in the heapbuffer. More...
 
using vae::Time = double
 Time sotred in seconds. More...
 
using vae::SmallHandle = unsigned char
 
using vae::GenericHandle = unsigned short
 
using vae::LargeHandle = unsigned int
 
using vae::BankHandle = SmallHandle
 
using vae::EventHandle = GenericHandle
 The handle used to address events within a bank. More...
 
using vae::SourceHandle = GenericHandle
 
using vae::EmitterHandle = LargeHandle
 
using vae::MixerHandle = SmallHandle
 
using vae::ListenerHandle = SmallHandle
 
using vae::GlobalEventHandle = LargeHandle
 Used to globally address events, holds space for BankHandle and EventHandle. More...
 
using vae::GlobalMixerHandle = GenericHandle
 TODO. More...
 
using vae::GlobalParameterHandle = LargeHandle
 TODO. More...
 
using vae::EventCallback = void(*)(const EventCallbackData *)
 

Enumerations

enum class  vae::Result {
  vae::Success = 0 , vae::GenericFailure , vae::BankFormatError , vae::BankFormatIndexError ,
  vae::BankFormatDuplicateIndex , vae::FileOpenError , vae::VoiceStarvation , vae::BankFormatBadMixHirarchy ,
  vae::ElementNotFound , vae::ValidHandleRequired , vae::TooManyRecords , vae::DeviceError ,
  vae::DuplicateEmitter , vae::InvalidBank , vae::InvalidEmitter
}
 Return Types for most engine functions. More...
 
enum class  vae::LogLevel {
  vae::Debug = 0 , vae::Info , vae::Warn , vae::Error ,
  vae::Ciritical
}
 

Variables

constexpr GenericHandle vae::InvalidHandle = ~0
 Since 0 is a valid handle, these are used to identify invalid ones. More...
 
constexpr EventHandle vae::InvalidEventHandle = ~0
 
constexpr SourceHandle vae::InvalidSourceHandle = ~0
 
constexpr BankHandle vae::InvalidBankHandle = ~0
 
constexpr MixerHandle vae::InvalidMixerHandle = ~0
 
constexpr ListenerHandle vae::InvalidListenerHandle = ~0
 
constexpr ListenerHandle vae::AllListeners = (~0) - 1
 Will address all listeners. More...
 
constexpr EmitterHandle vae::InvalidEmitterHandle = ~0
 
constexpr GlobalEventHandle vae::InvalidGlobalEventHandle = InvalidEventHandle | (InvalidBankHandle << (sizeof(EventHandle) * 8))
 
constexpr unsigned char vae::StaticConfig::MaxChannels = 2
 Maximum channel count used to pre allocate buffers. More...
 
constexpr Size vae::StaticConfig::MaxBlock = 512
 Maximum block size. More...
 
constexpr Size vae::StaticConfig::StreamPrefetch = 1024 * 8
 How many Samples to prefetch for streaming sources. More...
 
constexpr Size vae::StaticConfig::MaxListeners = 4
 How many listeners can observe 3D voices. More...
 
constexpr Size vae::StaticConfig::MaxMixerEffects = 4
 How many effects a mixer channel can process. More...
 
constexpr Size vae::StaticConfig::MaxEffectsParameter = 4
 
constexpr Size vae::StaticConfig::MaxChainedEvents = 4
 How many chained events can fit in chain_events on the core::Event structure. More...
 
constexpr Sample vae::StaticConfig::MinVolume = 0.01f
 Minimum volume before sounds will skip rendering. More...
 
constexpr Vector3 vae::StaticConfig::Speakers::center = { 0, 0, -1 }
 Used for mono and souround setups (except quadrophonic) More...
 
constexpr Vector3 vae::StaticConfig::Speakers::left = { -1, 0, 0 }
 Used in 7.1 and Headphones. More...
 
constexpr Vector3 vae::StaticConfig::Speakers::right = { +1, 0, 0 }
 Used in 7.1 and Headphones. More...
 
constexpr Vector3 vae::StaticConfig::Speakers::frontLeft = { +1, 0, -1 }
 Stereo and suround setups. More...
 
constexpr Vector3 vae::StaticConfig::Speakers::frontRight = { +1, 0, -1 }
 Stereo and suround setups. More...
 
constexpr Vector3 vae::StaticConfig::Speakers::rearLeft = { +1, 0, +1 }
 Sourund setups. More...
 
constexpr Vector3 vae::StaticConfig::Speakers::rearRight = { +1, 0, +1 }
 Sourund setups. More...
 

Detailed Description

Contains all public API types for VAE.

Author
Tobias Kozel (t.koz.nosp@m.el@p.nosp@m.m.me)
Version
0.1
Date
2021-11-27

Definition in file vae.hpp.

Macro Definition Documentation

◆ VAE_VERSION_MAJOR

#define VAE_VERSION_MAJOR   0

Definition at line 16 of file vae.hpp.

◆ VAE_VERSION_MINOR

#define VAE_VERSION_MINOR   0

Definition at line 17 of file vae.hpp.

◆ VAE_VERSION_PATCH

#define VAE_VERSION_PATCH   1

Definition at line 18 of file vae.hpp.