4 * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
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.
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.
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
22 #ifndef PERFORMANCEPREFS_H
23 #define PERFORMANCEPREFS_H
26 #include "formattools.inc"
27 #include "mwindow.inc"
28 #include "performanceprefs.inc"
29 #include "preferencesthread.h"
30 #include "probeprefs.inc"
33 class PerformancePrefs : public PreferencesDialog
36 PerformancePrefs(MWindow *mwindow, PreferencesWindow *pwindow);
39 void create_objects();
41 void generate_node_list();
42 void update_node_list();
44 void start_probe_dialog();
48 CICacheSize *cache_size;
49 PerfsUseHWDev *use_hw_dev;
60 ArrayList<BC_ListBoxItem*> nodes[TOTAL_COLUMNS];
61 PrefsRenderFarmEditNode *edit_node;
62 PrefsRenderFarmPort *edit_port;
63 PrefsRenderFarmNodes *node_list;
64 PrefsRenderFarmWatchdog *renderfarm_watchdog;
65 FormatTools *brender_tools;
66 BC_Title *master_rate;
70 class PrefsUseBRender : public BC_CheckBox
73 PrefsUseBRender(PreferencesWindow *pwindow,
76 PreferencesWindow *pwindow;
79 class PrefsBRenderFragment : public BC_TumbleTextBox
82 PrefsBRenderFragment(PreferencesWindow *pwindow,
83 PerformancePrefs *subwindow,
86 PreferencesWindow *pwindow;
89 class PrefsRenderPreroll : public BC_TumbleTextBox
92 PrefsRenderPreroll(PreferencesWindow *pwindow,
93 PerformancePrefs *subwindow,
96 ~PrefsRenderPreroll();
100 PreferencesWindow *pwindow;
103 class PrefsBRenderPreroll : public BC_TumbleTextBox
106 PrefsBRenderPreroll(PreferencesWindow *pwindow,
107 PerformancePrefs *subwindow,
111 PreferencesWindow *pwindow;
114 class PrefsForceUniprocessor : public BC_CheckBox
117 PrefsForceUniprocessor(PreferencesWindow *pwindow, int x, int y);
118 ~PrefsForceUniprocessor();
121 PreferencesWindow *pwindow;
124 class PrefsFFMPEGMarkerIndecies : public BC_CheckBox
127 PrefsFFMPEGMarkerIndecies(PerformancePrefs *perf_prefs, int x, int y);
128 ~PrefsFFMPEGMarkerIndecies();
132 PerformancePrefs *perf_prefs;
135 class PrefsRenderFarm : public BC_CheckBox
138 PrefsRenderFarm(PreferencesWindow *pwindow, int x, int y);
143 PreferencesWindow *pwindow;
146 class PrefsRenderFarmConsolidate : public BC_CheckBox
149 PrefsRenderFarmConsolidate(PreferencesWindow *pwindow, int x, int y);
150 ~PrefsRenderFarmConsolidate();
154 PreferencesWindow *pwindow;
158 class PrefsRenderFarmPort : public BC_TumbleTextBox
161 PrefsRenderFarmPort(PreferencesWindow *pwindow,
162 PerformancePrefs *subwindow,
164 ~PrefsRenderFarmPort();
168 PreferencesWindow *pwindow;
171 class PrefsProjectSMP : public BC_TumbleTextBox
174 PrefsProjectSMP(PreferencesWindow *pwindow,
175 PerformancePrefs *subwindow, int x, int y);
179 PreferencesWindow *pwindow;
182 class PrefsRenderFarmJobs : public BC_TumbleTextBox
185 PrefsRenderFarmJobs(PreferencesWindow *pwindow,
186 PerformancePrefs *subwindow,
188 ~PrefsRenderFarmJobs();
192 PreferencesWindow *pwindow;
195 class PrefsRenderFarmMountpoint : public BC_TextBox
198 PrefsRenderFarmMountpoint(PreferencesWindow *pwindow,
199 PerformancePrefs *subwindow,
201 ~PrefsRenderFarmMountpoint();
205 PreferencesWindow *pwindow;
206 PerformancePrefs *subwindow;
209 class PrefsRenderFarmVFS : public BC_CheckBox
212 PrefsRenderFarmVFS(PreferencesWindow *pwindow,
213 PerformancePrefs *subwindow,
217 PreferencesWindow *pwindow;
218 PerformancePrefs *subwindow;
221 class PrefsRenderFarmNodes : public BC_ListBox
224 PrefsRenderFarmNodes(PreferencesWindow *pwindow, PerformancePrefs *subwindow, int x, int y);
225 ~PrefsRenderFarmNodes();
228 int selection_changed();
229 int column_resize_event();
232 const char *titles[PerformancePrefs::TOTAL_COLUMNS];
233 int widths[PerformancePrefs::TOTAL_COLUMNS];
235 PreferencesWindow *pwindow;
236 PerformancePrefs *subwindow;
239 class PrefsRenderFarmEditNode : public BC_TextBox
242 PrefsRenderFarmEditNode(PreferencesWindow *pwindow, PerformancePrefs *subwindow, int x, int y);
243 ~PrefsRenderFarmEditNode();
247 PerformancePrefs *subwindow;
248 PreferencesWindow *pwindow;
251 class PrefsRenderFarmNewNode : public BC_GenericButton
254 PrefsRenderFarmNewNode(PreferencesWindow *pwindow, PerformancePrefs *subwindow, int x, int y);
255 ~PrefsRenderFarmNewNode();
260 PerformancePrefs *subwindow;
261 PreferencesWindow *pwindow;
264 class PrefsRenderFarmReplaceNode : public BC_GenericButton
267 PrefsRenderFarmReplaceNode(PreferencesWindow *pwindow,
268 PerformancePrefs *subwindow,
271 ~PrefsRenderFarmReplaceNode();
276 PerformancePrefs *subwindow;
277 PreferencesWindow *pwindow;
280 class PrefsRenderFarmDelNode : public BC_GenericButton
283 PrefsRenderFarmDelNode(PreferencesWindow *pwindow, PerformancePrefs *subwindow, int x, int y);
284 ~PrefsRenderFarmDelNode();
288 PerformancePrefs *subwindow;
289 PreferencesWindow *pwindow;
292 class PrefsRenderFarmSortNodes : public BC_GenericButton
295 PrefsRenderFarmSortNodes(PreferencesWindow *pwindow, PerformancePrefs *subwindow, int x, int y);
296 ~PrefsRenderFarmSortNodes();
300 PerformancePrefs *subwindow;
301 PreferencesWindow *pwindow;
304 class PrefsRenderFarmReset : public BC_GenericButton
307 PrefsRenderFarmReset(PreferencesWindow *pwindow,
308 PerformancePrefs *subwindow, int x, int y);
312 PerformancePrefs *subwindow;
313 PreferencesWindow *pwindow;
316 class PrefsRenderFarmWatchdog : public BC_TumbleTextBox
319 PrefsRenderFarmWatchdog(PreferencesWindow *pwindow,
320 PerformancePrefs *subwindow, int x, int y);
324 PerformancePrefs *subwindow;
325 PreferencesWindow *pwindow;
329 class CICacheSize : public BC_TumbleTextBox
332 CICacheSize(int x, int y,
333 PreferencesWindow *pwindow,
334 PerformancePrefs *subwindow);
338 PreferencesWindow *pwindow;
341 class PrefsUseHWDev : public BC_PopupTextBox
344 PrefsUseHWDev(PreferencesWindow *pwindow,
345 PerformancePrefs *subwindow, int x, int y);
346 void create_objects();
349 PreferencesWindow *pwindow;
350 ArrayList<BC_ListBoxItem *> hw_dev_names;