29#ifndef NOMLIB_AUDIO_DEFINITIONS_HPP
30#define NOMLIB_AUDIO_DEFINITIONS_HPP
32#include <nomlib/types.hpp>
43const nom::real32 MIN_VOLUME = 0.0f;
44const nom::real32 MAX_VOLUME = 100.0f;
47const nom::uint32 BUFFER_SIZE = kilobyte(32);
48const nom::size_type TOTAL_NUM_BUFFERS = 32;
49const nom::size_type TOTAL_NUM_MONO_SOURCES = 128;
50const nom::size_type TOTAL_NUM_STEREO_SOURCES = 127;
51const nom::size_type TOTAL_NUM_SOURCES =
52 TOTAL_NUM_MONO_SOURCES + TOTAL_NUM_STEREO_SOURCES;
57 CAPS_UNDEFINED = 0x0000,
59 CAPS_FORMAT_MONO_S8 = 0x1000,
60 CAPS_FORMAT_STEREO_S8 = 0x1002,
61 CAPS_FORMAT_QUAD_S8 = 0x1004,
62 CAPS_FORMAT_51CHN_S8 = 0x1006,
63 CAPS_FORMAT_61CHN_S8 = 0x1008,
64 CAPS_FORMAT_71CHN_S8 = 0x1010,
66 CAPS_FORMAT_MONO_U8 = 0x1100,
67 CAPS_FORMAT_STEREO_U8 = 0x1102,
68 CAPS_FORMAT_QUAD_U8 = 0x1104,
69 CAPS_FORMAT_51CHN_U8 = 0x1106,
70 CAPS_FORMAT_61CHN_U8 = 0x1108,
71 CAPS_FORMAT_71CHN_U8 = 0x1110,
73 CAPS_FORMAT_MONO_S16 = 0x1200,
74 CAPS_FORMAT_STEREO_S16 = 0x1202,
75 CAPS_FORMAT_QUAD_S16 = 0x1204,
76 CAPS_FORMAT_51CHN_S16 = 0x1206,
77 CAPS_FORMAT_61CHN_S16 = 0x1208,
78 CAPS_FORMAT_71CHN_S16 = 0x1210,
80 CAPS_FORMAT_MONO_S24 = 0x1300,
81 CAPS_FORMAT_STEREO_S24 = 0x1302,
82 CAPS_FORMAT_QUAD_S24 = 0x1304,
83 CAPS_FORMAT_51CHN_S24 = 0x1306,
84 CAPS_FORMAT_61CHN_S24 = 0x1308,
85 CAPS_FORMAT_71CHN_S24 = 0x1310,
87 CAPS_FORMAT_MONO_S32 = 0x1400,
88 CAPS_FORMAT_STEREO_S32 = 0x1402,
89 CAPS_FORMAT_QUAD_S32 = 0x1404,
90 CAPS_FORMAT_51CHN_S32 = 0x1406,
91 CAPS_FORMAT_61CHN_S32 = 0x1408,
92 CAPS_FORMAT_71CHN_S32 = 0x1410,
94 CAPS_FORMAT_MONO_FLOAT32 = 0x1500,
95 CAPS_FORMAT_STEREO_FLOAT32 = 0x1502,
96 CAPS_FORMAT_QUAD_R32 = 0x1504,
98 CAPS_FORMAT_MONO_FLOAT64 = 0x1600,
99 CAPS_FORMAT_STEREO_FLOAT64 = 0x1602,
100 CAPS_FORMAT_QUAD_R64 = 0x1604,
109enum AudioSpecFlags: uint32
111 AUDIO_SPEC_UNDEFINED = 0x00000,
116 AUDIO_SPEC_CAPTURE = 0x00200,
130 const char* name =
nullptr;
133 const char* engine =
nullptr;
Abstract base class for an instance of the audio hardware interface.
int sample_rate
The final output audio frequency, specified in Hertz (Hz).
int num_stereo_sources
A request for a specified number of stereo (two channel) sources to be allocated at the time of an au...
bool sync_context
A request to the specified audio context that context processing occurs asynchronously where possible...
int refresh_rate
The update frequency, in Hertz (Hz), of audio context processing.
uint32 flags
One or more bit-masked enumeration values from audio::AudioSpecFlags.
int num_mono_sources
A request for a specific number of mono (one channel) sources to be allocated at the time of an audio...