* Changes the audio volume of the music and * sound effect channels. * @param sound Sound volume, from 0 to MIX_MAX_VOLUME. * @param music Music volume, from 0 to MIX_MAX_VOLUME. * @param ui UI volume, from 0 to MIX_MAX_VOLUME. */
| 336 | * @param ui UI volume, from 0 to MIX_MAX_VOLUME. |
| 337 | */ |
| 338 | void Game::setVolume(int sound, int music, int ui) |
| 339 | { |
| 340 | if (!Options::mute) |
| 341 | { |
| 342 | if (sound >= 0) |
| 343 | { |
| 344 | sound = volumeExponent(sound) * (double)SDL_MIX_MAXVOLUME; |
| 345 | Mix_Volume(-1, sound); |
| 346 | } |
| 347 | if (music >= 0) |
| 348 | { |
| 349 | music = volumeExponent(music) * (double)SDL_MIX_MAXVOLUME; |
| 350 | Mix_VolumeMusic(music); |
| 351 | } |
| 352 | if (ui >= 0) |
| 353 | { |
| 354 | ui = volumeExponent(ui) * (double)SDL_MIX_MAXVOLUME; |
| 355 | Mix_Volume(1, ui); |
| 356 | Mix_Volume(2, ui); |
| 357 | } |
| 358 | } |
| 359 | } |
| 360 | |
| 361 | double Game::volumeExponent(int volume) |
| 362 | { |
no outgoing calls
no test coverage detected