Main Page   Class Hierarchy   Alphabetical List   Data Structures   File List   Data Fields   Related Pages  

improv_plugin.h

00001 /* improv_plugin.h
00002  * Authors: Daniel Venkitachalam <venki-d@ee.uwa.edu.au>
00003  *          Leon Koch <leon@redfishsoftware.com.au>
00004  */
00009 #ifndef IMPROV_PLUGIN_H
00010 #define IMPROV_PLUGIN_H
00011 
00012 #ifdef HAVE_CONFIG_H
00013 #include <config.h>
00014 #endif
00015 
00016 #include "FW/labImage.h"
00017 
00018 #define WHITE 255
00019 #define BLACK 0
00020 
00021 #ifndef MAX
00022 
00025 #define MAX(a,b) (a>b?a:b)
00026 #endif
00027 
00028 #ifndef MIN
00029 
00032 #define MIN(a,b) ((a)>=(b)?(b):(a))
00033 #endif
00034 
00035 #ifndef _BYTE
00036 #define _BYTE
00037 typedef unsigned char BYTE;
00038 #endif
00039 
00040 #ifdef __cplusplus
00041 extern "C" {
00042 #endif
00043 
00048 typedef enum {
00049         TEXT,           
00050         INT,            
00051         FLOAT,          
00052         NORESULT        
00053 } pluginResultType;
00054 
00058 typedef enum {
00059         WRONGFORMAT,    
00060         TOOLARGE,               
00061         NOERROR                 
00062 } pluginReturnType;
00063 
00067 typedef struct {
00069         short x;
00071         short y;
00072 } Point;
00073 
00077 typedef struct {
00079         short x1, y1;
00081         short x2, y2;
00082 } Window;
00083 
00085 typedef void* IP_Handle;
00086 
00092 typedef struct {
00094         const char* Category;
00096         const char* Operation;
00098         int Index;
00100         int     InputCount;
00102         unsigned long ParamCount;
00104         char** ParamNames;
00108         pluginResultType resultType;
00112         size_t resultSize;
00116         pluginReturnType (*process)(IP_Handle instance, Picture **in, Picture *out, float *params, void *result);
00117         
00118 } IP_Op;
00119 
00125 typedef struct {
00127         unsigned long UniqueId;
00129         const char* Name;
00131         const char* Maker;
00133         const char* Copyright;
00135         const char* Comment;
00137         unsigned long OpCount;
00139         IP_Op* Ops;
00140         
00141 } IP_Descriptor;
00142 
00147 IP_Handle IP_init(void);
00149 const IP_Descriptor* IP_Descriptor_get(unsigned long Index);
00151 typedef const IP_Descriptor* (*IP_Descriptor_Function)(unsigned long Index);
00152 
00153 #ifdef __cplusplus
00154 }
00155 #endif
00156 
00157 #endif  // #ifndef IMPROV_PLUGIN_H
00158 

Generated on Tue Apr 1 11:01:16 2003 for ImprovQT by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002