Audaspace  1.6.0
A high level audio library.
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)
29 #define AUD_DEVICE_SAMPLE_SIZE(specs) (specs.channels * (specs.format & 0x0F))
31 #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,
53  FORMAT_FLOAT32 = 0x24,
55 };
56 
59 {
60  CHANNELS_INVALID = 0,
69 };
70 
72 enum Channel
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 
87 enum class ResampleQuality
88 {
89  FASTEST = 0,
90  LOW,
91  MEDIUM,
92  HIGH
93 };
94 
100 {
101  RATE_INVALID = 0,
102  RATE_8000 = 8000,
103  RATE_16000 = 16000,
104  RATE_11025 = 11025,
105  RATE_22050 = 22050,
106  RATE_32000 = 32000,
107  RATE_44100 = 44100,
108  RATE_48000 = 48000,
109  RATE_88200 = 88200,
110  RATE_96000 = 96000,
111  RATE_192000 = 192000
112 };
113 
115 typedef double SampleRate;
116 
118 struct Specs
119 {
122 
125 };
126 
129 {
132 
133  union
134  {
135  struct
136  {
139 
142  };
143  Specs specs;
144  };
145 };
146 
SampleRate rate
Sample rate in Hz.
Definition: Specification.h:121
8000 Hz.
Definition: Specification.h:103
#define AUD_NAMESPACE_BEGIN
Opens the audaspace namespace aud.
Definition: Audaspace.h:116
96000 Hz.
Definition: Specification.h:111
Invalid sample format.
Definition: Specification.h:49
DefaultSampleRate
The sample rate tells how many samples are played back within one second.
Definition: Specification.h:99
22050 Hz.
Definition: Specification.h:106
4 byte signed integer.
Definition: Specification.h:53
4 byte float.
Definition: Specification.h:54
Channels
The channel count.
Definition: Specification.h:58
Channels channels
Channel count.
Definition: Specification.h:141
16000 Hz.
Definition: Specification.h:104
Channel
The channel names.
Definition: Specification.h:72
SampleFormat
The format of a sample.
Definition: Specification.h:46
Stereo.
Definition: Specification.h:63
Specification of a sound source.
Definition: Specification.h:118
double SampleRate
Sample rate type.
Definition: Specification.h:115
48000 Hz.
Definition: Specification.h:109
Specification of a sound device.
Definition: Specification.h:128
Stereo with LFE channel.
Definition: Specification.h:64
44100 Hz.
Definition: Specification.h:108
SampleRate rate
Sample rate in Hz.
Definition: Specification.h:138
Channels channels
Channel count.
Definition: Specification.h:124
1 byte unsigned byte.
Definition: Specification.h:50
4 channel surround sound.
Definition: Specification.h:65
JOS resample at medium quality preset.
3 byte signed integer.
Definition: Specification.h:52
5.1 surround sound.
Definition: Specification.h:67
11025 Hz.
Definition: Specification.h:105
ResampleQuality
Resampling algorithm and quality.
Definition: Specification.h:87
#define AUD_NAMESPACE_END
Closes the audaspace namespace aud.
Definition: Audaspace.h:119
6.1 surround sound.
Definition: Specification.h:68
5 channel surround sound.
Definition: Specification.h:66
Linear resample, very fast but lowest quality.
The main header file of the library defining the namespace and basic data types.
2 byte signed integer.
Definition: Specification.h:51
Invalid channel count.
Definition: Specification.h:61
SampleFormat format
Sample format.
Definition: Specification.h:131
88200 Hz.
Definition: Specification.h:110
Invalid sample rate.
Definition: Specification.h:102
JOS resample at low quality preset.
32000 Hz.
Definition: Specification.h:107
Mono.
Definition: Specification.h:62