mirror of
https://github.com/rvtr/TwlIPL_commit-99.git
synced 2025-10-31 06:21:11 -04:00
151 lines
5.6 KiB
HTML
Executable File
151 lines
5.6 KiB
HTML
Executable File
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>
|
||
<head>
|
||
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
|
||
<title>NNS_SndStrmSetup</title>
|
||
<link rel="stylesheet" href="../css/nitro.css" type="text/css">
|
||
<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
|
||
</head>
|
||
<body>
|
||
<div class="refentry" lang="ja"><a name="IDAKKWT"></a><div class="titlepage">
|
||
<div></div>
|
||
<div></div>
|
||
</div>
|
||
<h1>NNS_SndStrmSetup</h1>
|
||
<h2>構文</h2>
|
||
<dl>
|
||
<dd><pre class="funcsynopsisinfo"><code>#include <nnsys/snd.h></code></pre></dd>
|
||
<dd><pre class="funcprototype"><code class="funcprototype">BOOL NNS_SndStrmSetup(
|
||
NNSSndStrm* <var>stream</var>,
|
||
NNSSndStrmFormat <var>format</var>,
|
||
void* <var>buffer</var>,
|
||
u32 <var>bufSize</var>,
|
||
int <var>timer</var>,
|
||
int <var>interval</var>,
|
||
NNSSndStrmCallback <var>callback</var>,
|
||
void* <var>arg</var> );</code><br></pre></dd>
|
||
</dl>
|
||
<div class="refsection" lang="ja"><a name="IDA1MWT"></a>
|
||
<h2>引数</h2>
|
||
|
||
<div class="variablelist">
|
||
<table border="0">
|
||
<col align="left" valign="top">
|
||
<tbody>
|
||
<tr>
|
||
<td><em><strong><code>stream</code></strong></em></td>
|
||
<td>ストリーム構造体のポインタです。</td>
|
||
</tr>
|
||
<tr>
|
||
<td><em><strong><code>format</code></strong></em></td>
|
||
<td>ストリームデータフォーマットです。</td>
|
||
</tr>
|
||
<tr>
|
||
<td><em><strong><code>buffer</code></strong></em></td>
|
||
<td>ストリームバッファの先頭アドレスです。32バイトアライメントされている必要があります。</td>
|
||
</tr>
|
||
<tr>
|
||
<td><em><strong><code>bufSize</code></strong></em></td>
|
||
<td>ストリームバッファサイズです。<var>interval</var> * (チャンネル数) * 32の倍数で無ければなりません。</td>
|
||
</tr>
|
||
<tr>
|
||
<td><em><strong><code>timer</code></strong></em></td>
|
||
<td>ストリームチャンネルのタイマー値です。</td>
|
||
</tr>
|
||
<tr>
|
||
<td><em><strong><code>interval</code></strong></em></td>
|
||
<td>コールバックインターバルです。2以上の値を指定します。</td>
|
||
</tr>
|
||
<tr>
|
||
<td><em><strong><code>callback</code></strong></em></td>
|
||
<td>ストリームコールバック関数のポインタです。</td>
|
||
</tr>
|
||
<tr>
|
||
<td><em><strong><code>arg</code></strong></em></td>
|
||
<td>ストリームコールバック関数のユーザー引数です。</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
|
||
</div>
|
||
<div class="refsection" lang="ja"><a name="IDA4OWT"></a>
|
||
<h2>返り値</h2>
|
||
|
||
<p>セットアップに成功したかどうかを返します。</p>
|
||
</div>
|
||
<div class="refsection" lang="ja"><a name="IDAFPWT"></a>
|
||
<h2>説明</h2>
|
||
<p>
|
||
ストリームのセットアップを行います。
|
||
あらかじめ、<tt class="function"><a href="NNS_SndStrmAllocChannel.html">NNS_SndStrmAllocChannel</a></tt>関数で、
|
||
チャンネルを確保しておく必要があります。
|
||
ストリームを再生するためには、この関数の後で
|
||
<tt class="function"><a href="NNS_SndStrmStart.html">NNS_SndStrmStart</a></tt>関数を呼びだします。
|
||
</p>
|
||
<p>
|
||
ストリームデータフォーマット<em><strong><code>format</code></strong></em>は、下記から選択します。
|
||
16ビットの方が音質は良くなりますが、8ビットの時と比べて2倍の頻度でコールバック関数が呼びだされます。
|
||
8ビットの時と同じ頻度で呼びだされるようにするためには、
|
||
ストリームバッファを2倍のサイズ用意する必要があります。
|
||
</p>
|
||
<div class="table"><a name="IDA1PWT"></a><p class="title"><b>表 . NNSSndStrmFormat</b></p>
|
||
<table summary="NNSSndStrmFormat" border="1">
|
||
<colgroup><col><col></colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th>ラベル</th>
|
||
<th>説明</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>NNS_SND_STRM_FORMAT_PCM8</td>
|
||
<td>8ビットPCM</td>
|
||
</tr>
|
||
<tr>
|
||
<td>NNS_SND_STRM_FORMAT_PCM16</td>
|
||
<td>16ビットPCM</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
|
||
|
||
<p>
|
||
ストリーム再生を行うためには、ストリームバッファが必要になります。
|
||
ストリームバッファが小さいほど頻繁にコールバック関数が呼びだされます。
|
||
ストリームバッファの先頭アドレス<em><strong><code>buffer</code></strong></em>は、
|
||
32バイトアライメントされている必要があります。
|
||
また、ストリームバッファサイズ<em><strong><code>bufSize</code></strong></em>は、
|
||
interval * (チャンネル数) * 32の倍数で無ければなりません。
|
||
この(チャンネル数)とは、<tt class="function">NNS_SndStrmAllocChannel</tt>関数で確保したチャンネル数を指します。
|
||
</p>
|
||
<p>
|
||
ストリームチャンネルのタイマー値<em><strong><code>timer</code></strong></em>は、ストリームの再生速度を制御するパラメータです。
|
||
値の単位は、1サンプル再生するクロック数です。1秒あたりのクロック数は、
|
||
<span class="symbol">NNS_SND_STRM_TIMER_CLOCK</span>として定義されています。
|
||
例えば、サンプリングレート<em><strong><code>sampleRate</code></strong></em>で再生するためには、
|
||
<span class="symbol">NNS_SND_STRM_TIMER_CLOCK</span> / <em><strong><code>sampleRate</code></strong></em>をタイマー値として指定します。
|
||
|
||
</p>
|
||
<p>
|
||
コールバックインターバル<em><strong><code>interval</code></strong></em>は、ストリームバッファ全体を再生する間に、
|
||
何回コールバック関数が呼びだされるのかを指定します。
|
||
例えば、2を指定した場合、バッファの半分を再生中に、残り半分に波形データを書き込むようにします。
|
||
</p>
|
||
<p>
|
||
コールバック関数<em><strong><code>callback</code></strong></em>は、波形データの補充が必要になったときに呼びだされる関数です。
|
||
コールバック関数のユーザー引数<em><strong><code>arg</code></strong></em>は、
|
||
コールバック関数<em><strong><code>callback</code></strong></em>の引数にそのまま渡されます。
|
||
コールバック関数については、
|
||
<tt class="function"><a href="NNSSndStrmCallback.html">NNSSndStrmCallback</a></tt>の説明を参照してください。
|
||
</p>
|
||
</div>
|
||
<h2>参照</h2>
|
||
<p><a href="NNS_SndStrmAllocChannel.html">NNS_SndStrmAllocChannel</a>, <a href="NNS_SndStrmStart.html">NNS_SndStrmStart</a>, <a href="NNSSndStrmCallback.html">NNSSndStrmCallback</a></p>
|
||
<h2>履歴</h2>
|
||
<p>2004/11/26 NNSSndStrmCallbackの説明を分離<br>2004/08/10 初版<br></p>
|
||
</div>
|
||
</body>
|
||
</html>
|