00001 #ifndef _1080TO540_H
00002 #define _1080TO540_H
00003
00004
00005 #include "overlayframe.inc"
00006 #include "pluginvclient.h"
00007
00008 class _1080to540Main;
00009 class _1080to540Option;
00010
00011 class _1080to540Window : public BC_Window
00012 {
00013 public:
00014 _1080to540Window(_1080to540Main *client, int x, int y);
00015 ~_1080to540Window();
00016
00017 int create_objects();
00018 int close_event();
00019 int set_first_field(int first_field, int send_event);
00020
00021 _1080to540Main *client;
00022 _1080to540Option *odd_first;
00023 _1080to540Option *even_first;
00024 };
00025
00026 PLUGIN_THREAD_HEADER(_1080to540Main, _1080to540Thread, _1080to540Window);
00027
00028 class _1080to540Option : public BC_Radial
00029 {
00030 public:
00031 _1080to540Option(_1080to540Main *client,
00032 _1080to540Window *window,
00033 int output,
00034 int x,
00035 int y,
00036 char *text);
00037 int handle_event();
00038
00039 _1080to540Main *client;
00040 _1080to540Window *window;
00041 int output;
00042 };
00043
00044 class _1080to540Config
00045 {
00046 public:
00047 _1080to540Config();
00048
00049 int equivalent(_1080to540Config &that);
00050 void copy_from(_1080to540Config &that);
00051 void interpolate(_1080to540Config &prev,
00052 _1080to540Config &next,
00053 long prev_frame,
00054 long next_frame,
00055 long current_frame);
00056
00057 int first_field;
00058 };
00059
00060 class _1080to540Main : public PluginVClient
00061 {
00062 public:
00063 _1080to540Main(PluginServer *server);
00064 ~_1080to540Main();
00065
00066
00067 PLUGIN_CLASS_MEMBERS(_1080to540Config, _1080to540Thread)
00068
00069
00070
00071 int process_realtime(VFrame *input, VFrame *output);
00072 int is_realtime();
00073 int hide_gui();
00074 void update_gui();
00075 void save_data(KeyFrame *keyframe);
00076 void read_data(KeyFrame *keyframe);
00077 int load_defaults();
00078 int save_defaults();
00079
00080 void reduce_field(VFrame *output, VFrame *input, int src_field, int dst_field);
00081
00082 VFrame *temp;
00083 };
00084
00085
00086 #endif