00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __SPPlugins__
00021 #define __SPPlugins__
00022
00023
00024
00025
00026
00027
00028
00029
00030 #include "SPTypes.h"
00031 #include "SPFiles.h"
00032 #include "SPAdapts.h"
00033 #include "SPProps.h"
00034 #include "SPStrngs.h"
00035
00036 #include "SPHeaderBegin.h"
00037
00038 #ifdef __cplusplus
00039 extern "C" {
00040 #endif
00041
00042
00043
00044
00045
00046
00047
00049 #define kSPPluginsSuite "SP Plug-ins Suite"
00050
00051 #define kSPPluginsSuiteVersion4 4
00052
00053 #define kSPPluginsSuiteVersion5 5
00054
00055 #ifdef WIN_ENV
00056
00057 #define kSPPluginsSuiteVersion6 6
00058
00059 #define kSPPluginsSuiteVersion kSPPluginsSuiteVersion6
00060 #elif MAC_ENV
00061 #define kSPPluginsSuiteVersion kSPPluginsSuiteVersion4
00062 #endif
00063
00066 #define kSPRuntimePluginList ((SPPluginListRef)NULL)
00067
00068
00069
00070
00071
00072
00073
00074
00076 typedef struct SPPlugin *SPPluginRef;
00080 typedef struct SPPluginList *SPPluginListRef;
00083 typedef struct SPPluginListIterator *SPPluginListIteratorRef;
00084
00086 typedef struct _SPErrorData
00087 {
00089 SPPlatformFileReference mErrorFile;
00091 SPErr mErrorCode;
00092 } SPErrorData, *SPErrorDataPtr;
00093
00095 typedef SPAPI SPErr (*SPPluginEntryFunc)( const char *caller, const char *selector, void *message );
00096
00097
00098
00099
00100
00101
00102
00118 typedef struct SPPluginsSuite {
00119
00125 SPAPI SPErr (*AllocatePluginList)( SPStringPoolRef strings, SPPluginListRef *pluginList );
00130 SPAPI SPErr (*FreePluginList)( SPPluginListRef pluginList );
00131
00144 SPAPI SPErr (*AddPlugin)( SPPluginListRef pluginList, const SPPlatformFileReference *fileSpec,
00145 PIPropertyList *PiPL, const char *adapterName, void *adapterInfo, SPPluginRef *plugin );
00146
00154 SPAPI SPErr (*NewPluginListIterator)( SPPluginListRef pluginList, SPPluginListIteratorRef *iter );
00161 SPAPI SPErr (*NextPlugin)( SPPluginListIteratorRef iter, SPPluginRef *plugin );
00166 SPAPI SPErr (*DeletePluginListIterator)( SPPluginListIteratorRef iter );
00173 SPAPI SPErr (*GetPluginListNeededSuiteAvailable)( SPPluginListRef pluginList, SPBoolean *available );
00174
00179 SPAPI SPErr (*GetPluginHostEntry)( SPPluginRef plugin, SPPluginEntryFunc *host );
00185 SPAPI SPErr (*GetPluginFileReference)( SPPluginRef plugin, SPPlatformFileReference *fileSpec );
00191 SPAPI SPErr (*GetPluginPropertyList)( SPPluginRef plugin, SPPropertyListRef *propertList );
00197 SPAPI SPErr (*GetPluginGlobals)( SPPluginRef plugin, void **globals );
00203 SPAPI SPErr (*SetPluginGlobals)( SPPluginRef plugin, void *globals );
00209 SPAPI SPErr (*GetPluginStarted)( SPPluginRef plugin, ai::int32 *started );
00214 SPAPI SPErr (*SetPluginStarted)( SPPluginRef plugin, ai::int32 started );
00220 SPAPI SPErr (*GetPluginSkipShutdown)( SPPluginRef plugin, ai::int32 *skipShutdown );
00226 SPAPI SPErr (*SetPluginSkipShutdown)( SPPluginRef plugin, ai::int32 skipShutdown );
00232 SPAPI SPErr (*GetPluginBroken)( SPPluginRef plugin, ai::int32 *broken );
00239 SPAPI SPErr (*SetPluginBroken)( SPPluginRef plugin, ai::int32 broken );
00245 SPAPI SPErr (*GetPluginAdapter)( SPPluginRef plugin, SPAdapterRef *adapter );
00254 SPAPI SPErr (*GetPluginAdapterInfo)( SPPluginRef plugin, void **adapterInfo );
00262 SPAPI SPErr (*SetPluginAdapterInfo)( SPPluginRef plugin, void *adapterInfo );
00263
00277 SPAPI SPErr (*FindPluginProperty)( SPPluginRef plugin, PIType vendorID, PIType propertyKey, ai::int32 propertyID, PIProperty **p );
00278
00283 SPAPI SPErr (*GetPluginName)( SPPluginRef plugin, const char **name );
00288 SPAPI SPErr (*SetPluginName)( SPPluginRef plugin, const char *name );
00293 SPAPI SPErr (*GetNamedPlugin)( const char *name, SPPluginRef *plugin);
00294
00299 SPAPI SPErr (*SetPluginPropertyList)( SPPluginRef plugin, SPFileRef file );
00300
00301
00302
00308 SPAPI SPErr (*GetPluginHostInfo)( SPPluginRef plugin, void **hostInfo );
00313 SPAPI SPErr (*SetPluginHostInfo)( SPPluginRef plugin, void *hostInfo );
00314
00315 } SPPluginsSuite;
00316
00317
00319 SPAPI SPErr SPAllocatePluginList( SPStringPoolRef strings, SPPluginListRef *pluginList );
00321 SPAPI SPErr SPFreePluginList( SPPluginListRef pluginList );
00323 SPAPI SPErr SPGetPluginListNeededSuiteAvailable( SPPluginListRef pluginList, SPBoolean *available );
00324
00326 SPAPI SPErr SPAddPlugin( SPPluginListRef pluginList, const SPPlatformFileReference *fileSpec,
00327 PIPropertyList *PiPL, const char *adapterName, void *adapterInfo, SPPluginRef *plugin );
00328
00330 SPAPI SPErr SPNewPluginListIterator( SPPluginListRef pluginList, SPPluginListIteratorRef *iter );
00332 SPAPI SPErr SPNextPlugin( SPPluginListIteratorRef iter, SPPluginRef *plugin );
00334 SPAPI SPErr SPDeletePluginListIterator( SPPluginListIteratorRef iter );
00335
00337 SPAPI SPErr SPGetHostPluginEntry( SPPluginRef plugin, SPPluginEntryFunc *host );
00339 SPAPI SPErr SPGetPluginFileReference( SPPluginRef plugin, SPPlatformFileReference *fileSpec );
00341 SPAPI SPErr SPGetPluginPropertyList( SPPluginRef plugin, SPPropertyListRef *propertyList );
00343 SPAPI SPErr SPGetPluginGlobals( SPPluginRef plugin, void **globals );
00345 SPAPI SPErr SPSetPluginGlobals( SPPluginRef plugin, void *globals );
00347 SPAPI SPErr SPGetPluginStarted( SPPluginRef plugin, ai::int32 *started );
00349 SPAPI SPErr SPSetPluginStarted( SPPluginRef plugin, ai::int32 started );
00351 SPAPI SPErr SPGetPluginSkipShutdown( SPPluginRef plugin, ai::int32 *skipShutdown );
00353 SPAPI SPErr SPSetPluginSkipShutdown( SPPluginRef plugin, ai::int32 skipShutdown );
00355 SPAPI SPErr SPGetPluginBroken( SPPluginRef plugin, ai::int32 *broken );
00357 SPAPI SPErr SPSetPluginBroken( SPPluginRef plugin, ai::int32 broken );
00359 SPAPI SPErr SPGetPluginAdapter( SPPluginRef plugin, SPAdapterRef *adapter );
00361 SPAPI SPErr SPGetPluginAdapterInfo( SPPluginRef plugin, void **adapterInfo );
00363 SPAPI SPErr SPSetPluginAdapterInfo( SPPluginRef plugin, void *adapterInfo );
00364
00366 SPAPI SPErr SPFindPluginProperty( SPPluginRef plugin, PIType vendorID, PIType propertyKey,
00367 ai::int32 propertyID, PIProperty **p );
00368
00370 SPAPI SPErr SPGetPluginName( SPPluginRef plugin, const char **name );
00372 SPAPI SPErr SPSetPluginName( SPPluginRef plugin, const char *name );
00374 SPAPI SPErr SPGetNamedPlugin( const char *name, SPPluginRef *plugin);
00375
00377 SPAPI SPErr SPSetPluginPropertyList( SPPluginRef plugin, SPFileRef file );
00378
00380 SPErr SPAddHostPlugin( SPPluginListRef pluginList, SPPluginEntryFunc entry, void *access, const char *adapterName,
00381 void *adapterInfo, SPPluginRef *plugin, const char *name);
00382
00383
00384
00385
00386
00388 SPAPI SPErr SPGetPluginHostInfo( SPPluginRef plugin, void **hostInfo );
00390 SPAPI SPErr SPSetPluginHostInfo( SPPluginRef plugin, void *hostInfo );
00391
00392 #ifdef WIN_ENV
00393
00394 SPAPI SPErr SPAddPlugin_v4_v5( SPPluginListRef pluginList, const SPPlatformFileSpecification *fileSpec,
00395 PIPropertyList *PiPL, const char *adapterName, void *adapterInfo, SPPluginRef *plugin );
00396
00398 SPAPI SPErr SPGetPluginFileReference_v4_v5( SPPluginRef plugin, SPPlatformFileSpecification *fileSpec );
00399 #endif
00400
00401
00402
00403
00404
00405
00406 #include "SPErrorCodes.h"
00407
00408 #ifdef __cplusplus
00409 }
00410 #endif
00411
00412 #include "SPHeaderEnd.h"
00413
00414 #endif