ASIOを利用してWAVファイルを再生する
(その5)

その他API

サンプルプログラムでは使用していないその他のAPIの概要は以下のとおりです。

現在カレントに設定されているデバイス名を取得する

現在カレントに設定されているデバイスのデバイス名を取得します。


    bool AsioDrivers::getCurrentDriverName( char* name )
	

引数説明
name

デバイス名を格納する領域のポインタ。
32バイト以上の領域を確保してください。

戻り値がtrueならば、デバイス名の取得に成功しました。

使用可能なチャンネル数を取得を取得する

入力及び出力に使用可能なチャンネル数を取得します。


    ASIOError ASIOGetChannels( long* numInputChannels, long* numOutputChannels )
	

引数説明
numInputChannels

入力チャンネル数を格納する変数のポインタ。
入力可能なチャンネルが無い場合、0が格納されます。

numOutputChannels

出力チャンネル数を格納する変数のポインタ。
出力可能なチャンネルが無い場合、0が格納されます。

戻り値が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)
クロックソースが外部クロックの場合、0を指定します。

戻り値がASE_OKならば、関数の呼び出しに成功しました。

クロック・ソースの情報を取得する

利用可能なサウンド・クロック・ソースの情報を取得します。


    ASIOError ASIOGetClockSources( ASIOClockSource* clocks, long* numSources )
	

引数説明
clocks

クロック・ソースの情報を格納するデータ(ASIOClockSource構造体)配列ののポインタ。

numSources

関数呼出時: 引数clocksで指定した配列の個数をnumSourcesにセットします。
関数戻り時: 取得したクロック・ソース情報の個数がnumSourcesにセットされています。

戻り値がASE_OKならば、関数の呼び出しに成功しました。

ASIOClockSource構造体は以下のとおりです。

メンバ名説明
index

クロック・ソースの識別子。

associatedChannel

クロック・ソースに関連付けられたチャンネルの最初のチャンネル番号。

associatedGroup

クロック・ソースに関連付けられたグループ番号。

isCurrentSource

現在選択されているクロック・ソースの場合 ASIOTrue が返ります。

name[32]

クロック・ソース名の文字列。

クロック・ソースを変更する

現在設定されているサウンド・クロック・ソースを変更します。


    ASIOError ASIOSetClockSources( long index )
	

引数説明
index

変更するクロック・ソースの識別子。
(ASIOGetClockSources()にて取得したASIOClockSource構造体のメンバ 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

ハードウェアからのタイムコード読み出しを許可あるいは禁止します。
 - パラメータ
   ありません。
 - 戻り値
   OK = ASE_SUCCESS / エラー = ASE_NotPresent

kAsioSetInputMonitor

ダイレクト入力モニターを設定します。
 - パラメータ
   ASIOInputMonitor構造体のポインタ。
 - 戻り値
   OK = ASE_SUCCESS / エラー = ASE_NotPresent

kAsioSetIoFormat

デバイスのI/Oフォーマットを変更します。
 - パラメータ
   フォーマットタイプ(ASIOIoFormat構造体)のポインタ。
 - 戻り値
   OK = ASE_SUCCESS / エラー = ASE_NotPresent

kAsioGetIoFormat

デバイスのI/Oフォーマットを取得します。
 - パラメータ
   フォーマットタイプ(ASIOIoFormat構造体)のポインタ。
 - 戻り値
   OK = ASE_SUCCESS / エラー = ASE_NotPresent

kAsioCanDoIoFormat

指定したデバイスのI/Oフォーマットが利用可能かどうか問い合わせます。
 - パラメータ
   フォーマットタイプ(ASIOIoFormat構造体)のポインタ。
 - 戻り値
   OK = ASE_SUCCESS / エラー = ASE_NotPresent

ASIOInputMonitor構造体は以下のとおりです。

メンバ名説明
input

モニタするチャンネル。(-1の場合、全チャンネル)

output

モニタ出力する出力チャンネル。

gain

ゲイン。 無音(0x00000000)から+12dB(0x7FFFFFFF)まで。0x20000000が0dB

state

ASIOTrue = モニター開始 / ASIOFalse = モニター停止。

pan

左右ボリュームバランス。 左チャンネル(0x00000000)から右チャンネル(0x7FFFFFFFF)まで。

ASIOIoFormat構造体は以下のとおりです。

メンバ名説明
FormatType

フォーマットタイプは以下のとおりです。
 - kASIOFormatInvalid
   未定義フォーマット。
 - kASIOPCMFormat
   PCMデータ。
 - kASIODSDFormat
   DSDデータ。

future[]

拡張データ。(512 - sizeof(ASIOIoFormatType)バイトの領域)

サンプルプログラムのダウンロード

サンプルプログラムのソースコードを以下からダウンロードできます。

開発環境Visual Studio 2005 + ASIO SDK 2
開発言語C言語
ファイル名sample_0004.zip



ASIOは Steinberg Media Technologies AG社の商標です。
Windowsは米国Microsoft Corporationの登録商標です。