# NNS_SndLockChannel

## 構文

      #include <nnsys/snd.h>

      BOOL NNS_SndLockChannel( u32 chBitFlag );

## 引数

`chBitFlag` | ロックするチャンネルのビットフラグ

## 返り値

ロックに成功するとTRUEを返します。失敗するとFALSEを返します。

## 説明

チャンネルをロックします。 ロックしたチャンネルは、ライブラリ内部で使用しないようになります。

`chBitFlag`で、ロックするチャンネルを指定します。 下位ビットから順に、チャンネル0、チャンネル1、チャンネル2、、、を表し、 ビットが立っているチャンネル全てを同時にロックします。 例えば、チャンネル2とチャンネル5をロックしたい場合は、、 (1 << 2) | (1 << 5) すなわち、0x0024 とします。

指定チャンネルがシーケンス再生で使用中の場合、 発音中の音は強制的に停止し、ロックに成功します。 それ以外のストリーム再生などで使用中のチャンネルをロックしようとすると、関数は失敗します。 複数チャンネルをロックしようとしたとき、 １つでもロックに失敗すると、全てのロックは失敗します。

チャンネルのロックを解除するためには、 `NNS_SndUnlockChannel`関数を呼びだします。

なお、チャンネルは16個ありますが、 下記のように、チャンネル番号に応じてチャンネルの機能が異なっています。

表 . チャンネルの番号別機能

チャンネル番号 | 機能
--- | ---
0, 2 | PCM/ADPCMを再生できます。このチャンネルの出力をサウンドキャプチャの入力とすることもできます。
1, 3 | PCM/ADPCMを再生できます。サウンドキャプチャとタイマーを共用しているため、サウンドキャプチャを使うときは、サウンドキャプチャの出力チャンネルとしてしか使えません。
4 〜 7 | PCM/ADPCMを再生できます。シーケンス再生で波形データを再生するときには優先的に使っています。
8 〜 13 | PCM/ADPCMまたは、PSG矩形波を再生できます。
14, 15 | PCM/ADPCMまたは、ホワイトノイズを再生できます。

## 参照

NNS_SndUnlockChannel

## 履歴

2004/10/25 初版