r1008: pt_BR translation update
[cinelerra_cv/mob.git] / plugins / unsharp / unsharp.h
blob7d538c44f4bbbb4aeb10aa314d40404d0cbea9e2
1 #ifndef UNSHARP_H
2 #define UNSHARP_H
4 #include <math.h>
5 #include <stdint.h>
6 #include <string.h>
8 #include "bchash.inc"
9 #include "filexml.inc"
10 #include "keyframe.inc"
11 #include "loadbalance.h"
12 #include "pluginvclient.h"
13 #include "unsharp.inc"
14 #include "unsharpwindow.inc"
15 #include "vframe.inc"
19 class UnsharpConfig
21 public:
22 UnsharpConfig();
24 int equivalent(UnsharpConfig &that);
25 void copy_from(UnsharpConfig &that);
26 void interpolate(UnsharpConfig &prev,
27 UnsharpConfig &next,
28 int64_t prev_frame,
29 int64_t next_frame,
30 int64_t current_frame);
31 float radius;
32 float amount;
33 int threshold;
39 class UnsharpMain : public PluginVClient
41 public:
42 UnsharpMain(PluginServer *server);
43 ~UnsharpMain();
45 int process_buffer(VFrame *frame,
46 int64_t start_position,
47 double frame_rate);
48 int is_realtime();
49 int load_defaults();
50 int save_defaults();
51 void save_data(KeyFrame *keyframe);
52 void read_data(KeyFrame *keyframe);
53 void update_gui();
55 PLUGIN_CLASS_MEMBERS(UnsharpConfig, UnsharpThread)
57 UnsharpEngine *engine;
61 class UnsharpPackage : public LoadPackage
63 public:
64 UnsharpPackage();
65 int y1, y2;
68 class UnsharpUnit : public LoadClient
70 public:
71 UnsharpUnit(UnsharpEngine *server, UnsharpMain *plugin);
72 ~UnsharpUnit();
74 void process_package(LoadPackage *package);
76 UnsharpEngine *server;
77 UnsharpMain *plugin;
78 VFrame *temp;
81 class UnsharpEngine : public LoadServer
83 public:
84 UnsharpEngine(UnsharpMain *plugin,
85 int total_clients,
86 int total_packages);
87 ~UnsharpEngine();
88 void init_packages();
89 LoadClient* new_client();
90 LoadPackage* new_package();
91 void do_unsharp(VFrame *src);
92 VFrame *src;
94 UnsharpMain *plugin;
100 #endif