00001 #ifndef TRANSLATE_H
00002 #define TRANSLATE_H
00003
00004
00005
00006 class TranslateMain;
00007
00008 #include "bchash.h"
00009 #include "mutex.h"
00010 #include "translatewin.h"
00011 #include "overlayframe.h"
00012 #include "pluginvclient.h"
00013
00014 class TranslateConfig
00015 {
00016 public:
00017 TranslateConfig();
00018 int equivalent(TranslateConfig &that);
00019 void copy_from(TranslateConfig &that);
00020 void interpolate(TranslateConfig &prev,
00021 TranslateConfig &next,
00022 int64_t prev_frame,
00023 int64_t next_frame,
00024 int64_t current_frame);
00025
00026 float in_x, in_y, in_w, in_h, out_x, out_y, out_w, out_h;
00027 };
00028
00029
00030 class TranslateMain : public PluginVClient
00031 {
00032 public:
00033 TranslateMain(PluginServer *server);
00034 ~TranslateMain();
00035
00036
00037 int process_realtime(VFrame *input_ptr, VFrame *output_ptr);
00038 int is_realtime();
00039 char* plugin_title();
00040 int show_gui();
00041 void raise_window();
00042 void update_gui();
00043 int set_string();
00044 void save_data(KeyFrame *keyframe);
00045 void read_data(KeyFrame *keyframe);
00046 VFrame* new_picon();
00047 int load_defaults();
00048 int save_defaults();
00049 int load_configuration();
00050
00051
00052 TranslateThread *thread;
00053
00054 OverlayFrame *overlayer;
00055 VFrame *temp_frame;
00056 BC_Hash *defaults;
00057 TranslateConfig config;
00058 };
00059
00060
00061 #endif