00001 #ifndef RGB601_H 00002 #define RGB601_H 00003 00004 class RGB601Main; 00005 00006 #define TOTAL_PATTERNS 2 00007 00008 #include "bchash.h" 00009 #include "mutex.h" 00010 #include "pluginvclient.h" 00011 #include "rgb601window.h" 00012 #include <sys/types.h> 00013 00014 class RGB601Config 00015 { 00016 public: 00017 RGB601Config(); 00018 // 0 -> none 00019 // 1 -> RGB -> 601 00020 // 2 -> 601 -> RGB 00021 int direction; 00022 }; 00023 00024 class RGB601Main : public PluginVClient 00025 { 00026 public: 00027 RGB601Main(PluginServer *server); 00028 ~RGB601Main(); 00029 00030 // required for all realtime plugins 00031 int process_buffer(VFrame *frame, 00032 int64_t start_position, 00033 double frame_rate); 00034 int is_realtime(); 00035 char* plugin_title(); 00036 int show_gui(); 00037 void update_gui(); 00038 void raise_window(); 00039 int set_string(); 00040 void load_configuration(); 00041 void save_data(KeyFrame *keyframe); 00042 void read_data(KeyFrame *keyframe); 00043 int load_defaults(); 00044 int save_defaults(); 00045 VFrame* new_picon(); 00046 int handle_opengl(); 00047 00048 void create_table(VFrame *input_ptr); 00049 void process(int *table, VFrame *input_ptr, VFrame *output_ptr); 00050 00051 RGB601Thread *thread; 00052 RGB601Config config; 00053 BC_Hash *defaults; 00054 int forward_table[0x10000], reverse_table[0x10000]; 00055 }; 00056 00057 00058 #endif
1.5.5