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 defined(MAC_ENV)
00061 #define kSPPluginsSuiteVersion kSPPluginsSuiteVersion4
00062 #elif defined(LINUX_ENV)
00063 #define kSPPluginsSuiteVersion kSPPluginsSuiteVersion4
00064 #endif
00065
00068 #define kSPRuntimePluginList ((SPPluginListRef)NULL)
00069
00070
00071
00072
00073
00074
00075
00076
00078 typedef struct SPPlugin *SPPluginRef;
00082 typedef struct SPPluginList *SPPluginListRef;
00085 typedef struct SPPluginListIterator *SPPluginListIteratorRef;
00086
00088 typedef struct _SPErrorData
00089 {
00091 SPPlatformFileReference mErrorFile;
00093 SPErr mErrorCode;
00094 } SPErrorData, *SPErrorDataPtr;
00095
00097 typedef SPAPI SPErr (*SPPluginEntryFunc)( const char *caller, const char *selector, void *message );
00098
00099
00100
00101
00102
00103
00104
00120 typedef struct SPPluginsSuite {
00121
00127 SPAPI SPErr (*AllocatePluginList)( SPStringPoolRef strings, SPPluginListRef *pluginList );
00132 SPAPI SPErr (*FreePluginList)( SPPluginListRef pluginList );
00133
00146 SPAPI SPErr (*AddPlugin)( SPPluginListRef pluginList, const SPPlatformFileReference *fileSpec,
00147 PIPropertyList *PiPL, const char *adapterName, void *adapterInfo, SPPluginRef *plugin );
00148
00156 SPAPI SPErr (*NewPluginListIterator)( SPPluginListRef pluginList, SPPluginListIteratorRef *iter );
00163 SPAPI SPErr (*NextPlugin)( SPPluginListIteratorRef iter, SPPluginRef *plugin );
00168 SPAPI SPErr (*DeletePluginListIterator)( SPPluginListIteratorRef iter );
00175 SPAPI SPErr (*GetPluginListNeededSuiteAvailable)( SPPluginListRef pluginList, SPBoolean *available );
00176
00181 SPAPI SPErr (*GetPluginHostEntry)( SPPluginRef plugin, SPPluginEntryFunc *host );
00187 SPAPI SPErr (*GetPluginFileReference)( SPPluginRef plugin, SPPlatformFileReference *fileSpec );
00193 SPAPI SPErr (*GetPluginPropertyList)( SPPluginRef plugin, SPPropertyListRef *propertList );
00199 SPAPI SPErr (*GetPluginGlobals)( SPPluginRef plugin, void **globals );
00205 SPAPI SPErr (*SetPluginGlobals)( SPPluginRef plugin, void *globals );
00211 SPAPI SPErr (*GetPluginStarted)( SPPluginRef plugin, ai::int32 *started );
00216 SPAPI SPErr (*SetPluginStarted)( SPPluginRef plugin, ai::int32 started );
00222 SPAPI SPErr (*GetPluginSkipShutdown)( SPPluginRef plugin, ai::int32 *skipShutdown );
00228 SPAPI SPErr (*SetPluginSkipShutdown)( SPPluginRef plugin, ai::int32 skipShutdown );
00234 SPAPI SPErr (*GetPluginBroken)( SPPluginRef plugin, ai::int32 *broken );
00241 SPAPI SPErr (*SetPluginBroken)( SPPluginRef plugin, ai::int32 broken );
00247 SPAPI SPErr (*GetPluginAdapter)( SPPluginRef plugin, SPAdapterRef *adapter );
00256 SPAPI SPErr (*GetPluginAdapterInfo)( SPPluginRef plugin, void **adapterInfo );
00264 SPAPI SPErr (*SetPluginAdapterInfo)( SPPluginRef plugin, void *adapterInfo );
00265
00279 SPAPI SPErr (*FindPluginProperty)( SPPluginRef plugin, PIType vendorID, PIType propertyKey, ai::int32 propertyID, PIProperty **p );
00280
00285 SPAPI SPErr (*GetPluginName)( SPPluginRef plugin, const char **name );
00290 SPAPI SPErr (*SetPluginName)( SPPluginRef plugin, const char *name );
00295 SPAPI SPErr (*GetNamedPlugin)( const char *name, SPPluginRef *plugin);
00296
00301 SPAPI SPErr (*SetPluginPropertyList)( SPPluginRef plugin, SPFileRef file );
00302
00303
00304
00310 SPAPI SPErr (*GetPluginHostInfo)( SPPluginRef plugin, void **hostInfo );
00315 SPAPI SPErr (*SetPluginHostInfo)( SPPluginRef plugin, void *hostInfo );
00316
00317 } SPPluginsSuite;
00318
00319
00321 SPAPI SPErr SPAllocatePluginList( SPStringPoolRef strings, SPPluginListRef *pluginList );
00323 SPAPI SPErr SPFreePluginList( SPPluginListRef pluginList );
00325 SPAPI SPErr SPGetPluginListNeededSuiteAvailable( SPPluginListRef pluginList, SPBoolean *available );
00326
00328 SPAPI SPErr SPAddPlugin( SPPluginListRef pluginList, const SPPlatformFileReference *fileSpec,
00329 PIPropertyList *PiPL, const char *adapterName, void *adapterInfo, SPPluginRef *plugin );
00330
00332 SPAPI SPErr SPNewPluginListIterator( SPPluginListRef pluginList, SPPluginListIteratorRef *iter );
00334 SPAPI SPErr SPNextPlugin( SPPluginListIteratorRef iter, SPPluginRef *plugin );
00336 SPAPI SPErr SPDeletePluginListIterator( SPPluginListIteratorRef iter );
00337
00339 SPAPI SPErr SPGetHostPluginEntry( SPPluginRef plugin, SPPluginEntryFunc *host );
00341 SPAPI SPErr SPGetPluginFileReference( SPPluginRef plugin, SPPlatformFileReference *fileSpec );
00343 SPAPI SPErr SPGetPluginPropertyList( SPPluginRef plugin, SPPropertyListRef *propertyList );
00345 SPAPI SPErr SPGetPluginGlobals( SPPluginRef plugin, void **globals );
00347 SPAPI SPErr SPSetPluginGlobals( SPPluginRef plugin, void *globals );
00349 SPAPI SPErr SPGetPluginStarted( SPPluginRef plugin, ai::int32 *started );
00351 SPAPI SPErr SPSetPluginStarted( SPPluginRef plugin, ai::int32 started );
00353 SPAPI SPErr SPGetPluginSkipShutdown( SPPluginRef plugin, ai::int32 *skipShutdown );
00355 SPAPI SPErr SPSetPluginSkipShutdown( SPPluginRef plugin, ai::int32 skipShutdown );
00357 SPAPI SPErr SPGetPluginBroken( SPPluginRef plugin, ai::int32 *broken );
00359 SPAPI SPErr SPSetPluginBroken( SPPluginRef plugin, ai::int32 broken );
00361 SPAPI SPErr SPGetPluginAdapter( SPPluginRef plugin, SPAdapterRef *adapter );
00363 SPAPI SPErr SPGetPluginAdapterInfo( SPPluginRef plugin, void **adapterInfo );
00365 SPAPI SPErr SPSetPluginAdapterInfo( SPPluginRef plugin, void *adapterInfo );
00366
00368 SPAPI SPErr SPFindPluginProperty( SPPluginRef plugin, PIType vendorID, PIType propertyKey,
00369 ai::int32 propertyID, PIProperty **p );
00370
00372 SPAPI SPErr SPGetPluginName( SPPluginRef plugin, const char **name );
00374 SPAPI SPErr SPSetPluginName( SPPluginRef plugin, const char *name );
00376 SPAPI SPErr SPGetNamedPlugin( const char *name, SPPluginRef *plugin);
00377
00379 SPAPI SPErr SPSetPluginPropertyList( SPPluginRef plugin, SPFileRef file );
00380
00382 SPErr SPAddHostPlugin( SPPluginListRef pluginList, SPPluginEntryFunc entry, void *access, const char *adapterName,
00383 void *adapterInfo, SPPluginRef *plugin, const char *name);
00384
00385
00386
00387
00388
00390 SPAPI SPErr SPGetPluginHostInfo( SPPluginRef plugin, void **hostInfo );
00392 SPAPI SPErr SPSetPluginHostInfo( SPPluginRef plugin, void *hostInfo );
00393
00394 #ifdef WIN_ENV
00395
00396 SPAPI SPErr SPAddPlugin_v4_v5( SPPluginListRef pluginList, const SPPlatformFileSpecification *fileSpec,
00397 PIPropertyList *PiPL, const char *adapterName, void *adapterInfo, SPPluginRef *plugin );
00398
00400 SPAPI SPErr SPGetPluginFileReference_v4_v5( SPPluginRef plugin, SPPlatformFileSpecification *fileSpec );
00401 #endif
00402
00403
00404
00405
00406
00407
00408 #include "SPErrorCodes.h"
00409
00410 #ifdef __cplusplus
00411 }
00412 #endif
00413
00414 #include "SPHeaderEnd.h"
00415
00416 #endif