| 91 | } |
| 92 | |
| 93 | size_t resample(int16_t* in, size_t inSamples, std::vector<int16_t>& out, bool mono) { |
| 94 | SDL_AudioStream* stream = mono ? sdlAudioStreamMono : sdlAudioStreamStereo; |
| 95 | SDL_PutAudioStreamData(stream, in, inSamples * sizeof(int16_t)); |
| 96 | if (int available = SDL_GetAudioStreamAvailable(stream)) { |
| 97 | out.resize(available / 2); |
| 98 | SDL_GetAudioStreamData(stream, out.data(), available); |
| 99 | return available; |
| 100 | } |
| 101 | return 0; |
| 102 | } |
| 103 | }; |
| 104 | |
| 105 | Voice::Speaker::Speaker(SpeakerId id) |