| 220 | // Buffer management |
| 221 | |
| 222 | BufferId loadBuffer(std::span<const uint8_t> pcmData, const AudioFormat& format) |
| 223 | { |
| 224 | uint32_t id = 0; |
| 225 | alGenBuffers(1, &id); |
| 226 | _alBuffers.push_back(id); |
| 227 | |
| 228 | ALenum alFormat; |
| 229 | if (format.channels > 1) |
| 230 | { |
| 231 | alFormat = (format.bitsPerSample == 8) ? AL_FORMAT_STEREO8 : AL_FORMAT_STEREO16; |
| 232 | } |
| 233 | else |
| 234 | { |
| 235 | alFormat = (format.bitsPerSample == 8) ? AL_FORMAT_MONO8 : AL_FORMAT_MONO16; |
| 236 | } |
| 237 | alBufferData(id, alFormat, pcmData.data(), static_cast<ALsizei>(pcmData.size()), format.sampleRate); |
| 238 | return static_cast<BufferId>(id); |
| 239 | } |
| 240 | |
| 241 | void unloadBuffer(BufferId buffer) |
| 242 | { |
no test coverage detected