r105: This commit was manufactured by cvs2svn to create tag
[cinelerra_cv/mob.git] / hvirtual / plugins / 1080to480 / 1080to480.h
blob3c359a5976ba421d71ec09d0fb2e53779007643e
1 #ifndef _1080TO480_H
2 #define _1080TO480_H
5 #include "overlayframe.inc"
6 #include "pluginvclient.h"
8 class _1080to480Main;
9 class _1080to480Option;
11 class _1080to480Window : public BC_Window
13 public:
14 _1080to480Window(_1080to480Main *client, int x, int y);
15 ~_1080to480Window();
17 int create_objects();
18 int close_event();
19 int set_first_field(int first_field, int send_event);
21 _1080to480Main *client;
22 _1080to480Option *odd_first;
23 _1080to480Option *even_first;
26 PLUGIN_THREAD_HEADER(_1080to480Main, _1080to480Thread, _1080to480Window);
28 class _1080to480Option : public BC_Radial
30 public:
31 _1080to480Option(_1080to480Main *client,
32 _1080to480Window *window,
33 int output,
34 int x,
35 int y,
36 char *text);
37 int handle_event();
39 _1080to480Main *client;
40 _1080to480Window *window;
41 int output;
44 class _1080to480Config
46 public:
47 _1080to480Config();
49 int equivalent(_1080to480Config &that);
50 void copy_from(_1080to480Config &that);
51 void interpolate(_1080to480Config &prev,
52 _1080to480Config &next,
53 long prev_frame,
54 long next_frame,
55 long current_frame);
57 int first_field;
60 class _1080to480Main : public PluginVClient
62 public:
63 _1080to480Main(PluginServer *server);
64 ~_1080to480Main();
67 PLUGIN_CLASS_MEMBERS(_1080to480Config, _1080to480Thread)
70 // required for all realtime plugins
71 int process_realtime(VFrame *input, VFrame *output);
72 int is_realtime();
73 int hide_gui();
74 void update_gui();
75 void save_data(KeyFrame *keyframe);
76 void read_data(KeyFrame *keyframe);
77 int load_defaults();
78 int save_defaults();
80 void reduce_field(VFrame *output, VFrame *input, int src_field, int dst_field);
82 VFrame *temp;
86 #endif