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

[ソースコード]

マクロ定義

#define SP_PLUGIN_CHECK_VERSION(version, revision, update)
 
#define SP_PLUGIN_SUPPORTED_VERSION_ID   /*SP_PLUGIN_VERSION_ID*/1003
 
#define SP_PLUGIN_PRIORITY_HIGHEST   0
 
#define SP_PLUGIN_PRIORITY_HIGHER   1
 
#define SP_PLUGIN_PRIORITY_MIDDLE   2
 
#define SP_PLUGIN_PRIORITY_LOWER   3
 
#define SP_PLUGIN_PRIORITY_LOWEST   4
 
#define SP_PLUGIN_PRIORITY_NULL   5
 
#define SP_PLUGIN_ERROR_SUCCESS   SP_TRUE
 
#define SP_PLUGIN_ERROR_FAILURE   SP_FALSE
 
#define SP_PLUGIN_ERROR_NO_ERROR   SP_TRUE
 
#define SP_PLUGIN_ERROR_WRONG_PLUGIN   (-1)
 
#define SP_PLUGIN_ERROR_OPEN   (-2)
 
#define SP_PLUGIN_ERROR_READ   (-3)
 
#define SP_PLUGIN_ERROR_WRITE   (-4)
 
#define SP_PLUGIN_ERROR_LOAD   (-5)
 
#define SP_PLUGIN_ERROR_SUITABLE_NOT_FOUND   (-6)
 
#define SP_PLUGIN_ERROR_MULTIPLE_INSTANCE   (-7)
 
#define SP_PLUGIN_ERROR_INSTANTIATE   (-8)
 
#define SP_PLUGIN_ERROR_BOGUS_FILE   (-10)
 
#define SP_PLUGIN_ERROR_FILE_TYPE   (-11)
 
#define SP_PLUGIN_ERROR_SAMP_RATE   (-12)
 
#define SP_PLUGIN_ERROR_SAMP_BIT   (-13)
 
#define SP_PLUGIN_ERROR_NUM_CHANNEL   (-14)
 
#define SP_PLUGIN_ERROR_OTHER_INFO   (-15)
 
#define SP_PLUGIN_ERROR_TOTAL_LENGTH_REQUIRED   (-16)
 
#define SP_PLUGIN_ERROR_UNKNOWN_DEVICE   (-20)
 
#define SP_PLUGIN_ERROR_USER   (-256)
 
#define SP_PLUGIN_CAPS_THREAD_SAFE   (1<<1)
 
#define SP_PLUGIN_CAPS_NEED_LOCK   (1<<2)
 
#define SP_PLUGIN_CAPS_MEMORY_SAFE   (1<<3)
 
#define SP_PLUGIN_CAPS_KEEP_IN_MEMORY   (1<<4)
 
#define SP_PLUGIN_CAPS_CUSTOM_OPTION_DIALOG   (1<<5)
 
#define SP_PLUGIN_CAPS_THREAD_BY_THREAD_SAFE   (1<<6)
 

型定義

typedef int spPluginError
 

列挙型

enum  spPluginCallbackReason { }
 
enum  spPluginState { SP_PLUGIN_STATE_ERROR = -1 , SP_PLUGIN_STATE_STOP = 0 , SP_PLUGIN_STATE_START = 1 , SP_PLUGIN_STATE_PAUSE }
 
enum  spPluginDeviceType {
  SP_PLUGIN_DEVICE_UNKNOWN = -1 , SP_PLUGIN_DEVICE_FILE = 0 , SP_PLUGIN_DEVICE_AUDIO = 1 , SP_PLUGIN_DEVICE_CD = 2 ,
  SP_PLUGIN_DEVICE_MIXER = 3 , SP_PLUGIN_DEVICE_OTHERS = 4
}
 

関数

void spSetPluginSearchPath (const char *pathlist)
 
spPluginspLoadPlugin (const char *plugin_name)
 
spBool spFreePlugin (spPlugin *plugin)
 
spBool spEqPluginType (spPlugin *plugin, spPluginType type)
 
const char * spGetPluginName (spPlugin *plugin)
 
const char * spGetPluginId (spPlugin *plugin)
 
const char * spGetPluginDescription (spPlugin *plugin)
 
const char * spGetPluginInformation (spPlugin *plugin)
 
long spGetPluginVersionId (spPlugin *plugin)
 
int spGetPluginPriority (spPlugin *plugin)
 
spBool spGetPluginVersion (spPlugin *plugin, int *version, int *revision)
 
spBool spIsPluginFile (const char *filename)
 
char * xspSearchPluginFile (int index)
 

関数詳解

◆ spLoadPlugin()

spPlugin * spLoadPlugin ( const char * plugin_name)
extern

プラグインをロードします. 同じプラグインに対して, spFreePlugin() を呼ぶ前に続けてこの関数を呼んだ場合は, すでに開いているプラグインが返されます. spFreePlugin() は必ずこの関数を呼んだ回数と同じだけ呼ぶ必要があります. 複数回呼んだ場合は,プラグイン内部の初期化関数は最初の1回だけ呼ばれます.

引数
[in]plugin_nameプラグインの名前のヌル終端文字列を指定します.拡張子は不要です. spSetPluginSearchPath() でディレクトリが指定されていればそのディレクトリを,そうでなければデフォルトのディレクトリをサーチして読み込みます.
戻り値
成功すれば spPlugin 型へのポインタが返ります. プラグインを使用しなくなったら spFreePlugin() を呼びます. 失敗すると NULL が返ります.

◆ spFreePlugin()

spBool spFreePlugin ( spPlugin * plugin)
extern

プラグインのアンロードを行います. 同じプラグインに対して,複数回 spLoadPlugin() を呼んだ場合は,同じ回数だけこの関数を呼ぶ必要があります.

引数
[in]pluginspLoadPlugin() で得られた spPlugin へのポインタを指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗

◆ spEqPluginType()

spBool spEqPluginType ( spPlugin * plugin,
spPluginType type )
extern

プラグインが指定したプラグインの種類に一致するかどうかを調べます.

引数
[in]pluginspLoadPlugin() で得られた spPlugin へのポインタを指定します.
[in]typeプラグインの種類を指定します. SP_PLUGIN_INPUT , SP_PLUGIN_OUTPUT などが指定できます.
戻り値
SP_TRUE一致
SP_FALSE一致しない

◆ spGetPluginName()

const char * spGetPluginName ( spPlugin * plugin)
extern

ロードしたプラグインの名前を得ます.

引数
[in]pluginspLoadPlugin() で得られた spPlugin へのポインタを指定します.
戻り値
プラグイン名が含まれる,プラグイン内のスタティックなヌル終端文字列が返ります.

◆ spGetPluginId()

const char * spGetPluginId ( spPlugin * plugin)
extern

ロードしたプラグインID(文字列)を得ます.

引数
[in]pluginspLoadPlugin() で得られた spPlugin へのポインタを指定します.
戻り値
プラグインIDが含まれる,プラグイン内のスタティックなヌル終端文字列が返ります.

◆ spGetPluginDescription()

const char * spGetPluginDescription ( spPlugin * plugin)
extern

ロードしたプラグインの説明(改行を含まない)を得ます.

引数
[in]pluginspLoadPlugin() で得られた spPlugin へのポインタを指定します.
戻り値
改行を含まないプラグインの説明が含まれる,プラグイン内のスタティックなヌル終端文字列が返ります.

◆ spGetPluginInformation()

const char * spGetPluginInformation ( spPlugin * plugin)
extern

ロードしたプラグインの長めの説明(改行を含む)を得ます.

引数
[in]pluginspLoadPlugin() で得られた spPlugin へのポインタを指定します.
戻り値
改行を含むプラグインの長めの説明が含まれる,プラグイン内のスタティックなヌル終端文字列が返ります.

◆ spGetPluginVersionId()

long spGetPluginVersionId ( spPlugin * plugin)
extern

ロードしたプラグインのバージョンID( long 型整数)を得ます.

引数
[in]pluginspLoadPlugin() で得られた spPlugin へのポインタを指定します.
戻り値
long 型整数のバージョンIDが返ります.

◆ spGetPluginPriority()

int spGetPluginPriority ( spPlugin * plugin)
extern

ロードしたプラグインの優先順位を得ます.
優先順位は,同じ種類のプラグインがあった場合にどちらが優先されるかを示しています. SP_PLUGIN_PRIORITY_HIGHEST が最も高く, SP_PLUGIN_PRIORITY_LOWEST が最も低くなります.

引数
[in]pluginspLoadPlugin() で得られた spPlugin へのポインタを指定します.
戻り値
優先順位の値が得られます.

◆ spGetPluginVersion()

spBool spGetPluginVersion ( spPlugin * plugin,
int * version,
int * revision )
extern

ロードしたプラグインのバージョン番号を得ます.

引数
[in]pluginspLoadPlugin() で得られた spPlugin へのポインタを指定します.
[out]versionバージョン番号を得る変数のアドレスを指定します.
[out]revisionリビジョン番号を得る変数のアドレスを指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗