mirror of
https://github.com/rvtr/TwlIPL_commit-99.git
synced 2025-10-31 06:21:11 -04:00
163 lines
6.1 KiB
HTML
Executable File
163 lines
6.1 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_SndCaptureStartSampling</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_SndCaptureStartSampling</h1>
|
||
<h2>構文</h2>
|
||
<dl>
|
||
<dd><pre class="funcsynopsisinfo"><code>#include <nnsys/snd.h></code></pre></dd>
|
||
<dd><pre class="funcsynopsisinfo"><code>typedef void (*NNSSndCaptureCallback)(
|
||
void* <var>bufferL</var>,
|
||
void* <var>bufferR</var>,
|
||
u32 <var>len</var>,
|
||
NNSSndCaptureFormat <var>format</var>,
|
||
void* <var>arg</var>
|
||
);</code></pre></dd>
|
||
<dd><pre class="funcprototype"><code class="funcprototype">BOOL NNS_SndCaptureStartSampling(
|
||
void* <var>buffer_p</var>,
|
||
u32 <var>bufSize</var>,
|
||
NNSSndCaptureFormat <var>format</var>,
|
||
int <var>sampleRate</var>,
|
||
int <var>interval</var>,
|
||
NNSSndCaptureCallback <var>callback</var>,
|
||
void* <var>arg</var> );</code><br></pre></dd>
|
||
</dl>
|
||
<div class="refsection" lang="ja"><a name="IDANNWT"></a>
|
||
<h2>引数</h2>
|
||
|
||
<div class="variablelist">
|
||
<table border="0">
|
||
<col align="left" valign="top">
|
||
<tbody>
|
||
<tr>
|
||
<td><em><strong><code>buffer_p</code></strong></em></td>
|
||
<td>サンプリングバッファのポインタです。32バイトアライメントされている必要があります。</td>
|
||
</tr>
|
||
<tr>
|
||
<td><em><strong><code>bufSize</code></strong></em></td>
|
||
<td>サンプリングバッファのサイズです。<var>interval</var> * 64の倍数で無ければなりません。最大値は0x7fff8です。</td>
|
||
</tr>
|
||
<tr>
|
||
<td><em><strong><code>format</code></strong></em></td>
|
||
<td>サンプルデータのフォーマットです。</td>
|
||
</tr>
|
||
<tr>
|
||
<td><em><strong><code>sampleRate</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="IDAJPWT"></a>
|
||
<h2>返り値</h2>
|
||
|
||
<p>サンプリングの開始に成功したかどうかを返します。</p>
|
||
</div>
|
||
<div class="refsection" lang="ja"><a name="IDAQPWT"></a>
|
||
<h2>説明</h2>
|
||
<p>
|
||
サンプリングを開始します。
|
||
</p>
|
||
<p>
|
||
キャプチャー機能を使ってミキサー出力をキャプチャし、コールバック関数でサンプリングしたデータを取得します。
|
||
サンプリング動作中は、16チャンネル中の2チャンネル(チャンネル1及びチャンネル3)を消費します。
|
||
チャンネル1またはチャンネル3が、シーケンスによって使用中の場合、発音中の音は強制的に停止させられます。
|
||
</p>
|
||
<p>
|
||
サンプリングを使うためには、サンプリングバッファが必要になります。
|
||
サンプリングバッファが小さいほど頻繁にコールバック関数が呼びだされます。
|
||
先頭アドレス<em><strong><code>buffer_p</code></strong></em>は、32バイトアライメントされている必要があります。
|
||
また、バッファサイズ<em><strong><code>bufSize</code></strong></em>は、<em><strong><code>interval</code></strong></em> * 64の倍数で無ければなりません。
|
||
</p>
|
||
<p>
|
||
サンプルデータのフォーマット<em><strong><code>format</code></strong></em>は、下記の値から選択します。
|
||
16ビットの方が、音質は良くなりますが、8ビットの時に比べて2倍の頻度で
|
||
コールバック関数が呼びだされるようになります。
|
||
</p>
|
||
<div class="table"><a name="IDAJQWT"></a><p class="title"><b>表 . NNSSndCaptureFormat</b></p>
|
||
<table summary="NNSSndCaptureFormat" border="1">
|
||
<colgroup><col><col></colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th>ラベル</th>
|
||
<th>説明</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>NNS_SND_CAPTURE_FORMAT_PCM8</td>
|
||
<td>8ビットPCM</td>
|
||
</tr>
|
||
<tr>
|
||
<td>NNS_SND_CAPTURE_FORMAT_PCM16</td>
|
||
<td>16ビットPCM</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
|
||
<p>
|
||
サンプリングレート<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>interval</code></strong></em>で指定した間隔で、サンプリングバッファにキャプチャされる毎に呼びだされます。
|
||
引数には、Lミキサー成分<em><strong><code>bufferL</code></strong></em>およびRミキサー成分<em><strong><code>bufferR</code></strong></em>の
|
||
先頭アドレスのポインタと、バッファのサイズ<em><strong><code>len</code></strong></em>が入れられます。
|
||
フォーマット<em><strong><code>format</code></strong></em>とユーザー引数<em><strong><code>arg</code></strong></em>は、
|
||
<tt class="function">NNS_SndCaptureStartSampling</tt>関数の引数に入れたものと同じものが渡されます。
|
||
引数に渡されるバッファは、キャプチャが完了した領域を指しています。
|
||
</p>
|
||
<p>
|
||
<tt class="function"><a href="NNS_SndCaptureCreateThread.html">NNS_SndCaptureCreateThread</a></tt>関数で
|
||
キャプチャースレッドを起動しているときは、コールバック関数はキャプチャースレッドから呼びだされます。
|
||
キャプチャースレッドを起動していない場合は、コールバック関数はIRQハンドラから呼びだされます。
|
||
</p>
|
||
<p>
|
||
サンプリング開始の失敗には、以下の原因が考えられます。
|
||
</p>
|
||
<div class="itemizedlist">
|
||
<ul type="disc">
|
||
<li>キャプチャがサンプリング以外の用途で使用中</li>
|
||
<li>チャンネル1またはチャンネル3が、サンプリングやシーケンスによる発音以外の用途で使用中 </li>
|
||
</ul>
|
||
</div>
|
||
|
||
</div>
|
||
<h2>参照</h2>
|
||
<p><a href="NNS_SndCaptureCreateThread.html">NNS_SndCaptureCreateThread</a></p>
|
||
<h2>履歴</h2>
|
||
<p>2005/06/27 関数失敗の原因を追加<br>2005/01/06 TEGに関する記述削除<br>2004/09/13 初版<br></p>
|
||
</div>
|
||
</body>
|
||
</html>
|