00001 #ifndef __AIFilter__
00002 #define __AIFilter__
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 #ifndef __AIPlugin__
00035 #include "AIPlugin.h"
00036 #endif
00037
00038 #ifndef __AIMenu__
00039 #include "AIMenu.h"
00040 #endif
00041
00042
00043 #include "AIHeaderBegin.h"
00044
00052
00053
00054
00055
00056
00057
00058 #define kAIFilterSuite "AI Filter Suite"
00059 #define kAIFilterSuiteVersion AIAPI_VERSION(4)
00060 #define kAIFilterVersion kAIFilterSuiteVersion
00061
00065 #define kCallerAIFilter "AI Filter"
00066
00075 #define kSelectorAIGetFilterParameters "AI Get Parameters"
00076
00085 #define kSelectorAIGoFilter "AI Go"
00086
00087
00088
00089
00090
00091
00092
00093
00096 typedef struct _t_AIFilterOpaque *AIFilterHandle;
00097
00098
00099 #if Macintosh || MSWindows
00100
00103 typedef void *PlatformFilterParameters;
00104
00112 typedef struct {
00115 unsigned char *category;
00121 unsigned char *title;
00122 } PlatformAddFilterData;
00123 #endif
00124
00126 typedef struct {
00128 SPMessageData d;
00132 AIFilterHandle filter;
00135 PlatformFilterParameters parameters;
00136 } AIFilterMessage;
00137
00138
00139
00140
00141
00142
00143
00144
00174 typedef struct {
00175
00189 AIAPI AIErr (*AddFilter) ( SPPluginRef self, char *name,
00190 PlatformAddFilterData *data, ai::int32 options, AIFilterHandle *filter );
00191
00197 AIAPI AIErr (*GetFilterName) ( AIFilterHandle filter, char **name );
00198
00204 AIAPI AIErr (*GetFilterOptions) ( AIFilterHandle filter, ai::int32 *options );
00205
00211 AIAPI AIErr (*SetFilterOptions) ( AIFilterHandle filter, ai::int32 options );
00212
00219 AIAPI AIErr (*GetFilterParameters) ( AIFilterHandle filter, PlatformFilterParameters *parameters );
00220
00229 AIAPI AIErr (*SetFilterParameters) ( AIFilterHandle filter, PlatformFilterParameters parameters );
00230
00236 AIAPI AIErr (*GetFilterMenuItem) ( AIFilterHandle filter, AIMenuItemHandle *menuItem );
00237
00242 AIAPI AIErr (*GetFilterPlugin) ( AIFilterHandle filter, SPPluginRef *plugin );
00243
00248 AIAPI AIErr (*CountFilters) ( ai::int32 *count );
00249
00255 AIAPI AIErr (*GetNthFilter) ( ai::int32 n, AIFilterHandle *filter );
00256
00257 } AIFilterSuite;
00258
00259
00260 #include "AIHeaderEnd.h"
00261
00262 #endif