| @@ -55,8 +55,38 @@ std::unordered_set<std::shared_ptr<audio_streamer>> audio::m_streamers; | |||||
| #if defined LOL_USE_SDL_MIXER | #if defined LOL_USE_SDL_MIXER | ||||
| void audio::init() | void audio::init() | ||||
| { | { | ||||
| Mix_OpenAudio(22050, AUDIO_S16, LOL_AUDIO_CHANNELS, LOL_AUDIO_SAMPLE_FRAMES); | |||||
| if (Mix_OpenAudio(22050, AUDIO_S16, LOL_AUDIO_CHANNELS, LOL_AUDIO_SAMPLE_FRAMES) < 0) | |||||
| { | |||||
| msg::error("error opening audio: %s\n", Mix_GetError()); | |||||
| return; | |||||
| } | |||||
| set_channels(8); | set_channels(8); | ||||
| int frequency, channels; | |||||
| Uint16 format; | |||||
| if (Mix_QuerySpec(&frequency, &format, &channels) == 0) | |||||
| { | |||||
| msg::error("error querying audio: %s\n", Mix_GetError()); | |||||
| return; | |||||
| } | |||||
| char const *sformat = "unknown"; | |||||
| switch (format) | |||||
| { | |||||
| case AUDIO_U8: sformat = "uint8"; break; | |||||
| case AUDIO_S8: sformat = "int8"; break; | |||||
| case AUDIO_U16LSB: sformat = "uint16le"; break; | |||||
| case AUDIO_U16MSB: sformat = "uint16be"; break; | |||||
| case AUDIO_S16LSB: sformat = "int16le"; break; | |||||
| case AUDIO_S16MSB: sformat = "int16be"; break; | |||||
| case AUDIO_S32LSB: sformat = "int32le"; break; | |||||
| case AUDIO_S32MSB: sformat = "int32be"; break; | |||||
| case AUDIO_F32LSB: sformat = "float32le"; break; | |||||
| case AUDIO_F32MSB: sformat = "float32be"; break; | |||||
| } | |||||
| msg::info("audio freq=%dHz format=%s channels=%d\n", | |||||
| frequency, sformat, channels); | |||||
| } | } | ||||
| void audio::set_channels(int channels) | void audio::set_channels(int channels) | ||||