Credit Andrew for build mods and cineform format
[goodguy/cinelerra.git] / cinelerra-5.1 / plugins / timeavg / timeavgwindow.h
1
2 /*
3  * CINELERRA
4  * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  *
20  */
21
22 #ifndef TIMEAVGWINDOW_H
23 #define TIMEAVGWINDOW_H
24
25
26 class TimeAvgThread;
27 class TimeAvgWindow;
28 class TimeAvgAvg;
29 class TimeAvgAccum;
30 class TimeAvgReplace;
31 class TimeAvgGreater;
32 class TimeAvgLess;
33 class TimeAvgParanoid;
34 class TimeAvgNoSubtract;
35 class TimeThresholdSlider;
36 class TimeBorderSlider;
37
38 #include "guicast.h"
39 #include "mutex.h"
40 #include "timeavg.h"
41
42
43 class TimeAvgSlider;
44
45 class TimeAvgWindow : public PluginClientWindow
46 {
47 public:
48         TimeAvgWindow(TimeAvgMain *client);
49         ~TimeAvgWindow();
50
51         void create_objects();
52         void update_toggles();
53
54         TimeAvgMain *client;
55         TimeAvgSlider *total_frames;
56         TimeThresholdSlider *threshold;
57         TimeBorderSlider *border;
58         TimeAvgAvg *avg;
59         TimeAvgAccum *accum;
60         TimeAvgReplace *replace;
61         TimeAvgGreater *greater;
62         TimeAvgLess *less;
63         TimeAvgParanoid *paranoid;
64         TimeAvgNoSubtract *no_subtract;
65 };
66
67 class TimeAvgSlider : public BC_ISlider
68 {
69 public:
70         TimeAvgSlider(TimeAvgMain *client, int x, int y);
71         ~TimeAvgSlider();
72         int handle_event();
73
74         TimeAvgMain *client;
75 };
76
77 class TimeThresholdSlider : public BC_ISlider
78 {
79 public:
80         TimeThresholdSlider(TimeAvgMain *client, int x, int y);
81         ~TimeThresholdSlider();
82         int handle_event();
83
84         TimeAvgMain *client;
85 };
86
87 class TimeBorderSlider : public BC_ISlider
88 {
89 public:
90         TimeBorderSlider(TimeAvgMain *client, int x, int y);
91         ~TimeBorderSlider();
92         int handle_event();
93
94         TimeAvgMain *client;
95 };
96
97 class TimeAvgAvg : public BC_Radial
98 {
99 public:
100         TimeAvgAvg(TimeAvgMain *client, TimeAvgWindow *gui, int x, int y);
101         int handle_event();
102         TimeAvgMain *client;
103         TimeAvgWindow *gui;
104 };
105
106 class TimeAvgAccum : public BC_Radial
107 {
108 public:
109         TimeAvgAccum(TimeAvgMain *client, TimeAvgWindow *gui, int x, int y);
110         int handle_event();
111         TimeAvgMain *client;
112         TimeAvgWindow *gui;
113 };
114
115 class TimeAvgReplace : public BC_Radial
116 {
117 public:
118         TimeAvgReplace(TimeAvgMain *client, TimeAvgWindow *gui, int x, int y);
119         int handle_event();
120         TimeAvgMain *client;
121         TimeAvgWindow *gui;
122 };
123
124 class TimeAvgGreater : public BC_Radial
125 {
126 public:
127         TimeAvgGreater(TimeAvgMain *client, TimeAvgWindow *gui, int x, int y);
128         int handle_event();
129         TimeAvgMain *client;
130         TimeAvgWindow *gui;
131 };
132
133 class TimeAvgLess : public BC_Radial
134 {
135 public:
136         TimeAvgLess(TimeAvgMain *client, TimeAvgWindow *gui, int x, int y);
137         int handle_event();
138         TimeAvgMain *client;
139         TimeAvgWindow *gui;
140 };
141
142 class TimeAvgParanoid : public BC_CheckBox
143 {
144 public:
145         TimeAvgParanoid(TimeAvgMain *client, int x, int y);
146         int handle_event();
147         TimeAvgMain *client;
148 };
149
150 class TimeAvgNoSubtract : public BC_CheckBox
151 {
152 public:
153         TimeAvgNoSubtract(TimeAvgMain *client, int x, int y);
154         int handle_event();
155         TimeAvgMain *client;
156 };
157
158 #endif