UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SoundFileIOEnums.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "CoreMinimal.h"
5
6
7namespace Audio
8{
9 namespace ESoundFileError
10 {
32
34 {
35 switch (SoundFileError)
36 {
37 case Type::NONE: return TEXT("NONE");
38 case Type::INVALID_SOUND_FILE: return TEXT("INVALID_SOUND_FILE");
39 case Type::INVALID_SOUND_FILE_HANDLE: return TEXT("INVALID_SOUND_FILE_HANDLE");
40 case Type::BAD_ENCODING_QUALITY: return TEXT("BAD_ENCODING_QUALITY");
41 case Type::FAILED_TO_LOAD_BYTE_DATA: return TEXT("FAILED_TO_LOAD_BYTE_DATA");
42 case Type::ALREADY_OPENED: return TEXT("ALREADY_OPENED");
43 case Type::ALREADY_HAS_DATA: return TEXT("ALREADY_HAS_DATA");
44 case Type::INVALID_DATA: return TEXT("INVALID_DATA");
45 case Type::FILE_DOESNT_EXIST: return TEXT("FILE_DOESNT_EXIST");
46 case Type::INVALID_INPUT_FORMAT: return TEXT("INVALID_INPUT_FORMAT");
47 case Type::INVALID_CHANNEL_MAP: return TEXT("INVALID_CHANNEL_MAP");
48 case Type::FAILED_TO_OPEN: return TEXT("FAILED_TO_OPEN");
49 case Type::FAILED_TO_SEEK: return TEXT("FAILED_TO_SEEK");
50 case Type::ALREADY_INITIALIZED: return TEXT("ALREADY_INITIALIZED");
51 case Type::LOADING: return TEXT("LOADING");
52 case Type::INVALID_STATE: return TEXT("INVALID_STATE");
53 default: case Type::UNKNOWN: return TEXT("UNKNOWN");
54 }
55 }
56 } // namespace ESoundFileError
57
58 namespace ESoundFileSeekMode
59 {
60 enum Type
61 {
65 };
66 } // namespace ESoundFileSeekMode
67
75 namespace ESoundFileFormat
76 {
77 enum Flags
78 {
79 // Major Formats
80 WAV = 0x010000, // Microsoft WAV format
81 AIFF = 0x020000, // Apple AIFF format
82 FLAC = 0x170000, // FLAC lossless
83 OGG = 0x200000, // Xiph OGG
84
85 // Uncompressed Minor Formats
86 PCM_SIGNED_8 = 0x0001, // Signed 8 bit PCM
87 PCM_SIGNED_16 = 0x0002, // Signed 16 bit PCM
88 PCM_SIGNED_24 = 0x0003, // Signed 24 bit PCM
89 PCM_SIGNED_32 = 0x0004, // Signed 32 bit PCM
90 PCM_UNSIGNED_8 = 0x0005, // Unsigned 8 bit PCM
91 PCM_FLOAT = 0x0006, // 32 bit float
92 PCM_DOUBLE = 0x0007, // 64 bit float
93
94 // Compressed Minor Formats
95 MU_LAW = 0x0010, // Mu-law encoding
96 A_LAW = 0x0011, // A-law encoding
97 IMA_ADPCM = 0x0012, // IMA ADPCM encoding
98 MS_ADPCM = 0x0013, // Microsoft ADPCM encoding
99 GSM_610 = 0x0020, // GSM 6.10 encoding
100 G721_32 = 0x0030, // 32 kbps G721 ADPCM encoding
101 G723_24 = 0x0031, // 23 kbps G723 ADPCM encoding
102 G723_40 = 0x0032, // 40 kbps G723 ADPCM encoding
103 DWVW_12 = 0x0040, // 12 bit delta-width variable word encoding
104 DMVW_16 = 0x0041, // 16 bit delta-width variable word encoding
105 DMVW_24 = 0x0042, // 24 bit delta-width variable word encoding
106 DMVW_N = 0x0043, // N bit delta-width variable word encoding
107 VORBIS = 0x0060, // Xiph vorbis encoding
108
109 // Endian opts
110 ENDIAN_FILE = 0x00000000, // default file endian
111 ENDIAN_LITTLE = 0x10000000, // little-endian
112 ENDIAN_BIG = 0x20000000, // big-endian
113 ENDIAN_CPU = 0x30000000, // cpu-endian
114
115 // Masks
116 MINOR_FORMAT_MASK = 0x0000FFFF,
117 MAJOR_FORMAT_MASK = 0x0FFF0000,
118 ENDIAN_MASK = 0x30000000,
119 };
120
121 inline const TCHAR* ToStringMajor(int32 FormatFlags)
122 {
123 switch (FormatFlags & ESoundFileFormat::MAJOR_FORMAT_MASK)
124 {
125 case ESoundFileFormat::WAV: return TEXT("WAV");
126 case ESoundFileFormat::AIFF: return TEXT("AIFF");
127 case ESoundFileFormat::FLAC: return TEXT("FLAC");
128 case ESoundFileFormat::OGG: return TEXT("OGG");
129 default: return TEXT("INVALID");
130 }
131 }
132
133 inline const TCHAR* ToStringMinor(int32 FormatFlags)
134 {
135 switch (FormatFlags & ESoundFileFormat::MINOR_FORMAT_MASK)
136 {
137 case ESoundFileFormat::PCM_SIGNED_8: return TEXT("PCM_SIGNED_8");
138 case ESoundFileFormat::PCM_SIGNED_16: return TEXT("PCM_SIGNED_16");
139 case ESoundFileFormat::PCM_SIGNED_24: return TEXT("PCM_SIGNED_24");
140 case ESoundFileFormat::PCM_SIGNED_32: return TEXT("PCM_SIGNED_32");
141 case ESoundFileFormat::PCM_UNSIGNED_8: return TEXT("PCM_UNSIGNED_8");
142 case ESoundFileFormat::PCM_FLOAT: return TEXT("PCM_FLOAT");
143 case ESoundFileFormat::PCM_DOUBLE: return TEXT("PCM_DOUBLE");
144 case ESoundFileFormat::MU_LAW: return TEXT("MU_LAW");
145 case ESoundFileFormat::A_LAW: return TEXT("A_LAW");
146 case ESoundFileFormat::IMA_ADPCM: return TEXT("IMA_ADPCM");
147 case ESoundFileFormat::MS_ADPCM: return TEXT("MS_ADPCM");
148 case ESoundFileFormat::GSM_610: return TEXT("GSM_610");
149 case ESoundFileFormat::G721_32: return TEXT("G721_32");
150 case ESoundFileFormat::G723_24: return TEXT("G723_24");
151 case ESoundFileFormat::G723_40: return TEXT("G723_40");
152 case ESoundFileFormat::DWVW_12: return TEXT("DWVW_12");
153 case ESoundFileFormat::DMVW_16: return TEXT("DMVW_16");
154 case ESoundFileFormat::DMVW_24: return TEXT("DMVW_24");
155 case ESoundFileFormat::DMVW_N: return TEXT("DMVW_N");
156 case ESoundFileFormat::VORBIS: return TEXT("VORBIS");
157 default: return TEXT("INVALID");
158 }
159 }
160 } // namespace ESoundFileFormat;
161
162 /*
163 * Enumeration to specify a sound files intended output channel mapping.
164 * @note These are separated from the device channel mappings purposefully since
165 * the enumeration may not exactly be the same as the output speaker mapping.
166 */
167 namespace ESoundFileChannelMap
168 {
169 // this is used to populate an array which is passed into a sound file API call so must be uint32
170 enum class Type : uint32
171 {
172 INVALID = 0,
173 MONO,
174 LEFT,
175 RIGHT,
176 CENTER,
181 BACK_LEFT,
183 LFE,
186 SIDE_LEFT,
195 };
196
197 inline const TCHAR* ToString(ESoundFileChannelMap::Type ChannelMap)
198 {
199 switch (ChannelMap)
200 {
201 case Type::INVALID: return TEXT("INVALID");
202 case Type::MONO: return TEXT("MONO");
203 case Type::LEFT: return TEXT("LEFT");
204 case Type::RIGHT: return TEXT("RIGHT");
205 case Type::CENTER: return TEXT("CENTER");
206 case Type::FRONT_LEFT: return TEXT("FRONT_LEFT");
207 case Type::FRONT_RIGHT: return TEXT("FRONT_RIGHT");
208 case Type::FRONT_CENTER: return TEXT("FRONT_CENTER");
209 case Type::BACK_CENTER: return TEXT("BACK_CENTER");
210 case Type::BACK_LEFT: return TEXT("BACK_LEFT");
211 case Type::BACK_RIGHT: return TEXT("BACK_RIGHT");
212 case Type::LFE: return TEXT("LFE");
213 case Type::LEFT_CENTER: return TEXT("LEFT_CENTER");
214 case Type::RIGHT_CENTER: return TEXT("RIGHT_CENTER");
215 case Type::SIDE_LEFT: return TEXT("SIDE_LEFT");
216 case Type::SIDE_RIGHT: return TEXT("SIDE_RIGHT");
217 case Type::TOP_CENTER: return TEXT("TOP_CENTER");
218 case Type::TOP_FRONT_LEFT: return TEXT("TOP_FRONT_LEFT");
219 case Type::TOP_FRONT_RIGHT: return TEXT("TOP_FRONT_RIGHT");
220 case Type::TOP_FRONT_CENTER: return TEXT("TOP_FRONT_CENTER");
221 case Type::TOP_BACK_LEFT: return TEXT("TOP_BACK_LEFT");
222 case Type::TOP_BACK_RIGHT: return TEXT("TOP_BACK_RIGHT");
223 case Type::TOP_BACK_CENTER: return TEXT("TOP_BACK_CENTER");
224 default: return TEXT("UNKNOWN");
225 }
226 }
227 } // namespace ESoundFileChannelMap
228
229 namespace ESoundFileOpenMode
230 {
231 enum Type
232 {
233 READING = 0x10,
234 WRITING = 0x20,
236 };
237 } // namespace ESoundFileOpenMode
238
239 namespace ESoundFileState
240 {
251 } // namespace ESoundFileState
252} // namespace Audio
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Type
Definition SoundFileIOEnums.h:171
Type
Definition SoundFileIOEnums.h:12
const TCHAR * ToStringMinor(int32 FormatFlags)
Definition SoundFileIOEnums.h:133
Flags
Definition SoundFileIOEnums.h:78
@ MU_LAW
Definition SoundFileIOEnums.h:95
@ G723_40
Definition SoundFileIOEnums.h:102
@ ENDIAN_BIG
Definition SoundFileIOEnums.h:112
@ FLAC
Definition SoundFileIOEnums.h:82
@ ENDIAN_LITTLE
Definition SoundFileIOEnums.h:111
@ DMVW_16
Definition SoundFileIOEnums.h:104
@ VORBIS
Definition SoundFileIOEnums.h:107
@ OGG
Definition SoundFileIOEnums.h:83
@ MS_ADPCM
Definition SoundFileIOEnums.h:98
@ PCM_SIGNED_16
Definition SoundFileIOEnums.h:87
@ MAJOR_FORMAT_MASK
Definition SoundFileIOEnums.h:117
@ GSM_610
Definition SoundFileIOEnums.h:99
@ PCM_UNSIGNED_8
Definition SoundFileIOEnums.h:90
@ PCM_SIGNED_32
Definition SoundFileIOEnums.h:89
@ A_LAW
Definition SoundFileIOEnums.h:96
@ DMVW_24
Definition SoundFileIOEnums.h:105
@ WAV
Definition SoundFileIOEnums.h:80
@ ENDIAN_MASK
Definition SoundFileIOEnums.h:118
@ PCM_SIGNED_24
Definition SoundFileIOEnums.h:88
@ MINOR_FORMAT_MASK
Definition SoundFileIOEnums.h:116
@ ENDIAN_CPU
Definition SoundFileIOEnums.h:113
@ AIFF
Definition SoundFileIOEnums.h:81
@ PCM_SIGNED_8
Definition SoundFileIOEnums.h:86
@ IMA_ADPCM
Definition SoundFileIOEnums.h:97
@ G723_24
Definition SoundFileIOEnums.h:101
@ ENDIAN_FILE
Definition SoundFileIOEnums.h:110
@ DWVW_12
Definition SoundFileIOEnums.h:103
@ DMVW_N
Definition SoundFileIOEnums.h:106
@ PCM_DOUBLE
Definition SoundFileIOEnums.h:92
@ G721_32
Definition SoundFileIOEnums.h:100
@ PCM_FLOAT
Definition SoundFileIOEnums.h:91
const TCHAR * ToStringMajor(int32 FormatFlags)
Definition SoundFileIOEnums.h:121
Type
Definition SoundFileIOEnums.h:232
@ UNKNOWN
Definition SoundFileIOEnums.h:235
@ READING
Definition SoundFileIOEnums.h:233
@ WRITING
Definition SoundFileIOEnums.h:234
Type
Definition SoundFileIOEnums.h:61
@ FROM_START
Definition SoundFileIOEnums.h:62
@ FROM_END
Definition SoundFileIOEnums.h:64
@ FROM_CURRENT
Definition SoundFileIOEnums.h:63
Type
Definition SoundFileIOEnums.h:242
@ UNINITIALIZED
Definition SoundFileIOEnums.h:243
@ LOADED
Definition SoundFileIOEnums.h:246
@ INITIALIZED
Definition SoundFileIOEnums.h:244
@ WRITING
Definition SoundFileIOEnums.h:248
@ STREAMING
Definition SoundFileIOEnums.h:247
@ LOADING
Definition SoundFileIOEnums.h:245
@ HAS_ERROR
Definition SoundFileIOEnums.h:249
NO_LOGGING.
Definition AudioMixerPlatformAndroid.cpp:53
SoundFileErrorFuncPtr SoundFileError
Definition SoundFileIOManagerImpl.cpp:78