00001
00185 #ifndef INCLUDED_FREI0R_H
00186 #define INCLUDED_FREI0R_H
00187
00188 #include <inttypes.h>
00189
00193 #define FREI0R_MAJOR_VERSION 1
00194
00198 #define FREI0R_MINOR_VERSION 1
00199
00200
00201
00206 int f0r_init();
00207
00212 void f0r_deinit();
00213
00214
00215
00223 #define F0R_PLUGIN_TYPE_FILTER 0
00224
00225 #define F0R_PLUGIN_TYPE_SOURCE 1
00226
00227 #define F0R_PLUGIN_TYPE_MIXER2 2
00228
00229 #define F0R_PLUGIN_TYPE_MIXER3 3
00230
00233
00234
00275 #define F0R_COLOR_MODEL_BGRA8888 0
00276
00284 #define F0R_COLOR_MODEL_RGBA8888 1
00285
00298 #define F0R_COLOR_MODEL_PACKED32 2
00299
00317 typedef struct f0r_plugin_info
00318 {
00319 const char* name;
00320 const char* author;
00324 int plugin_type;
00325 int color_model;
00326 int frei0r_version;
00327 int major_version;
00328 int minor_version;
00329 int num_params;
00330 const char* explanation;
00331 } f0r_plugin_info_t;
00332
00333
00339 void f0r_get_plugin_info(f0r_plugin_info_t* info);
00340
00341
00342
00353 #define F0R_PARAM_BOOL 0
00354
00359 #define F0R_PARAM_DOUBLE 1
00360
00365 #define F0R_PARAM_COLOR 2
00366
00370 #define F0R_PARAM_POSITION 3
00371
00376 #define F0R_PARAM_STRING 4
00377
00382 typedef double f0r_param_bool;
00383
00387 typedef double f0r_param_double;
00388
00392 typedef struct f0r_param_color
00393 {
00394 float r;
00395 float g;
00396 float b;
00397 } f0r_param_color_t;
00398
00402 typedef struct f0r_param_position
00403 {
00404 double x;
00405 double y;
00406 } f0r_param_position_t;
00407
00408
00413 typedef char f0r_param_string;
00414
00424 typedef struct f0r_param_info
00425 {
00426 const char* name;
00427 int type;
00428 const char* explanation;
00429 } f0r_param_info_t;
00430
00439 void f0r_get_param_info(f0r_param_info_t* info, int param_index);
00440
00441
00442
00446 typedef void* f0r_instance_t;
00447
00461 f0r_instance_t f0r_construct(unsigned int width, unsigned int height);
00462
00470 void f0r_destruct(f0r_instance_t instance);
00471
00472
00473
00477 typedef void* f0r_param_t;
00478
00490 void f0r_set_param_value(f0r_instance_t instance,
00491 f0r_param_t param, int param_index);
00492
00503 void f0r_get_param_value(f0r_instance_t instance,
00504 f0r_param_t param, int param_index);
00505
00506
00507
00533 void f0r_update(f0r_instance_t instance,
00534 double time, const uint32_t* inframe, uint32_t* outframe);
00535
00536
00537
00559 void f0r_update2(f0r_instance_t instance,
00560 double time,
00561 const uint32_t* inframe1,
00562 const uint32_t* inframe2,
00563 const uint32_t* inframe3,
00564 uint32_t* outframe);
00565
00566
00567 #endif