# SND_SetChannelVolume

## 構文

      #include <nitro/snd.h>

      void SND_SetChannelVolume(
              u32 chBitMask,
              int volume,
              SNDChannelDataShift shift );

## 引数

`chBitMask` | チャンネルビットマスクです。どのチャンネルを操作するかを指定します。
`volume` | ボリューム値です。値の範囲は、0〜127です。
`shift` | データシフト設定です。

## 返り値

なし。

## 説明

チャンネルボリュームを変更します。

どのチャンネルを操作するのかは、チャンネルビットマスク`chBitMask`で指定します。各ビットは、最下位ビットがチャンネル0で、以下順にチャンネル1、チャンネル2、、、を表しています。ビットが立っているものに対応するチャンネルに対してのみ、操作を行います。

データシフト設定`shift`は、以下の値から選択します。

表 . SNDChannelDataShift

ラベル | 説明
--- | ---
SND_CHANNEL_DATASHIFT_NONE | データシフトを行いません。
SND_CHANNEL_DATASHIFT_1BIT | 1ビット右シフトします。
SND_CHANNEL_DATASHIFT_2BIT | 2ビット右シフトします。
SND_CHANNEL_DATASHIFT_4BIT | 4ビット右シフトします。

### 注意

この関数は、ARM7コマンド予約関数です。 この関数を呼びだした後、 `SND_FlushCommand()` で コマンドを発行して始めて、処理が行われます。

また、処理の完了と同期を取る必要がある場合は、 まず、この関数呼び出しの直後に、 `SND_GetCurrentCommandTag()` で、コマンドタグを取得しておきます。 そしてコマンド発行後に、取得したコマンドタグを使って `SND_IsFinishedCommandTag()` または、 `SND_WaitForCommandProc()` を呼びだして、 処理の完了をチェックしたり、待ったりします。

## 参照

SND_FlushCommand, SND_GetCurrentCommandTag, SND_IsFinishedCommandTag, SND_WaitForCommandProc

## 履歴

2005/02/17 ARM7コマンド処理の注意書き追加
2004/07/20 初版