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