# NNS_SndWaveOutAllocChannel

## 構文

      #include <nnsys/snd.h>

      NNSSndWaveOutHandle NNS_SndWaveOutAllocChannel( int chNo );

## 引数

`chNo` | 確保するチャンネル番号です。0〜15の値で指定します。

## 返り値

波形再生ハンドルを返します。 チャンネルの確保に失敗すると、NNS_SND_WAVEOUT_INVALID_HANDLEを返します。

## 説明

波形再生用にチャンネルを確保します。

指定したチャンネルが、シーケンス再生によって発音中の場合、発音中の音は強制的に止められます。 ただし、指定したチャンネルが、リバーブなどのシーケンス再生以外の用途で使用中の場合、関数は失敗します。

確保したチャンネルは、 `NNS_SndWaveOutFreeChannel`関数で 解放するまで、占有し続けます。

チャンネル番号`chNo`は、0〜15の間で指定できますが、 下記のように、番号に応じてチャンネルの機能が異なっていますので、 他の用途との協調を考えて指定する必要があります。 例えば、シーケンス再生でノイズを使う場合は、チャンネル番号14または15は、 あまり使わない方が良いでしょう。

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

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

## 参照

NNS_SndWaveOutFreeChannel

## 履歴

2004/07/01 初版