00001 00023 #ifndef INCLUDED_FREI0R_H 00024 #define INCLUDED_FREI0R_H 00025 00026 #include <inttypes.h> 00027 00031 #define FREI0R_MAJOR_VERSION 1 00032 00036 #define FREI0R_MINOR_VERSION 0 00037 00038 //--------------------------------------------------------------------------- 00039 00043 int f0r_init(); 00044 00048 void f0r_deinit(); 00049 00050 //--------------------------------------------------------------------------- 00051 00052 00058 #define F0R_PLUGIN_TYPE_FILTER 0 00059 #define F0R_PLUGIN_TYPE_SOURCE 1 00060 00065 #define F0R_COLOR_MODEL_BGRA8888 0 00066 00073 typedef struct f0r_plugin_info 00074 { 00075 const char* name; 00076 const char* author; 00077 int plugin_type; 00078 int color_model; 00079 int frei0r_version; 00080 int major_version; 00081 int minor_version; 00082 int num_params; 00083 const char* explanation; 00084 } f0r_plugin_info_t; 00085 00086 00092 void f0r_get_plugin_info(f0r_plugin_info_t* info); 00093 00094 //--------------------------------------------------------------------------- 00095 00099 #define F0R_PARAM_BOOL 0 00100 00104 #define F0R_PARAM_DOUBLE 1 00105 00109 #define F0R_PARAM_COLOR 2 00110 00113 #define F0R_PARAM_POSITION 3 00114 00115 00120 typedef double f0r_param_bool; 00121 00125 typedef double f0r_param_double; 00126 00131 typedef struct f0r_param_color 00132 { 00133 float r; 00134 float g; 00135 float b; 00136 } f0r_param_color_t; 00137 00142 typedef struct f0r_param_position 00143 { 00144 double x; 00145 double y; 00146 } f0r_param_position_t; 00147 00148 00153 typedef struct f0r_param_info 00154 { 00155 const char* name; 00156 int type; 00157 const char* explanation; 00158 } f0r_param_info_t; 00159 00167 void f0r_get_param_info(f0r_param_info_t* info, int param_index); 00168 00169 //--------------------------------------------------------------------------- 00170 00171 typedef void* f0r_instance_t; 00172 00181 f0r_instance_t f0r_construct(unsigned int width, unsigned int height); 00182 00187 void f0r_destruct(f0r_instance_t instance); 00188 00189 //--------------------------------------------------------------------------- 00190 00191 typedef void* f0r_param_t; 00192 00201 void f0r_set_param_value(f0r_instance_t instance, 00202 f0r_param_t param, int param_index); 00203 00211 void f0r_get_param_value(f0r_instance_t instance, 00212 f0r_param_t param, int param_index); 00213 00214 //--------------------------------------------------------------------------- 00215 00228 void f0r_update(f0r_instance_t instance, 00229 double time, const uint32_t* inframe, uint32_t* outframe); 00230 00231 //--------------------------------------------------------------------------- 00232 00233 #endif