bool SDL_SetAudioDeviceGain(SDL_AudioDeviceID devid, float gain);
| SDL_AudioDeviceID | devid | ゲインを変更するオーディオデバイス |
| float | gain | ゲイン. 1.0fは変更なし. 0.0fは無音 |
(bool) 成功のとき真, 失敗のとき偽を戻す. SDL_GetError()を呼んで詳細を知ることができる.
デバイスのゲインはボリュームのことで, 値が大きいほど出力が大きく, 0は無音である.
オーディオデバイスのゲインのデフォルトは1.0f(出力を変更しない)である.
物理デバイスのゲインは変更できず, 論理デバイスのみ可能である. この関数は物理デバイスに対して常に偽を戻す. この関数で一度に複数の論理デバイスを調整できるのは一見便利だが, プログラムの別の分離した箇所とアプリケーションやライブラリが干渉する可能性がある.
これが適用されると, オーディオストリームごとのゲインと共に再生時に適用され, 継続して様々な効果が生じる. 録音デバイスでは, データがオーディオストリームに渡される前にゲインが調整される. 録音オーディオストリームは, データを他の部分で出力する場合, 必要ならば録音オーディオストリームはさらにその部分でゲインを調整することができるが, 2回目のゲインはデータがオーディオストリームを再び離れるまで適用されない.
この関数はストリーム固有のミューテックスが行われている限りどのスレッドからも安全に呼べる.