00001 #ifndef __AIDataFilter__
00002 #define __AIDataFilter__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef __AITypes__
00031 #include "AITypes.h"
00032 #endif
00033
00034 #include "AIFilePath.h"
00035
00036 #include "AIHeaderBegin.h"
00037
00040
00041
00042
00043
00044
00045
00047 #define kAIDataFilterSuite "AI Data Filter Suite"
00048
00049 #define kAIDataFilterSuiteVersion8 AIAPI_VERSION(8)
00050
00052 #define kAIDataFilterSuiteVersion kAIDataFilterSuiteVersion8
00053 #define kAIDataFilterVersion kAIDataFilterSuiteVersion
00054
00055
00057 #define kDataFilterErr 'DFER'
00058
00059
00060
00061
00062
00063
00064
00066 typedef struct DataFilter AIDataFilter;
00067
00071 typedef struct _t_AIPluginStream {
00079 AIAPI AIErr (*ReadProc) ( struct _t_AIPluginStream* stream, char* buffer, size_t* count );
00085 AIAPI AIErr (*WriteProc) ( struct _t_AIPluginStream* stream, const char* buffer, size_t count );
00090 AIAPI AIErr (*SeekProc) ( struct _t_AIPluginStream* stream, ai::sizediff_t count );
00095 AIAPI AIErr (*MarkProc) ( struct _t_AIPluginStream* stream, ai::sizediff_t *count );
00099 AIAPI AIErr (*TerminateProc) ( struct _t_AIPluginStream* stream );
00100 } AIPluginStream;
00101
00102
00103
00104
00105
00106
00107
00108
00158 struct AIDataFilterSuite {
00159
00167 AIAPI AIErr (*LinkDataFilter) ( AIDataFilter *prev, AIDataFilter *next );
00168
00175 AIAPI AIErr (*UnlinkDataFilter) ( AIDataFilter *next, AIDataFilter **prev );
00176
00184 AIAPI AIErr (*ReadDataFilter) ( AIDataFilter *filter, char *store, size_t *count );
00185
00191 AIAPI AIErr (*WriteDataFilter) ( AIDataFilter *filter, const char *store, size_t *count );
00192
00198 AIAPI AIErr (*SeekDataFilter) ( AIDataFilter *filter, ai::sizediff_t *count );
00199
00205 AIAPI AIErr (*MarkDataFilter) ( AIDataFilter *filter, ai::sizediff_t *count );
00206
00215 AIAPI AIErr (*NewFileDataFilter) ( const ai::FilePath &spec, const char *mode, size_t creator, ai::int32 type, AIDataFilter **filter );
00216
00222 AIAPI AIErr (*NewBufferDataFilter) ( size_t size, AIDataFilter **filter );
00223
00236 AIAPI AIErr (*NewHexdecDataFilter) ( char *state, ai::int32 shift, AIDataFilter **filter );
00237
00244 AIAPI AIErr (*NewBlockDataFilter) ( void *address, size_t size, AIDataFilter **filter );
00245
00253 AIAPI AIErr (*NewVMDataFilter) (size_t initialsize, AIDataFilter **filter );
00254
00266 AIAPI AIErr (*NewA85DataFilter) ( char *statestr, const char* prefix, AIDataFilter **filter );
00267
00275 AIAPI AIErr (*NewZDataFilter) ( const char *statestr, AIDataFilter **filter );
00276
00277
00278
00286 AIAPI AIErr (*NewPluginStream) ( AIPluginStream* stream, AIDataFilter **filter );
00287
00288
00289
00300 AIAPI AIErr (*NewResourceDataFilter) ( SPPluginRef plugin, ai::int32 type, ai::int32 id, const char *name, AIDataFilter **filter);
00301
00302 };
00303
00304
00305 #include "AIHeaderEnd.h"
00306
00307
00308 #endif