thirdparty build changes for 10/12bit support
[goodguy/history.git] / cinelerra-5.1 / cinelerra / performanceprefs.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 PERFORMANCEPREFS_H
23 #define PERFORMANCEPREFS_H
24
25
26 #include "formattools.inc"
27 #include "mwindow.inc"
28 #include "performanceprefs.inc"
29 #include "preferencesthread.h"
30
31
32 class PerformancePrefs : public PreferencesDialog
33 {
34 public:
35         PerformancePrefs(MWindow *mwindow, PreferencesWindow *pwindow);
36         ~PerformancePrefs();
37
38         void create_objects();
39
40         void generate_node_list();
41         void update_node_list();
42         void update_rates();
43
44         int hot_node;
45
46         CICacheSize *cache_size;
47
48         enum
49         {
50                 ENABLED_COLUMN,
51                 HOSTNAME_COLUMN,
52                 PORT_COLUMN,
53                 RATE_COLUMN,
54                 TOTAL_COLUMNS
55         };
56
57         ArrayList<BC_ListBoxItem*> nodes[4];
58         PrefsRenderFarmEditNode *edit_node;
59         PrefsRenderFarmPort *edit_port;
60         PrefsRenderFarmNodes *node_list;
61         FormatTools *brender_tools;
62         BC_Title *master_rate;
63         PrefsFFMPEGEarlyProbe *ffmpeg_early_probe;
64         PrefsFFMPEGMarkerIndecies *ffmpeg_marker_indexes;
65 };
66
67
68
69 class PrefsUseBRender : public BC_CheckBox
70 {
71 public:
72         PrefsUseBRender(PreferencesWindow *pwindow, 
73                 int x,
74                 int y);
75         int handle_event();
76         PreferencesWindow *pwindow;
77 };
78
79 class PrefsBRenderFragment : public BC_TumbleTextBox
80 {
81 public:
82         PrefsBRenderFragment(PreferencesWindow *pwindow, 
83                 PerformancePrefs *subwindow, 
84                 int x, 
85                 int y);
86         int handle_event();
87         PreferencesWindow *pwindow;
88 };
89
90
91
92 class PrefsRenderPreroll : public BC_TumbleTextBox
93 {
94 public:
95         PrefsRenderPreroll(PreferencesWindow *pwindow, 
96                 PerformancePrefs *subwindow, 
97                 int x, 
98                 int y);
99         ~PrefsRenderPreroll();
100         
101         int handle_event();
102         
103         PreferencesWindow *pwindow;
104 };
105
106 class PrefsBRenderPreroll : public BC_TumbleTextBox
107 {
108 public:
109         PrefsBRenderPreroll(PreferencesWindow *pwindow, 
110                 PerformancePrefs *subwindow, 
111                 int x, 
112                 int y);
113         int handle_event();
114         PreferencesWindow *pwindow;
115 };
116
117 class PrefsForceUniprocessor : public BC_CheckBox
118 {
119 public:
120         PrefsForceUniprocessor(PreferencesWindow *pwindow, int x, int y);
121         ~PrefsForceUniprocessor();
122         int handle_event();
123         
124         PreferencesWindow *pwindow;
125 };
126
127 class PrefsTrapSigSEGV : public BC_CheckBox
128 {
129 public:
130         PrefsTrapSigSEGV(PerformancePrefs *perf_prefs, int x, int y);
131         ~PrefsTrapSigSEGV();
132         int handle_event();
133         
134         PerformancePrefs *perf_prefs;
135 };
136
137 class PrefsTrapSigINTR : public BC_CheckBox
138 {
139 public:
140         PrefsTrapSigINTR(PerformancePrefs *perf_prefs, int x, int y);
141         ~PrefsTrapSigINTR();
142         int handle_event();
143         
144         PerformancePrefs *perf_prefs;
145 };
146
147 class PrefsFFMPEGEarlyProbe : public BC_CheckBox
148 {
149 public:
150         PrefsFFMPEGEarlyProbe(PerformancePrefs *perf_prefs, int x, int y);
151         ~PrefsFFMPEGEarlyProbe();
152         
153         int handle_event();
154
155         PerformancePrefs *perf_prefs;
156 };
157
158 class PrefsFFMPEGMarkerIndecies : public BC_CheckBox
159 {
160 public:
161         PrefsFFMPEGMarkerIndecies(PerformancePrefs *perf_prefs, int x, int y);
162         ~PrefsFFMPEGMarkerIndecies();
163         
164         int handle_event();
165
166         PerformancePrefs *perf_prefs;
167 };
168
169
170
171
172 class PrefsRenderFarm : public BC_CheckBox
173 {
174 public:
175         PrefsRenderFarm(PreferencesWindow *pwindow, int x, int y);
176         ~PrefsRenderFarm();
177         
178         int handle_event();
179         
180         
181         PreferencesWindow *pwindow;
182 };
183
184 class PrefsRenderFarmConsolidate : public BC_CheckBox
185 {
186 public:
187         PrefsRenderFarmConsolidate(PreferencesWindow *pwindow, int x, int y);
188         ~PrefsRenderFarmConsolidate();
189         
190         int handle_event();
191         
192         
193         PreferencesWindow *pwindow;
194 };
195
196
197 class PrefsRenderFarmPort : public BC_TumbleTextBox
198 {
199 public:
200         PrefsRenderFarmPort(PreferencesWindow *pwindow, 
201                 PerformancePrefs *subwindow, 
202                 int x, 
203                 int y);
204         ~PrefsRenderFarmPort();
205         
206         int handle_event();
207         
208         PreferencesWindow *pwindow;
209 };
210
211 class PrefsRenderFarmJobs : public BC_TumbleTextBox
212 {
213 public:
214         PrefsRenderFarmJobs(PreferencesWindow *pwindow, 
215                 PerformancePrefs *subwindow, 
216                 int x, 
217                 int y);
218         ~PrefsRenderFarmJobs();
219         
220         int handle_event();
221         
222         PreferencesWindow *pwindow;
223 };
224
225 class PrefsRenderFarmMountpoint : public BC_TextBox
226 {
227 public:
228         PrefsRenderFarmMountpoint(PreferencesWindow *pwindow, 
229                 PerformancePrefs *subwindow, 
230                 int x, 
231                 int y);
232         ~PrefsRenderFarmMountpoint();
233         
234         int handle_event();
235         
236         PreferencesWindow *pwindow;
237         PerformancePrefs *subwindow;
238 };
239
240 class PrefsRenderFarmVFS : public BC_CheckBox
241 {
242 public:
243         PrefsRenderFarmVFS(PreferencesWindow *pwindow,
244                 PerformancePrefs *subwindow,
245                 int x,
246                 int y);
247         int handle_event();
248         PreferencesWindow *pwindow;
249         PerformancePrefs *subwindow;
250 };
251
252 class PrefsRenderFarmNodes : public BC_ListBox
253 {
254 public:
255         PrefsRenderFarmNodes(PreferencesWindow *pwindow, PerformancePrefs *subwindow, int x, int y);
256         ~PrefsRenderFarmNodes();
257         
258         int handle_event();
259         int selection_changed();
260         int column_resize_event();
261         
262         PreferencesWindow *pwindow;
263         PerformancePrefs *subwindow;
264 };
265
266 class PrefsRenderFarmEditNode : public BC_TextBox
267 {
268 public:
269         PrefsRenderFarmEditNode(PreferencesWindow *pwindow, PerformancePrefs *subwindow, int x, int y);
270         ~PrefsRenderFarmEditNode();
271         
272         int handle_event();
273         
274         PerformancePrefs *subwindow;
275         PreferencesWindow *pwindow;
276 };
277
278 class PrefsRenderFarmNewNode : public BC_GenericButton
279 {
280 public:
281         PrefsRenderFarmNewNode(PreferencesWindow *pwindow, PerformancePrefs *subwindow, int x, int y);
282         ~PrefsRenderFarmNewNode();
283         
284         int handle_event();
285         
286         
287         PerformancePrefs *subwindow;
288         PreferencesWindow *pwindow;
289 };
290
291 class PrefsRenderFarmReplaceNode : public BC_GenericButton
292 {
293 public:
294         PrefsRenderFarmReplaceNode(PreferencesWindow *pwindow, 
295                 PerformancePrefs *subwindow, 
296                 int x, 
297                 int y);
298         ~PrefsRenderFarmReplaceNode();
299         
300         int handle_event();
301         
302         
303         PerformancePrefs *subwindow;
304         PreferencesWindow *pwindow;
305 };
306
307 class PrefsRenderFarmDelNode : public BC_GenericButton
308 {
309 public:
310         PrefsRenderFarmDelNode(PreferencesWindow *pwindow, PerformancePrefs *subwindow, int x, int y);
311         ~PrefsRenderFarmDelNode();
312         
313         int handle_event();
314         
315         PerformancePrefs *subwindow;
316         
317         PreferencesWindow *pwindow;
318 };
319
320 class PrefsRenderFarmSortNodes : public BC_GenericButton
321 {
322 public:
323         PrefsRenderFarmSortNodes(PreferencesWindow *pwindow, PerformancePrefs *subwindow, int x, int y);
324         ~PrefsRenderFarmSortNodes();
325         
326         int handle_event();
327         
328         PerformancePrefs *subwindow;
329         PreferencesWindow *pwindow;
330 };
331
332
333 class PrefsRenderFarmReset : public BC_GenericButton
334 {
335 public:
336         PrefsRenderFarmReset(PreferencesWindow *pwindow, 
337                 PerformancePrefs *subwindow, 
338                 int x, 
339                 int y);
340         
341         int handle_event();
342         
343         PerformancePrefs *subwindow;
344         PreferencesWindow *pwindow;
345 };
346
347
348
349 class CICacheSize : public BC_TumbleTextBox
350 {
351 public:
352         CICacheSize(int x, 
353                 int y, 
354                 PreferencesWindow *pwindow, 
355                 PerformancePrefs *subwindow);
356         int handle_event();
357         PreferencesWindow *pwindow;
358 };
359
360
361
362
363
364 #endif