# SND_SetTrackMute*

## 構文

      #include <nitro/snd.h>

      void SND_SetTrackMute( int playerNo, u32 trackBitMask, BOOL flag );
      void SND_SetTrackMuteEx(
              int playerNo,
              u32 trackBitMask,
              SNDSeqMute mute );

## 引数

`playerNo` | プレイヤー番号です。値の範囲は、0〜15です。
`trackBitMask` | トラックビットマスクです。どのトラックを操作するかを指定します。
`flag` | ミュートするか解除するかを指定するフラグです。TRUEの時、ミュートし、FALSEの時、解除します。
`mute` | ミュート設定です。

## 返り値

なし。

## 説明

プレイヤー番号`playerNo`のプレイヤーで再生中のシーケンスのトラックをミュートまたは解除します。

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

`SND_SetTrackMute`関数で、ミュートを行うと、 発音中の音は即座に停止します。 即座に停止させたくない場合は、`SND_SetTrackMuteEx()` を使います。

ミュート設定`mute`は、下記の値から選択します。

表 . SNDSeqMute

ラベル | 説明
--- | ---
SND_SEQ_MUTE_OFF | ミュート解除
SND_SEQ_MUTE_NO_STOP | 発音中の音を止めずにミュート
SND_SEQ_MUTE_RELEASE | 発音中の音をリリースしてミュート
SND_SEQ_MUTE_STOP | 発音中の音を即座に止めてミュート

### 注意

ミュート時に発音中の音を止めた場合、ミュートを解除しても、ミュート前に鳴っていた音は再開されません。

シーケンスデータ中でも、ミュート設定をしていた場合は、後から設定した方が有効になります。

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

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

## 参照

SND_FlushCommand, SND_GetCurrentCommandTag, SND_IsFinishedCommandTag, SND_WaitForCommandProc

## 履歴

2006/03/20 `SNDSetTrackMuteEx()`追加
2005/02/17 ARM7コマンド処理の注意書き追加
2004/07/01 初版