add ffmpeg filters as plugins
[goodguy/history.git] / cinelerra-5.0 / 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         PrefsFileForking *file_forking;
64         PrefsFFMPEGEarlyProbe *ffmpeg_early_probe;
65         PrefsFFMPEGMarkerIndecies *ffmpeg_marker_indecies;
66 };
67
68
69
70 class PrefsUseBRender : public BC_CheckBox
71 {
72 public:
73         PrefsUseBRender(PreferencesWindow *pwindow, 
74                 int x,
75                 int y);
76         int handle_event();
77         PreferencesWindow *pwindow;
78 };
79
80 class PrefsBRenderFragment : public BC_TumbleTextBox
81 {
82 public:
83         PrefsBRenderFragment(PreferencesWindow *pwindow, 
84                 PerformancePrefs *subwindow, 
85                 int x, 
86                 int y);
87         int handle_event();
88         PreferencesWindow *pwindow;
89 };
90
91
92
93 class PrefsRenderPreroll : public BC_TumbleTextBox
94 {
95 public:
96         PrefsRenderPreroll(PreferencesWindow *pwindow, 
97                 PerformancePrefs *subwindow, 
98                 int x, 
99                 int y);
100         ~PrefsRenderPreroll();
101         
102         int handle_event();
103         
104         PreferencesWindow *pwindow;
105 };
106
107 class PrefsBRenderPreroll : public BC_TumbleTextBox
108 {
109 public:
110         PrefsBRenderPreroll(PreferencesWindow *pwindow, 
111                 PerformancePrefs *subwindow, 
112                 int x, 
113                 int y);
114         int handle_event();
115         PreferencesWindow *pwindow;
116 };
117
118 class PrefsForceUniprocessor : public BC_CheckBox
119 {
120 public:
121         PrefsForceUniprocessor(PreferencesWindow *pwindow, int x, int y);
122         ~PrefsForceUniprocessor();
123         int handle_event();
124         
125         PreferencesWindow *pwindow;
126 };
127
128 class PrefsTrapSigSEGV : public BC_CheckBox
129 {
130 public:
131         PrefsTrapSigSEGV(PerformancePrefs *perf_prefs, int x, int y);
132         ~PrefsTrapSigSEGV();
133         int handle_event();
134         
135         PerformancePrefs *perf_prefs;
136 };
137
138 class PrefsTrapSigINTR : public BC_CheckBox
139 {
140 public:
141         PrefsTrapSigINTR(PerformancePrefs *perf_prefs, int x, int y);
142         ~PrefsTrapSigINTR();
143         int handle_event();
144         
145         PerformancePrefs *perf_prefs;
146 };
147
148 class PrefsFileForking : public BC_CheckBox
149 {
150 public:
151         PrefsFileForking(PerformancePrefs *perf_prefs, int x, int y);
152         ~PrefsFileForking();
153         
154         int handle_event();
155         void check_enable();
156
157         PerformancePrefs *perf_prefs;
158 };
159
160 class PrefsFFMPEGEarlyProbe : public BC_CheckBox
161 {
162 public:
163         PrefsFFMPEGEarlyProbe(PerformancePrefs *perf_prefs, int x, int y);
164         ~PrefsFFMPEGEarlyProbe();
165         
166         int handle_event();
167
168         PerformancePrefs *perf_prefs;
169 };
170
171 class PrefsFFMPEGMarkerIndecies : public BC_CheckBox
172 {
173 public:
174         PrefsFFMPEGMarkerIndecies(PerformancePrefs *perf_prefs, int x, int y);
175         ~PrefsFFMPEGMarkerIndecies();
176         
177         int handle_event();
178
179         PerformancePrefs *perf_prefs;
180 };
181
182
183
184
185 class PrefsRenderFarm : public BC_CheckBox
186 {
187 public:
188         PrefsRenderFarm(PreferencesWindow *pwindow, int x, int y);
189         ~PrefsRenderFarm();
190         
191         int handle_event();
192         
193         
194         PreferencesWindow *pwindow;
195 };
196
197 class PrefsRenderFarmConsolidate : public BC_CheckBox
198 {
199 public:
200         PrefsRenderFarmConsolidate(PreferencesWindow *pwindow, int x, int y);
201         ~PrefsRenderFarmConsolidate();
202         
203         int handle_event();
204         
205         
206         PreferencesWindow *pwindow;
207 };
208
209
210 class PrefsRenderFarmPort : public BC_TumbleTextBox
211 {
212 public:
213         PrefsRenderFarmPort(PreferencesWindow *pwindow, 
214                 PerformancePrefs *subwindow, 
215                 int x, 
216                 int y);
217         ~PrefsRenderFarmPort();
218         
219         int handle_event();
220         
221         PreferencesWindow *pwindow;
222 };
223
224 class PrefsRenderFarmJobs : public BC_TumbleTextBox
225 {
226 public:
227         PrefsRenderFarmJobs(PreferencesWindow *pwindow, 
228                 PerformancePrefs *subwindow, 
229                 int x, 
230                 int y);
231         ~PrefsRenderFarmJobs();
232         
233         int handle_event();
234         
235         PreferencesWindow *pwindow;
236 };
237
238 class PrefsRenderFarmMountpoint : public BC_TextBox
239 {
240 public:
241         PrefsRenderFarmMountpoint(PreferencesWindow *pwindow, 
242                 PerformancePrefs *subwindow, 
243                 int x, 
244                 int y);
245         ~PrefsRenderFarmMountpoint();
246         
247         int handle_event();
248         
249         PreferencesWindow *pwindow;
250         PerformancePrefs *subwindow;
251 };
252
253 class PrefsRenderFarmVFS : public BC_CheckBox
254 {
255 public:
256         PrefsRenderFarmVFS(PreferencesWindow *pwindow,
257                 PerformancePrefs *subwindow,
258                 int x,
259                 int y);
260         int handle_event();
261         PreferencesWindow *pwindow;
262         PerformancePrefs *subwindow;
263 };
264
265 class PrefsRenderFarmNodes : public BC_ListBox
266 {
267 public:
268         PrefsRenderFarmNodes(PreferencesWindow *pwindow, PerformancePrefs *subwindow, int x, int y);
269         ~PrefsRenderFarmNodes();
270         
271         int handle_event();
272         int selection_changed();
273         int column_resize_event();
274         
275         PreferencesWindow *pwindow;
276         PerformancePrefs *subwindow;
277 };
278
279 class PrefsRenderFarmEditNode : public BC_TextBox
280 {
281 public:
282         PrefsRenderFarmEditNode(PreferencesWindow *pwindow, PerformancePrefs *subwindow, int x, int y);
283         ~PrefsRenderFarmEditNode();
284         
285         int handle_event();
286         
287         PerformancePrefs *subwindow;
288         PreferencesWindow *pwindow;
289 };
290
291 class PrefsRenderFarmNewNode : public BC_GenericButton
292 {
293 public:
294         PrefsRenderFarmNewNode(PreferencesWindow *pwindow, PerformancePrefs *subwindow, int x, int y);
295         ~PrefsRenderFarmNewNode();
296         
297         int handle_event();
298         
299         
300         PerformancePrefs *subwindow;
301         PreferencesWindow *pwindow;
302 };
303
304 class PrefsRenderFarmReplaceNode : public BC_GenericButton
305 {
306 public:
307         PrefsRenderFarmReplaceNode(PreferencesWindow *pwindow, 
308                 PerformancePrefs *subwindow, 
309                 int x, 
310                 int y);
311         ~PrefsRenderFarmReplaceNode();
312         
313         int handle_event();
314         
315         
316         PerformancePrefs *subwindow;
317         PreferencesWindow *pwindow;
318 };
319
320 class PrefsRenderFarmDelNode : public BC_GenericButton
321 {
322 public:
323         PrefsRenderFarmDelNode(PreferencesWindow *pwindow, PerformancePrefs *subwindow, int x, int y);
324         ~PrefsRenderFarmDelNode();
325         
326         int handle_event();
327         
328         PerformancePrefs *subwindow;
329         
330         PreferencesWindow *pwindow;
331 };
332
333 class PrefsRenderFarmSortNodes : public BC_GenericButton
334 {
335 public:
336         PrefsRenderFarmSortNodes(PreferencesWindow *pwindow, PerformancePrefs *subwindow, int x, int y);
337         ~PrefsRenderFarmSortNodes();
338         
339         int handle_event();
340         
341         PerformancePrefs *subwindow;
342         PreferencesWindow *pwindow;
343 };
344
345
346 class PrefsRenderFarmReset : public BC_GenericButton
347 {
348 public:
349         PrefsRenderFarmReset(PreferencesWindow *pwindow, 
350                 PerformancePrefs *subwindow, 
351                 int x, 
352                 int y);
353         
354         int handle_event();
355         
356         PerformancePrefs *subwindow;
357         PreferencesWindow *pwindow;
358 };
359
360
361
362 class CICacheSize : public BC_TumbleTextBox
363 {
364 public:
365         CICacheSize(int x, 
366                 int y, 
367                 PreferencesWindow *pwindow, 
368                 PerformancePrefs *subwindow);
369         int handle_event();
370         PreferencesWindow *pwindow;
371 };
372
373
374
375
376
377 #endif