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 CacheTransitions *cache_transitions;
50 PerfsUseHWDev *use_hw_dev;
61 ArrayList<BC_ListBoxItem*> nodes[TOTAL_COLUMNS];
62 PrefsRenderFarmEditNode *edit_node;
63 PrefsRenderFarmPort *edit_port;
64 PrefsRenderFarmNodes *node_list;
65 PrefsRenderFarmWatchdog *renderfarm_watchdog;
66 FormatTools *brender_tools;
67 BC_Title *master_rate;
71 class PrefsUseBRender : public BC_CheckBox
74 PrefsUseBRender(PreferencesWindow *pwindow,
77 PreferencesWindow *pwindow;
80 class PrefsBRenderFragment : public BC_TumbleTextBox
83 PrefsBRenderFragment(PreferencesWindow *pwindow,
84 PerformancePrefs *subwindow,
87 PreferencesWindow *pwindow;
90 class PrefsRenderPreroll : public BC_TumbleTextBox
93 PrefsRenderPreroll(PreferencesWindow *pwindow,
94 PerformancePrefs *subwindow,
97 ~PrefsRenderPreroll();
101 PreferencesWindow *pwindow;
104 class PrefsBRenderPreroll : public BC_TumbleTextBox
107 PrefsBRenderPreroll(PreferencesWindow *pwindow,
108 PerformancePrefs *subwindow,
112 PreferencesWindow *pwindow;
115 class PrefsForceUniprocessor : public BC_CheckBox
118 PrefsForceUniprocessor(PreferencesWindow *pwindow, int x, int y);
119 ~PrefsForceUniprocessor();
122 PreferencesWindow *pwindow;
125 class PrefsFFMPEGMarkerIndecies : public BC_CheckBox
128 PrefsFFMPEGMarkerIndecies(PerformancePrefs *perf_prefs, int x, int y);
129 ~PrefsFFMPEGMarkerIndecies();
133 PerformancePrefs *perf_prefs;
136 class PrefsRenderFarm : public BC_CheckBox
139 PrefsRenderFarm(PreferencesWindow *pwindow, int x, int y);
144 PreferencesWindow *pwindow;
147 class PrefsRenderFarmConsolidate : public BC_CheckBox
150 PrefsRenderFarmConsolidate(PreferencesWindow *pwindow, int x, int y);
151 ~PrefsRenderFarmConsolidate();
155 PreferencesWindow *pwindow;
159 class PrefsRenderFarmPort : public BC_TumbleTextBox
162 PrefsRenderFarmPort(PreferencesWindow *pwindow,
163 PerformancePrefs *subwindow,
165 ~PrefsRenderFarmPort();
169 PreferencesWindow *pwindow;
172 class PrefsProjectSMP : public BC_TumbleTextBox
175 PrefsProjectSMP(PreferencesWindow *pwindow,
176 PerformancePrefs *subwindow, int x, int y);
180 PreferencesWindow *pwindow;
183 class PrefsRenderFarmJobs : public BC_TumbleTextBox
186 PrefsRenderFarmJobs(PreferencesWindow *pwindow,
187 PerformancePrefs *subwindow,
189 ~PrefsRenderFarmJobs();
193 PreferencesWindow *pwindow;
196 class PrefsRenderFarmMountpoint : public BC_TextBox
199 PrefsRenderFarmMountpoint(PreferencesWindow *pwindow,
200 PerformancePrefs *subwindow,
202 ~PrefsRenderFarmMountpoint();
206 PreferencesWindow *pwindow;
207 PerformancePrefs *subwindow;
210 class PrefsRenderFarmVFS : public BC_CheckBox
213 PrefsRenderFarmVFS(PreferencesWindow *pwindow,
214 PerformancePrefs *subwindow,
218 PreferencesWindow *pwindow;
219 PerformancePrefs *subwindow;
222 class PrefsRenderFarmNodes : public BC_ListBox
225 PrefsRenderFarmNodes(PreferencesWindow *pwindow, PerformancePrefs *subwindow, int x, int y);
226 ~PrefsRenderFarmNodes();
229 int selection_changed();
230 int column_resize_event();
233 const char *titles[PerformancePrefs::TOTAL_COLUMNS];
234 int widths[PerformancePrefs::TOTAL_COLUMNS];
236 PreferencesWindow *pwindow;
237 PerformancePrefs *subwindow;
240 class PrefsRenderFarmEditNode : public BC_TextBox
243 PrefsRenderFarmEditNode(PreferencesWindow *pwindow, PerformancePrefs *subwindow, int x, int y);
244 ~PrefsRenderFarmEditNode();
248 PerformancePrefs *subwindow;
249 PreferencesWindow *pwindow;
252 class PrefsRenderFarmNewNode : public BC_GenericButton
255 PrefsRenderFarmNewNode(PreferencesWindow *pwindow, PerformancePrefs *subwindow, int x, int y);
256 ~PrefsRenderFarmNewNode();
261 PerformancePrefs *subwindow;
262 PreferencesWindow *pwindow;
265 class PrefsRenderFarmReplaceNode : public BC_GenericButton
268 PrefsRenderFarmReplaceNode(PreferencesWindow *pwindow,
269 PerformancePrefs *subwindow,
272 ~PrefsRenderFarmReplaceNode();
277 PerformancePrefs *subwindow;
278 PreferencesWindow *pwindow;
281 class PrefsRenderFarmDelNode : public BC_GenericButton
284 PrefsRenderFarmDelNode(PreferencesWindow *pwindow, PerformancePrefs *subwindow, int x, int y);
285 ~PrefsRenderFarmDelNode();
289 PerformancePrefs *subwindow;
290 PreferencesWindow *pwindow;
293 class PrefsRenderFarmSortNodes : public BC_GenericButton
296 PrefsRenderFarmSortNodes(PreferencesWindow *pwindow, PerformancePrefs *subwindow, int x, int y);
297 ~PrefsRenderFarmSortNodes();
301 PerformancePrefs *subwindow;
302 PreferencesWindow *pwindow;
305 class PrefsRenderFarmReset : public BC_GenericButton
308 PrefsRenderFarmReset(PreferencesWindow *pwindow,
309 PerformancePrefs *subwindow, int x, int y);
313 PerformancePrefs *subwindow;
314 PreferencesWindow *pwindow;
317 class PrefsRenderFarmWatchdog : public BC_TumbleTextBox
320 PrefsRenderFarmWatchdog(PreferencesWindow *pwindow,
321 PerformancePrefs *subwindow, int x, int y);
325 PerformancePrefs *subwindow;
326 PreferencesWindow *pwindow;
330 class CICacheSize : public BC_TumbleTextBox
333 CICacheSize(int x, int y,
334 PreferencesWindow *pwindow,
335 PerformancePrefs *subwindow);
339 PreferencesWindow *pwindow;
342 class CacheTransitions : public BC_CheckBox
345 CacheTransitions(int x, int y,
346 PreferencesWindow *pwindow,
347 PerformancePrefs *subwindow);
351 PreferencesWindow *pwindow;
354 class PrefsUseHWDevItems : public ArrayList<BC_ListBoxItem *>
357 PrefsUseHWDevItems() {}
358 ~PrefsUseHWDevItems() { remove_all_objects(); }
361 class PrefsUseHWDev : public BC_PopupTextBox
364 PrefsUseHWDev(PreferencesWindow *pwindow,
365 PerformancePrefs *subwindow, int x, int y);
366 void create_objects();
369 PreferencesWindow *pwindow;
370 PrefsUseHWDevItems hw_dev_names;