spAudio
読み取り中…
検索中…
一致する文字列を見つけられません
spOutputPlugin.h ファイル
#include <sp/spWave.h>
#include <sp/spPlugin.h>
spOutputPlugin.h の依存先関係図:
被依存関係図:

[ソースコード]

関数

long spWritePlugin (spPlugin *plugin, void *data, long length)
 
long spWritePluginInByte (spPlugin *plugin, void *data, long data_size)
 
long spWritePluginDoubleWeighted (spPlugin *plugin, double *data, long length, double weight)
 
long spWritePluginDouble (spPlugin *plugin, double *data, long length)
 
char * xspFindRelatedPluginFile (const char *plugin_name)
 
char * xspFindSuitablePluginFileWithPriority (spPluginDeviceType device_type, const char *filename, const char *mode, int *current_priority)
 
char * xspFindSuitablePluginFile (spPluginDeviceType device_type, const char *filename, const char *mode)
 
spPluginspOpenFilePlugin (const char *plugin_name, const char *filename, const char *mode, spPluginDeviceType device_type, spWaveInfo *wave_info, spSongInfo *song_info, spPluginOpenCallback call_func, void *call_data, spPluginError *error)
 
spPluginspOpenFilePluginAuto (const char *plugin_name, const char *filename, const char *mode, spPluginDeviceType device_type, spWaveInfo *wave_info, spSongInfo *song_info, spPluginOpenCallback call_func, void *call_data, spPluginError *error)
 
spPluginspOpenFilePluginArg (const char *plugin_name, const char *filename, const char *mode, spPluginDeviceType device_type, spWaveInfo *wave_info, spSongInfo *song_info, int argc, char **argv, spPluginError *error)
 
spPluginspOpenFilePluginArgAuto (const char *plugin_name, const char *filename, const char *mode, spPluginDeviceType device_type, spWaveInfo *wave_info, spSongInfo *song_info, int argc, char **argv, spPluginError *error)
 
spBool spCloseFilePlugin (spPlugin *plugin)
 

関数詳解

◆ spWritePlugin()

long spWritePlugin ( spPlugin * plugin,
void * data,
long length )
extern

プラグインを用いてファイルにデータを書き込みます. spWritePluginInByte() とはデータの長さの与え方が異なるだけです.

引数
[in]pluginspOpenFilePlugin() で得られた spPlugin 型へのポインタを指定します.
[in]data書き込むデータです.書き込むデータの量子化ビット数に応じて型が変わります. 8・16ビットであれば short 型,24・32ビットであれば long 型,64ビットであれば double 型になります.
[in]length書き込む data のポイント数です(継続時間長をポイント単位にしたものではありません). 例えば,ステレオデータの場合であれば, data の継続時間長をポイント単位にしたものの2倍の値です.
戻り値
書き込んだポイント数が返ります.正常に書きこめた場合は引数の length と同じ値になります.

◆ spWritePluginInByte()

long spWritePluginInByte ( spPlugin * plugin,
void * data,
long data_size )
extern

プラグインを用いてファイルにデータを書き込みます. spWritePlugin() とはデータの長さの与え方が異なるだけです.

引数
[in]pluginspOpenFilePlugin() で得られた spPlugin 型へのポインタを指定します.
[in]data書き込むデータです.書き込むデータの量子化ビット数に応じて型が変わります. 8・16ビットであれば short 型,24・32ビットであれば long 型,64ビットであれば double 型になります.
[in]data_size書き込む data のバイト数です.
戻り値
書き込んだバイト数が返ります.正常に書きこめた場合は引数の data_size と同じ値になります.

◆ spWritePluginDoubleWeighted()

long spWritePluginDoubleWeighted ( spPlugin * plugin,
double * data,
long length,
double weight )
extern

プラグインを用いてファイルにデータを書き込みます. 値の範囲は,原則として-1〜1である必要があります.

引数
[in]pluginspOpenFilePlugin() で得られた spPlugin 型へのポインタを指定します.
[in]data書き込むデータです.
[in]length書き込む data のポイント数です(継続時間長をポイント単位にしたものではありません). 例えば,ステレオデータの場合であれば, data の継続時間長をポイント単位にしたものの2倍の値です.
[in]weight書き込み前にデータの振幅値を何倍してデバイスに渡すかを指定します.
戻り値
書き込んだポイント数が返ります.正常に書きこめた場合は引数の length と同じ値になります.

◆ spWritePluginDouble()

long spWritePluginDouble ( spPlugin * plugin,
double * data,
long length )
extern

プラグインを用いてファイルにデータを書き込みます. 値の範囲は,原則として-1〜1である必要があります.

引数
[in]pluginspOpenFilePlugin() で得られた spPlugin 型へのポインタを指定します.
[in]data書き込むデータです.
[in]length書き込む data のポイント数です(継続時間長をポイント単位にしたものではありません). 例えば,ステレオデータの場合であれば, data の継続時間長をポイント単位にしたものの2倍の値です.
戻り値
書き込んだポイント数が返ります.正常に書きこめた場合は引数の length と同じ値になります.

◆ xspFindRelatedPluginFile()

char * xspFindRelatedPluginFile ( const char * plugin_name)
extern

関係のあるプラグインの名前を取得します. 入力プラグインと対応する出力プラグインを探す場合などに使用します.

引数
[in]plugin_nameプラグイン名を指定します. 例えば, "input_wav" のように指定します.
戻り値
関連するプラグインの名前が返ります. 例えば, "input_wav" を引数として与えた場合は, "output_wav" が返ります. 存在しなかった場合には NULL が返ります. 使用しなくなった場合は, xspFree() を用いて解放して下さい.

◆ xspFindSuitablePluginFileWithPriority()

char * xspFindSuitablePluginFileWithPriority ( spPluginDeviceType device_type,
const char * filename,
const char * mode,
int * current_priority )
extern

ファイル名とファイルを開く際のモードから,そのファイルをサポートしている適切なプラグイン名を取得します.

引数
[in]device_type通常は, SP_PLUGIN_DEVICE_FILE を指定します.
[in]filenameファイル名を指定します.
[in]modeファイルを開く際のモードを指定します. 読み込みモードでファイルを開く場合は "r" を, 書き込みモードでファイルを開く場合は "w" を指定します.
[in,out]current_priority現在の優先度の値を保持する変数のアドレスを渡します. この優先度からプラグインの検索を始めます. この優先度よりも高い優先度を持つプラグインは無視されます. 終了時に,優先度の値は,次の呼び出しのために更新されます.
戻り値
プラグインの名前が返ります.存在しなかった場合には NULL が返ります. 使用しなくなった場合は, xspFree() を用いて解放して下さい.

◆ xspFindSuitablePluginFile()

char * xspFindSuitablePluginFile ( spPluginDeviceType device_type,
const char * filename,
const char * mode )
extern

ファイル名とファイルを開く際のモードから,そのファイルをサポートしている適切なプラグイン名を取得します.

引数
[in]device_type通常は, SP_PLUGIN_DEVICE_FILE を指定します.
[in]filenameファイル名を指定します.
[in]modeファイルを開く際のモードを指定します. 読み込みモードでファイルを開く場合は "r" を, 書き込みモードでファイルを開く場合は "w" を指定します.
戻り値
プラグインの名前が返ります.存在しなかった場合には NULL が返ります. 使用しなくなった場合は, xspFree() を用いて解放して下さい.

◆ spOpenFilePlugin()

spPlugin * spOpenFilePlugin ( const char * plugin_name,
const char * filename,
const char * mode,
spPluginDeviceType device_type,
spWaveInfo * wave_info,
spSongInfo * song_info,
spPluginOpenCallback call_func,
void * call_data,
spPluginError * error )
extern

プラグインを用いてファイルを開きます.

引数
[in]plugin_nameプラグイン名を指定します. 例えば, "input_raw" のように指定します. NULL を指定すると,読み込みの場合はファイルの情報から,書き込みの場合はファイル名から自動判定します.
[in]filenameファイル名を指定します.
[in]modeファイルを開く際のモードを指定します. 読み込みモードでファイルを開く場合は "r" を, 書き込みモードでファイルを開く場合は "w" を指定します. 現在はこの2つのモードのみをサポートしています.
[in]device_typeファイルを開く場合は, SP_PLUGIN_DEVICE_FILE を指定します. オーディオデバイスを開く場合は, SP_PLUGIN_DEVICE_AUDIO を指定します.
[in,out]wave_infospWaveInfo 型変数へのポインタを指定します. 読み込みモードの場合は, spWaveInfo 型変数のメンバーにファイルの情報が返ってきます. 例えば, wave_info.samp_rate でサンプリング周波数が, wave_info.samp_bit で量子化ビット数が得られます. 書き込みモードの場合は,書き込むファイルにメンバーの値が設定されます.
[in,out]song_infospSongInfo 型変数へのポインタを指定します. 読み込みモードの場合は, spSongInfo 型変数のメンバーに楽曲情報が返ってきます.
[in]call_funcコールバック関数を指定します.不要であればNULLを指定できます.指定する場合は,次の形である必要があります:
spBool func(spPlugin *plugin, spPluginCallbackReason reason, void *host_data, void *call_data);
int spBool
spPluginCallbackReason
[in]call_dataコールバックユーザーデータを指定します.コールバック関数が呼ばれる際に,第4引数にこの値が入ることになります.
[out]error戻り値が NULL だった場合のエラーコードの値を保持する変数のアドレスを渡します.
戻り値
spPlugin 型へのポインタが返ります. これを後の処理において,関数の引数として使用することになります.
参照
spCloseFilePlugin() , spOpenFilePluginAuto() , spOpenFilePluginArg() , spOpenFilePluginArgAuto()

◆ spOpenFilePluginAuto()

spPlugin * spOpenFilePluginAuto ( const char * plugin_name,
const char * filename,
const char * mode,
spPluginDeviceType device_type,
spWaveInfo * wave_info,
spSongInfo * song_info,
spPluginOpenCallback call_func,
void * call_data,
spPluginError * error )
extern

プラグインを用いてファイルを開きます. 最初は plugin_name の引数を無視してファイルを開こうとし,対応するプラグインが見つからなかった場合のみに plugin_name を用いてファイルを開く,という処理をします.例えば,自動でファイル形式を判定できなかった場合に,Rawファイルとして読み込みたい場合などに利用します.

引数
[in]plugin_nameプラグイン名を指定します. 例えば, "input_raw" のように指定します. NULL を指定すると,読み込みの場合はファイルの情報から,書き込みの場合はファイル名から自動判定します.
[in]filenameファイル名を指定します.
[in]modeファイルを開く際のモードを指定します. 読み込みモードでファイルを開く場合は "r" を, 書き込みモードでファイルを開く場合は "w" を指定します. 現在はこの2つのモードのみをサポートしています.
[in]device_typeファイルを開く場合は, SP_PLUGIN_DEVICE_FILE を指定します. オーディオデバイスを開く場合は, SP_PLUGIN_DEVICE_AUDIO を指定します.
[in,out]wave_infospWaveInfo 型変数へのポインタを指定します. 読み込みモードの場合は, spWaveInfo 型変数のメンバーにファイルの情報が返ってきます. 例えば, wave_info.samp_rate でサンプリング周波数が, wave_info.samp_bit で量子化ビット数が得られます. 書き込みモードの場合は,書き込むファイルにメンバーの値が設定されます.
[in,out]song_infospSongInfo 型変数へのポインタを指定します. 読み込みモードの場合は, spSongInfo 型変数のメンバーに楽曲情報が返ってきます.
[in]call_funcコールバック関数を指定します.不要であればNULLを指定できます.指定する場合は,次の型である必要があります:
spBool func(spPlugin *plugin, spPluginCallbackReason reason, void *host_data, void *call_data);
[in]call_dataコールバックユーザーデータを指定します.コールバック関数が呼ばれる際に,第4引数にこの値が入ることになります.
[out]error戻り値が NULL だった場合のエラーコードの値を保持する変数のアドレスを渡します.
戻り値
spPlugin 型へのポインタが返ります. これを後の処理において,関数の引数として使用することになります.
参照
spCloseFilePlugin() , spOpenFilePlugin() , spOpenFilePluginArg() , spOpenFilePluginArgAuto()

◆ spOpenFilePluginArg()

spPlugin * spOpenFilePluginArg ( const char * plugin_name,
const char * filename,
const char * mode,
spPluginDeviceType device_type,
spWaveInfo * wave_info,
spSongInfo * song_info,
int argc,
char ** argv,
spPluginError * error )
extern

プラグインを用いてファイルを開きます. この関数では,プラグインに対するコマンドラインオプションを渡せます. いくつかのプラグインはコマンドラインオプションに対応しているため,この関数を使用すると,関係のあるコマンドラインオプションを渡せるようになります. プラグインに関係のないコマンドラインオプションや無関係の文字列は無視されます.

引数
[in]plugin_nameプラグイン名を指定します. 例えば, "input_raw" のように指定します. NULL を指定すると,読み込みの場合はファイルの情報から,書き込みの場合はファイル名から自動判定します.
[in]filenameファイル名を指定します.
[in]modeファイルを開く際のモードを指定します. 読み込みモードでファイルを開く場合は "r" を,書き込みモードでファイルを開く場合は "w" を指定します. 現在はこの2つのモードのみをサポートしています.
[in]device_typeファイルを開く場合は, SP_PLUGIN_DEVICE_FILE を指定します. オーディオデバイスを開く場合は, SP_PLUGIN_DEVICE_AUDIO を指定します.
[in,out]wave_infospWaveInfo 型変数へのポインタを指定します. 読み込みモードの場合は, spWaveInfo 型変数のメンバーにファイルの情報が返ってきます. 例えば, wave_info.samp_rate でサンプリング周波数が, wave_info.samp_bit で量子化ビット数が得られます. 書き込みモードの場合は,書き込むファイルにメンバーの値が設定されます.
[in,out]song_infospSongInfo 型変数へのポインタを指定します. 読み込みモードの場合は, spSongInfo 型変数のメンバーに楽曲情報が返ってきます.
[in]argcargv で示される配列の要素数を指定します. main 関数で受け取るものをそのまま渡しても構いません.
[in]argvそれぞれの要素にコマンドラインオプションの文字列値が入った配列を渡します. main 関数で受け取るものをそのまま渡しても構いません.
[out]error戻り値が NULL だった場合のエラーコードの値を保持する変数のアドレスを渡します.
戻り値
spPlugin 型へのポインタが返ります. これを後の処理において,関数の引数として使用することになります.
参照
spCloseFilePlugin() , spOpenFilePlugin() , spOpenFilePluginAuto() , spOpenFilePluginArgAuto()

◆ spOpenFilePluginArgAuto()

spPlugin * spOpenFilePluginArgAuto ( const char * plugin_name,
const char * filename,
const char * mode,
spPluginDeviceType device_type,
spWaveInfo * wave_info,
spSongInfo * song_info,
int argc,
char ** argv,
spPluginError * error )
extern

プラグインを用いてファイルを開きます. 最初は plugin_name の引数を無視してファイルを開こうとし,対応するプラグインが見つからなかった場合のみに plugin_name を用いてファイルを開く,という処理をします.例えば,自動でファイル形式を判定できなかった場合に,Rawファイルとして読み込みたい場合などに利用します.
また,この関数では,プラグインに対するコマンドラインオプションを渡せます. いくつかのプラグインはコマンドラインオプションに対応しているため,この関数を使用すると,関係のあるコマンドラインオプションを渡せるようになります. プラグインに関係のないコマンドラインオプションや無関係の文字列は無視されます.

引数
[in]plugin_nameプラグイン名を指定します. 例えば, "input_raw" のように指定します. NULL を指定すると,読み込みの場合はファイルの情報から,書き込みの場合はファイル名から自動判定します.
[in]filenameファイル名を指定します.
[in]modeファイルを開く際のモードを指定します. 読み込みモードでファイルを開く場合は "r" を, 書き込みモードでファイルを開く場合は "w" を指定します. 現在はこの2つのモードのみをサポートしています.
[in]device_typeファイルを開く場合は, SP_PLUGIN_DEVICE_FILE を指定します. オーディオデバイスを開く場合は, SP_PLUGIN_DEVICE_AUDIO を指定します.
[in,out]wave_infospWaveInfo 型変数へのポインタを指定します. 読み込みモードの場合は, spWaveInfo 型変数のメンバーにファイルの情報が返ってきます. 例えば, wave_info.samp_rate でサンプリング周波数が, wave_info.samp_bit で量子化ビット数が得られます. 書き込みモードの場合は,書き込むファイルにメンバーの値が設定されます.
[in,out]song_infospSongInfo 型変数へのポインタを指定します. 読み込みモードの場合は, spSongInfo 型変数のメンバーに楽曲情報が返ってきます.
[in]argcargv で示される配列の要素数を指定します. main 関数で受け取るものをそのまま渡しても構いません.
[in]argvそれぞれの要素にコマンドラインオプションの文字列値が入った配列を渡します. main 関数で受け取るものをそのまま渡しても構いません.
[out]error戻り値が NULL だった場合のエラーコードの値を保持する変数のアドレスを渡します.
戻り値
spPlugin 型へのポインタが返ります. これを後の処理において,関数の引数として使用することになります.
参照
spCloseFilePlugin() , spOpenFilePlugin() , spOpenFilePluginAuto() , spOpenFilePluginArg()

◆ spCloseFilePlugin()

spBool spCloseFilePlugin ( spPlugin * plugin)
extern

プラグインを用いて開いたファイルを閉じます. ファイルを閉じるだけでなく,プラグインの解放処理( spPlugin 型へのポインタに確保されたメモリの解放など)も行われます. そのため,この関数を呼び出した後は,引数で用いた spPlugin 型へのポインタへアクセスしてはいけません.

引数
[in]pluginspOpenFilePlugin() で得られた spPlugin 型へのポインタを指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗
参照
spOpenFilePlugin() , spOpenFilePluginAuto() , spOpenFilePluginArg() , spOpenFilePluginArgAuto()