ASIOを利用してWAVファイルを再生する
(その5)
サンプルプログラムでは使用していないその他のAPIの概要は以下のとおりです。
現在カレントに設定されているデバイスのデバイス名を取得します。
bool AsioDrivers::getCurrentDriverName( char* name )
引数 | 説明 |
---|---|
name | デバイス名を格納する領域のポインタ。 |
戻り値がtrueならば、デバイス名の取得に成功しました。
入力及び出力に使用可能なチャンネル数を取得します。
ASIOError ASIOGetChannels( long* numInputChannels, long* numOutputChannels )
引数 | 説明 |
---|---|
numInputChannels | 入力チャンネル数を格納する変数のポインタ。 |
numOutputChannels | 出力チャンネル数を格納する変数のポインタ。 |
戻り値がASE_OKならば、関数の呼び出しに成功しました。
入力及び出力のレイテンシを取得します。
ASIOError ASIOGetLatencies( long* inputLatency, long* outputLatency )
引数 | 説明 |
---|---|
inputLatency | 入力レイテンシを格納する変数のポインタ。 |
outputLatency | 出力レイテンシを格納する変数のポインタ。 |
戻り値がASE_OKならば、関数の呼び出しに成功しました。
指定したサンプルレートが利用可能かどうかをドライバに問い合わせます。
ASIOError ASIOCanSampleRate( ASIOSampleRate sampleRate )
引数 | 説明 |
---|---|
sampleRate | ドライバに問い合わせるサンプルレート。(Hz) |
戻り値がASE_OKならば、サポートされてるいるサンプルレートです。
サポートされていないサンプルレートの場合、戻り値がASE_NoClockとなります。
現在設定されているサンプルレートを取得します。
ASIOError ASIOGetSampleRate( ASIOSampleRate* currentRate )
引数 | 説明 |
---|---|
currentRate | 設定されているサンプルレートを格納する変数のポインタ。 |
戻り値がASE_OKならば、関数の呼び出しに成功しました。
現在設定されているサンプルレートを変更します。
ASIOError ASIOSetSampleRate( ASIOSampleRate sampleRate )
引数 | 説明 |
---|---|
sampleRate | 設定するサンプルレート。(Hz) |
戻り値がASE_OKならば、関数の呼び出しに成功しました。
利用可能なサウンド・クロック・ソースの情報を取得します。
ASIOError ASIOGetClockSources( ASIOClockSource* clocks, long* numSources )
引数 | 説明 |
---|---|
clocks | クロック・ソースの情報を格納するデータ(ASIOClockSource構造体)配列ののポインタ。 |
numSources |
関数呼出時: 引数clocksで指定した配列の個数をnumSourcesにセットします。 |
戻り値がASE_OKならば、関数の呼び出しに成功しました。
メンバ名 | 説明 |
---|---|
index | クロック・ソースの識別子。 |
associatedChannel | クロック・ソースに関連付けられたチャンネルの最初のチャンネル番号。 |
associatedGroup | クロック・ソースに関連付けられたグループ番号。 |
isCurrentSource | 現在選択されているクロック・ソースの場合 ASIOTrue が返ります。 |
name[32] | クロック・ソース名の文字列。 |
現在設定されているサウンド・クロック・ソースを変更します。
ASIOError ASIOSetClockSources( long index )
引数 | 説明 |
---|---|
index |
変更するクロック・ソースの識別子。 |
戻り値がASE_OKならば、関数の呼び出しに成功しました。
サンプル・ポジションとタイムスタンプを取得します。
ASIOError ASIOGetSamplePosition( ASIOSamples* sPos, ASIOTimeStamp* tStamp )
引数 | 説明 |
---|---|
sPos | サンプル・ポジションを受け取る変数のポインタ。 |
tStamp | タイムスタンプを受け取る変数のポインタ。 |
戻り値がASE_OKならば、関数の呼び出しに成功しました。
ASIOドライバが用意しているコントロールパネルを呼び出します。
ASIOError ASIOControlPanel( void )
戻り値がASE_OKならば、関数の呼び出しに成功しました。
ドライバにコマンドを送信します。
ASIOError ASIOFuture( long selector, void* params )
引数 | 説明 |
---|---|
selector | |
params | 機能コマンドに付加するパラメータ。機能コマンドにより内容が異なります。 |
戻り値はコマンドにより異なります。未定義のコマンドの場合ASE_InvalidParameterを返します。
メンバ名 | 説明 |
---|---|
kAsioEnableTimeCodeRead kAsioDisableTimeCodeRead |
ハードウェアからのタイムコード読み出しを許可あるいは禁止します。 |
kAsioSetInputMonitor |
ダイレクト入力モニターを設定します。 |
kAsioSetIoFormat |
デバイスのI/Oフォーマットを変更します。 |
kAsioGetIoFormat |
デバイスのI/Oフォーマットを取得します。 |
kAsioCanDoIoFormat |
指定したデバイスのI/Oフォーマットが利用可能かどうか問い合わせます。 |
メンバ名 | 説明 |
---|---|
input | モニタするチャンネル。(-1の場合、全チャンネル) |
output | モニタ出力する出力チャンネル。 |
gain | ゲイン。 無音(0x00000000)から+12dB(0x7FFFFFFF)まで。0x20000000が0dB |
state | ASIOTrue = モニター開始 / ASIOFalse = モニター停止。 |
pan | 左右ボリュームバランス。 左チャンネル(0x00000000)から右チャンネル(0x7FFFFFFFF)まで。 |
メンバ名 | 説明 |
---|---|
FormatType |
フォーマットタイプは以下のとおりです。 |
future[] | 拡張データ。(512 - sizeof(ASIOIoFormatType)バイトの領域) |
サンプルプログラムのソースコードを以下からダウンロードできます。
開発環境 | Visual Studio 2005 |
---|---|
開発言語 | C言語 |
ファイル名 | sample_0004.zip |