frei0r
|
00001 00200 #ifndef INCLUDED_FREI0R_H 00201 #define INCLUDED_FREI0R_H 00202 00203 #include <inttypes.h> 00204 00208 #define FREI0R_MAJOR_VERSION 1 00209 00213 #define FREI0R_MINOR_VERSION 2 00214 00215 //--------------------------------------------------------------------------- 00216 00221 int f0r_init(); 00222 00227 void f0r_deinit(); 00228 00229 //--------------------------------------------------------------------------- 00230 00238 #define F0R_PLUGIN_TYPE_FILTER 0 00239 00240 #define F0R_PLUGIN_TYPE_SOURCE 1 00241 00242 #define F0R_PLUGIN_TYPE_MIXER2 2 00243 00244 #define F0R_PLUGIN_TYPE_MIXER3 3 00245 00248 //--------------------------------------------------------------------------- 00249 00290 #define F0R_COLOR_MODEL_BGRA8888 0 00291 00299 #define F0R_COLOR_MODEL_RGBA8888 1 00300 00313 #define F0R_COLOR_MODEL_PACKED32 2 00314 00332 typedef struct f0r_plugin_info 00333 { 00334 const char* name; 00335 const char* author; 00339 int plugin_type; 00340 int color_model; 00341 int frei0r_version; 00342 int major_version; 00343 int minor_version; 00344 int num_params; 00345 const char* explanation; 00346 } f0r_plugin_info_t; 00347 00348 00354 void f0r_get_plugin_info(f0r_plugin_info_t* info); 00355 00356 //--------------------------------------------------------------------------- 00357 00368 #define F0R_PARAM_BOOL 0 00369 00374 #define F0R_PARAM_DOUBLE 1 00375 00380 #define F0R_PARAM_COLOR 2 00381 00385 #define F0R_PARAM_POSITION 3 00386 00391 #define F0R_PARAM_STRING 4 00392 00397 typedef double f0r_param_bool; 00398 00402 typedef double f0r_param_double; 00403 00407 typedef struct f0r_param_color 00408 { 00409 float r; 00410 float g; 00411 float b; 00412 } f0r_param_color_t; 00413 00417 typedef struct f0r_param_position 00418 { 00419 double x; 00420 double y; 00421 } f0r_param_position_t; 00422 00423 00428 typedef char* f0r_param_string; 00429 00439 typedef struct f0r_param_info 00440 { 00441 const char* name; 00442 int type; 00443 const char* explanation; 00444 } f0r_param_info_t; 00445 00454 void f0r_get_param_info(f0r_param_info_t* info, int param_index); 00455 00456 //--------------------------------------------------------------------------- 00457 00461 typedef void* f0r_instance_t; 00462 00477 f0r_instance_t f0r_construct(unsigned int width, unsigned int height); 00478 00486 void f0r_destruct(f0r_instance_t instance); 00487 00488 //--------------------------------------------------------------------------- 00489 00493 typedef void* f0r_param_t; 00494 00519 void f0r_set_param_value(f0r_instance_t instance, 00520 f0r_param_t param, int param_index); 00521 00539 void f0r_get_param_value(f0r_instance_t instance, 00540 f0r_param_t param, int param_index); 00541 00542 //--------------------------------------------------------------------------- 00543 00569 void f0r_update(f0r_instance_t instance, 00570 double time, const uint32_t* inframe, uint32_t* outframe); 00571 00572 //--------------------------------------------------------------------------- 00573 00595 void f0r_update2(f0r_instance_t instance, 00596 double time, 00597 const uint32_t* inframe1, 00598 const uint32_t* inframe2, 00599 const uint32_t* inframe3, 00600 uint32_t* outframe); 00601 //--------------------------------------------------------------------------- 00602 00603 #endif