00001 #ifndef TIMEAVGWINDOW_H
00002 #define TIMEAVGWINDOW_H
00003
00004
00005 class SelTempAvgThread;
00006 class SelTempAvgWindow;
00007
00008 class SelTempAvgParanoid;
00009 class SelTempAvgNoSubtract;
00010 class SelTempAvgStartKeyframe;
00011 class SelTempAvgMask;
00012
00013 class SelTempAvgOffsetRadial;
00014 class SelTempAvgMethodRadial;
00015
00016 class SelTempAvgSlider;
00017
00018 class SelTempAvgThreshSlider;
00019 class SelTempAvgOffsetValue;
00020 class SelTempAvgGainValue;
00021
00022
00023 #include "guicast.h"
00024 #include "mutex.h"
00025 #include "seltempavg.h"
00026
00027 PLUGIN_THREAD_HEADER(SelTempAvgMain, SelTempAvgThread, SelTempAvgWindow)
00028
00029
00030
00031
00032
00033 enum {
00034 AVG_RY,
00035 AVG_GU,
00036 AVG_BV,
00037 STD_RY,
00038 STD_GU,
00039 STD_BV
00040 };
00041
00042 enum {
00043 MASK_RY,
00044 MASK_GU,
00045 MASK_BV
00046 };
00047
00048
00049 class SelTempAvgWindow : public BC_Window
00050 {
00051 public:
00052 SelTempAvgWindow(SelTempAvgMain *client, int x, int y);
00053 ~SelTempAvgWindow();
00054
00055 int create_objects();
00056 int close_event();
00057
00058 SelTempAvgMain *client;
00059 SelTempAvgSlider *total_frames;
00060
00061 SelTempAvgThreshSlider *avg_threshold_RY, *avg_threshold_GU, *avg_threshold_BV;
00062 SelTempAvgThreshSlider *std_threshold_RY, *std_threshold_GU, *std_threshold_BV;
00063 SelTempAvgMask *mask_RY, *mask_GU, *mask_BV;
00064
00065 SelTempAvgOffsetRadial *offset_fixed, *offset_restartmarker;
00066 SelTempAvgMethodRadial *method_none, *method_seltempavg, *method_stddev, *method_average;
00067
00068 SelTempAvgParanoid *paranoid;
00069 SelTempAvgNoSubtract *no_subtract;
00070 SelTempAvgStartKeyframe *offset_restartmarker_keyframe;
00071 BC_TextBox *offset_restartmarker_pos;
00072
00073 SelTempAvgOffsetValue *offset_fixed_value;
00074 SelTempAvgGainValue *gain;
00075 };
00076
00077 class SelTempAvgThreshSlider : public BC_TextBox
00078 {
00079 public:
00080 SelTempAvgThreshSlider(SelTempAvgMain *client, int x, int y, int type, float curval);
00081 ~SelTempAvgThreshSlider();
00082 int handle_event();
00083 int type;
00084 SelTempAvgMain *client;
00085 };
00086
00087
00088 class SelTempAvgOffsetValue : public BC_TextBox
00089 {
00090 public:
00091 SelTempAvgOffsetValue(SelTempAvgMain *client, int x, int y);
00092 ~SelTempAvgOffsetValue();
00093 int handle_event();
00094 SelTempAvgMain *client;
00095 };
00096
00097
00098 class SelTempAvgGainValue : public BC_TextBox
00099 {
00100 public:
00101 SelTempAvgGainValue(SelTempAvgMain *client, int x, int y);
00102 ~SelTempAvgGainValue();
00103 int handle_event();
00104 SelTempAvgMain *client;
00105 };
00106
00107
00108 class SelTempAvgSlider : public BC_ISlider
00109 {
00110 public:
00111 SelTempAvgSlider(SelTempAvgMain *client, int x, int y);
00112 ~SelTempAvgSlider();
00113 int handle_event();
00114
00115 SelTempAvgMain *client;
00116 };
00117
00118
00119 class SelTempAvgOffsetRadial : public BC_Radial
00120 {
00121 public:
00122 SelTempAvgOffsetRadial(SelTempAvgMain *client, SelTempAvgWindow *gui, int x, int y, int type, char *caption);
00123 int handle_event();
00124 SelTempAvgMain *client;
00125 SelTempAvgWindow *gui;
00126 int type;
00127 };
00128
00129
00130 class SelTempAvgMethodRadial : public BC_Radial
00131 {
00132 public:
00133 SelTempAvgMethodRadial(SelTempAvgMain *client, SelTempAvgWindow *gui, int x, int y, int type, char *caption);
00134 int handle_event();
00135 SelTempAvgMain *client;
00136 SelTempAvgWindow *gui;
00137 int type;
00138 };
00139
00140 class SelTempAvgParanoid : public BC_CheckBox
00141 {
00142 public:
00143 SelTempAvgParanoid(SelTempAvgMain *client, int x, int y);
00144 int handle_event();
00145 SelTempAvgMain *client;
00146 };
00147
00148 class SelTempAvgNoSubtract : public BC_CheckBox
00149 {
00150 public:
00151 SelTempAvgNoSubtract(SelTempAvgMain *client, int x, int y);
00152 int handle_event();
00153 SelTempAvgMain *client;
00154 };
00155
00156 class SelTempAvgMask : public BC_CheckBox
00157 {
00158 public:
00159 SelTempAvgMask(SelTempAvgMain *client, int x, int y,int type, int val);
00160 int handle_event();
00161 SelTempAvgMain *client;
00162 int type;
00163 };
00164
00165
00166 class SelTempAvgStartKeyframe : public BC_CheckBox
00167 {
00168 public:
00169 SelTempAvgStartKeyframe(SelTempAvgMain *client, int x, int y);
00170 int handle_event();
00171 SelTempAvgMain *client;
00172 };
00173
00174
00175 #endif