#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 初版