Audaspace 1.4.0
A high level audio library.
Loading...
Searching...
No Matches
Specification.h
Go to the documentation of this file.
1/*******************************************************************************
2 * Copyright 2009-2016 Jörg Müller
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 ******************************************************************************/
16
17#pragma once
18
25#include "Audaspace.h"
26
28#define AUD_FORMAT_SIZE(format) (format & 0x0F)
30#define AUD_DEVICE_SAMPLE_SIZE(specs) (specs.channels * (specs.format & 0x0F))
32#define AUD_SAMPLE_SIZE(specs) (specs.channels * sizeof(sample_t))
33
35#define AUD_COMPARE_SPECS(s1, s2) ((s1.rate == s2.rate) && (s1.channels == s2.channels))
36
38#define AUD_CHANNEL_BIT(channel) (0x01 << channel)
39
41
47{
48 FORMAT_INVALID = 0x00,
49 FORMAT_U8 = 0x01,
50 FORMAT_S16 = 0x12,
51 FORMAT_S24 = 0x13,
52 FORMAT_S32 = 0x14,
54 FORMAT_FLOAT64 = 0x28
55};
56
59{
60 CHANNELS_INVALID = 0,
69};
70
73{
74 CHANNEL_FRONT_LEFT = 0,
75 CHANNEL_FRONT_RIGHT,
76 CHANNEL_FRONT_CENTER,
77 CHANNEL_LFE,
78 CHANNEL_REAR_LEFT,
79 CHANNEL_REAR_RIGHT,
80 CHANNEL_REAR_CENTER,
81 CHANNEL_SIDE_LEFT,
82 CHANNEL_SIDE_RIGHT,
83 CHANNEL_MAX
84};
85
91{
92 RATE_INVALID = 0,
93 RATE_8000 = 8000,
94 RATE_16000 = 16000,
95 RATE_11025 = 11025,
96 RATE_22050 = 22050,
97 RATE_32000 = 32000,
98 RATE_44100 = 44100,
99 RATE_48000 = 48000,
100 RATE_88200 = 88200,
101 RATE_96000 = 96000,
102 RATE_192000 = 192000
104
106typedef double SampleRate;
107
109struct Specs
110{
113
116};
117
120{
123
124 union
125 {
126 struct
127 {
130
133 };
134 Specs specs;
135 };
136};
137
The main header file of the library defining the namespace and basic data types.
#define AUD_NAMESPACE_END
Closes the audaspace namespace aud.
Definition: Audaspace.h:119
#define AUD_NAMESPACE_BEGIN
Opens the audaspace namespace aud.
Definition: Audaspace.h:116
double SampleRate
Sample rate type.
Definition: Specification.h:106
DefaultSampleRate
The sample rate tells how many samples are played back within one second.
Definition: Specification.h:91
@ RATE_16000
8000 Hz.
Definition: Specification.h:94
@ RATE_88200
48000 Hz.
Definition: Specification.h:100
@ RATE_32000
22050 Hz.
Definition: Specification.h:97
@ RATE_44100
32000 Hz.
Definition: Specification.h:98
@ RATE_48000
44100 Hz.
Definition: Specification.h:99
@ RATE_22050
11025 Hz.
Definition: Specification.h:96
@ RATE_8000
Invalid sample rate.
Definition: Specification.h:93
@ RATE_11025
16000 Hz.
Definition: Specification.h:95
@ RATE_96000
88200 Hz.
Definition: Specification.h:101
@ RATE_192000
96000 Hz.
Definition: Specification.h:102
Channel
The channel names.
Definition: Specification.h:73
Channels
The channel count.
Definition: Specification.h:59
@ CHANNELS_SURROUND61
5.1 surround sound.
Definition: Specification.h:67
@ CHANNELS_SURROUND5
4 channel surround sound.
Definition: Specification.h:65
@ CHANNELS_SURROUND71
6.1 surround sound.
Definition: Specification.h:68
@ CHANNELS_MONO
Invalid channel count.
Definition: Specification.h:61
@ CHANNELS_SURROUND51
5 channel surround sound.
Definition: Specification.h:66
@ CHANNELS_STEREO
Mono.
Definition: Specification.h:62
@ CHANNELS_STEREO_LFE
Stereo.
Definition: Specification.h:63
@ CHANNELS_SURROUND4
Stereo with LFE channel.
Definition: Specification.h:64
SampleFormat
The format of a sample.
Definition: Specification.h:47
@ FORMAT_U8
Invalid sample format.
Definition: Specification.h:49
@ FORMAT_FLOAT64
4 byte float.
Definition: Specification.h:54
@ FORMAT_S32
3 byte signed integer.
Definition: Specification.h:52
@ FORMAT_FLOAT32
4 byte signed integer.
Definition: Specification.h:53
@ FORMAT_S24
2 byte signed integer.
Definition: Specification.h:51
@ FORMAT_S16
1 byte unsigned byte.
Definition: Specification.h:50
Specification of a sound device.
Definition: Specification.h:120
Channels channels
Channel count.
Definition: Specification.h:132
SampleFormat format
Sample format.
Definition: Specification.h:122
SampleRate rate
Sample rate in Hz.
Definition: Specification.h:129
Specification of a sound source.
Definition: Specification.h:110
SampleRate rate
Sample rate in Hz.
Definition: Specification.h:112
Channels channels
Channel count.
Definition: Specification.h:115