25#define SP_PLUGIN_VERSION_STRING "1.7.1"
26#define SP_PLUGIN_VERSION 1
27#define SP_PLUGIN_REVISION 7
28#define SP_PLUGIN_UPDATE_LEVEL 1
29#define SP_PLUGIN_VERSION_ID (SP_PLUGIN_VERSION * 1000 + SP_PLUGIN_REVISION)
36#define SP_PLUGIN_CHECK_VERSION(version, revision, update) \
37 (SP_PLUGIN_VERSION > (version) || \
38 (SP_PLUGIN_VERSION == (version) && SP_PLUGIN_REVISION > (revision)) || \
39 (SP_PLUGIN_VERSION == (version) && SP_PLUGIN_REVISION == (revision) && SP_PLUGIN_UPDATE_LEVEL >= (update)))
41#define SP_PLUGIN_VERIFY_VERSION
42#define SP_PLUGIN_SUPPORTED_VERSION_ID 1003
48typedef const char *spPluginType;
49#define SP_PLUGIN_UNKNOWN NULL
53 SP_PLUGIN_CR_NONE = -1,
77#define SP_PLUGIN_PRIORITY_HIGHEST 0
78#define SP_PLUGIN_PRIORITY_HIGHER 1
79#define SP_PLUGIN_PRIORITY_MIDDLE 2
80#define SP_PLUGIN_PRIORITY_LOWER 3
81#define SP_PLUGIN_PRIORITY_LOWEST 4
82#define SP_PLUGIN_PRIORITY_NULL 5
86#define SP_PLUGIN_ERROR_SUCCESS SP_TRUE
87#define SP_PLUGIN_ERROR_FAILURE SP_FALSE
88#define SP_PLUGIN_ERROR_NO_ERROR SP_TRUE
89#define SP_PLUGIN_ERROR_WRONG_PLUGIN (-1)
90#define SP_PLUGIN_ERROR_OPEN (-2)
91#define SP_PLUGIN_ERROR_READ (-3)
92#define SP_PLUGIN_ERROR_WRITE (-4)
93#define SP_PLUGIN_ERROR_LOAD (-5)
94#define SP_PLUGIN_ERROR_SUITABLE_NOT_FOUND (-6)
95#define SP_PLUGIN_ERROR_MULTIPLE_INSTANCE (-7)
96#define SP_PLUGIN_ERROR_INSTANTIATE (-8)
97#define SP_PLUGIN_ERROR_BOGUS_FILE (-10)
98#define SP_PLUGIN_ERROR_FILE_TYPE (-11)
99#define SP_PLUGIN_ERROR_SAMP_RATE (-12)
100#define SP_PLUGIN_ERROR_SAMP_BIT (-13)
101#define SP_PLUGIN_ERROR_NUM_CHANNEL (-14)
102#define SP_PLUGIN_ERROR_OTHER_INFO (-15)
103#define SP_PLUGIN_ERROR_TOTAL_LENGTH_REQUIRED (-16)
104#define SP_PLUGIN_ERROR_UNKNOWN_DEVICE (-20)
105#define SP_PLUGIN_ERROR_USER (-256)
107#define SP_PLUGIN_CAPS_THREAD_SAFE (1<<1)
108#define SP_PLUGIN_CAPS_NEED_LOCK (1<<2)
109#define SP_PLUGIN_CAPS_MEMORY_SAFE (1<<3)
110#define SP_PLUGIN_CAPS_KEEP_IN_MEMORY (1<<4)
113#define SP_PLUGIN_CAPS_CUSTOM_OPTION_DIALOG (1<<5)
116#define SP_PLUGIN_CAPS_THREAD_BY_THREAD_SAFE (1<<6)
119#define SP_PLUGIN_CAPS_SUBPLUGIN_SHIFT 12
120#define SP_PLUGIN_CAPS_SUBPLUGIN (1<<SP_PLUGIN_CAPS_SUBPLUGIN_SHIFT)
122#define SP_PLUGIN_CAPS_USER_SHIFT 16
123#define SP_PLUGIN_CAPS_USER (1<<SP_PLUGIN_CAPS_USER_SHIFT)
126#define spRegisterUniquePluginRec(unique_id) \
128 extern spPluginRec *spGetPluginRec_ ## unique_id (long *, long *); \
130 if ((rec = spCallUniqueGetPluginRecFunc( spGetPluginRec_ ## unique_id )) != NULL) { \
131 spAddPluginRecList(rec, #unique_id ); \
135#define spRegisterUniquePluginRec(unique_id)
145typedef struct _spPluginRect spPluginRect;
147typedef struct _spPluginRec spPluginRec;
148typedef struct _spPluginHost spPluginHost;
151typedef struct _spIoPluginRec spIoPluginRec;
153typedef spPluginRec *(*spGetPluginRecFunc)(void);
154typedef long (*spPluginVersionFunc)(void);
155typedef spPluginRec *(*spUniqueGetPluginRecFunc)(
long *system_version_id,
long *supported_version_id);
159typedef spBool (*spSearchSpecificPluginCallback)(
spPlugin *plugin,
void *call_data);
205extern void spSetPluginLang(
const char *lang);
211extern spBool spAddPluginRecList(spPluginRec *plugin_rec,
const char *name);
212extern spBool spRemovePluginRecList(spPluginRec *plugin_rec);
213extern spBool _spRegisterPluginRec(spPluginRec *plugin_rec,
const char *name,
long system_version_id,
long supported_version_id);
214#define spRegisterPluginRec(plugin_rec, name) _spRegisterPluginRec(plugin_rec, name, SP_PLUGIN_SUPPORTED_VERSION_ID, SP_PLUGIN_VERSION_ID)
215extern spPlugin *spAllocNullPlugin(
void);
216extern spPluginRec *spCallUniqueGetPluginRecFunc(spUniqueGetPluginRecFunc func);
260extern unsigned long spGetPluginCaps(
spPlugin *plugin);
261extern spBool spIsPluginCapable(
spPlugin *plugin,
unsigned long cap);
263extern void *spGetPluginInstance(
spPlugin *plugin);
264extern long spGetNumPluginInstance(
spPlugin *plugin);
268extern spPlugin *spInstantiatePlugin(
const char *plugin_name);
273extern void spPrintPluginOptions(
spPlugin *plugin);
274extern spBool spPluginUsage(
const char *plugin_name);
277extern const char *spSearchPluginFile(
int index);
279extern void spFreePluginGlobals(
void);
281extern spBool spEqPluginNameString(
const char *name1,
const char *name2);
283extern spPlugin *spSearchSpecificPlugin(
int *index, spSearchSpecificPluginCallback call_func,
void *call_data);
284extern char *xspSearchSpecificPluginFile(
int *index, spSearchSpecificPluginCallback call_func,
void *call_data);
285extern int spGetNumSpecificPlugin(spSearchSpecificPluginCallback call_func,
void *call_data);
A class to handle plugin-based processing.
const char * spGetPluginName(spPlugin *plugin)
long spGetPluginVersionId(spPlugin *plugin)
spBool spGetPluginVersion(spPlugin *plugin, int *version, int *revision)
spPlugin * spLoadPlugin(const char *plugin_name)
spBool spEqPluginType(spPlugin *plugin, spPluginType type)
const char * spGetPluginInformation(spPlugin *plugin)
spBool spFreePlugin(spPlugin *plugin)
int spGetPluginPriority(spPlugin *plugin)
const char * spGetPluginId(spPlugin *plugin)
const char * spGetPluginDescription(spPlugin *plugin)
int spBool
Definition spDefs.h:248
struct _spOptions * spOptions
Definition spOption.h:62
void spSetPluginSearchPath(const char *pathlist)
spPluginDeviceType
Definition spPlugin.h:67
spBool spIsPluginFile(const char *filename)
spBool spAppendPluginSearchPath(const char *pathlist)
int spPluginError
Definition spPlugin.h:85
char * xspSearchPluginFile(int index)
const char * spGetPluginSearchPath(void)
spBool spPrependPluginSearchPath(const char *pathlist)
spPluginState
Definition spPlugin.h:59
spPluginCallbackReason
Definition spPlugin.h:52
@ SP_PLUGIN_DEVICE_FILE
Definition spPlugin.h:69
@ SP_PLUGIN_DEVICE_MIXER
Definition spPlugin.h:72
@ SP_PLUGIN_DEVICE_AUDIO
Definition spPlugin.h:70
@ SP_PLUGIN_DEVICE_OTHERS
Definition spPlugin.h:73
@ SP_PLUGIN_DEVICE_CD
Definition spPlugin.h:71
@ SP_PLUGIN_DEVICE_UNKNOWN
Definition spPlugin.h:68
@ SP_PLUGIN_STATE_ERROR
Definition spPlugin.h:60
@ SP_PLUGIN_STATE_STOP
Definition spPlugin.h:61
@ SP_PLUGIN_STATE_START
Definition spPlugin.h:62
@ SP_PLUGIN_STATE_PAUSE
Definition spPlugin.h:63
@ SP_PLUGIN_CR_OPTION
Definition spPlugin.h:55
@ SP_PLUGIN_CR_ERROR
Definition spPlugin.h:54