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 PLAYBACKPREFS_H
23 #define PLAYBACKPREFS_H
27 class PlaybackModuleFragment;
28 class PlaybackAudioOffset;
29 class PlaybackViewFollows;
30 class PlaybackSoftwareTimer;
31 class PlaybackRealTime;
32 class PlaybackMap51_2;
33 class VideoAsynchronous;
34 class VideoEveryFrame;
35 class PlaybackDeblock;
36 class PlaybackPreload;
37 class PlaybackInterpolateRaw;
38 class PlaybackWhiteBalanceRaw;
39 class PlaybackSubtitle;
40 class PlaybackSubtitleNumber;
41 class PlaybackLabelCells;
42 class PlaybackProgramNumber;
45 #include "adeviceprefs.h"
47 #include "mwindow.inc"
48 #include "preferencesthread.h"
49 #include "vdeviceprefs.h"
51 class PlaybackPrefs : public PreferencesDialog
54 PlaybackPrefs(MWindow *mwindow, PreferencesWindow *pwindow, int config_number);
57 void create_objects();
58 // int set_strategy(int strategy);
60 static char* strategy_to_string(int strategy);
61 void delete_strategy();
63 int draw_framerate(int flush /* = 1 */);
66 ADevicePrefs *audio_device;
67 VDevicePrefs *video_device;
68 ArrayList<BC_ListBoxItem*> strategies;
70 PlaybackConfig *playback_config;
71 BC_Title *framerate_title;
72 PlaybackDeblock *mpeg4_deblock;
73 PlaybackInterpolateRaw *interpolate_raw;
74 PlaybackWhiteBalanceRaw *white_balance_raw;
75 VideoAsynchronous *asynchronous;
77 BC_Title *vdevice_title;
78 PlaybackAudioOffset *audio_offset;
79 PlaybackGain *play_gain;
82 class PlaybackModuleFragment : public BC_PopupMenu
85 PlaybackModuleFragment(int x,
87 PreferencesWindow *pwindow,
88 PlaybackPrefs *playback,
91 PreferencesWindow *pwindow;
92 PlaybackPrefs *playback;
95 class PlaybackAudioOffset : public BC_TumbleTextBox
98 PlaybackAudioOffset(PreferencesWindow *pwindow,
99 PlaybackPrefs *subwindow,
103 PreferencesWindow *pwindow;
104 PlaybackPrefs *playback;
108 class PlaybackViewFollows : public BC_CheckBox
111 PlaybackViewFollows(PreferencesWindow *pwindow, int value, int y);
113 PreferencesWindow *pwindow;
116 class PlaybackSoftwareTimer : public BC_CheckBox
119 PlaybackSoftwareTimer(PreferencesWindow *pwindow, int value, int y);
121 PreferencesWindow *pwindow;
124 class PlaybackRealTime : public BC_CheckBox
127 PlaybackRealTime(PreferencesWindow *pwindow, int value, int y);
129 PreferencesWindow *pwindow;
132 class PlaybackMap51_2 : public BC_CheckBox
135 PlaybackMap51_2(PreferencesWindow *pwindow,
136 PlaybackPrefs *playback_prefs, int x, int y);
138 PreferencesWindow *pwindow;
139 PlaybackPrefs *playback_prefs;
142 class VideoAsynchronous : public BC_CheckBox
145 VideoAsynchronous(PreferencesWindow *pwindow, int x, int y);
147 PreferencesWindow *pwindow;
150 class VideoEveryFrame : public BC_CheckBox
153 VideoEveryFrame(PreferencesWindow *pwindow,
154 PlaybackPrefs *playback_prefs, int x, int y);
156 PreferencesWindow *pwindow;
157 PlaybackPrefs *playback_prefs;
160 class PlaybackDeblock : public BC_CheckBox
163 PlaybackDeblock(PreferencesWindow *pwindow, int x, int y);
165 PreferencesWindow *pwindow;
168 class PlaybackPreload : public BC_TextBox
171 PlaybackPreload(int x,
173 PreferencesWindow *pwindow,
174 PlaybackPrefs *playback,
177 PreferencesWindow *pwindow;
178 PlaybackPrefs *playback;
181 class PlaybackInterpolateRaw : public BC_CheckBox
184 PlaybackInterpolateRaw(int x,
186 PreferencesWindow *pwindow,
187 PlaybackPrefs *playback);
189 PreferencesWindow *pwindow;
190 PlaybackPrefs *playback;
193 class PlaybackWhiteBalanceRaw : public BC_CheckBox
196 PlaybackWhiteBalanceRaw(int x,
198 PreferencesWindow *pwindow,
199 PlaybackPrefs *playback);
201 PreferencesWindow *pwindow;
202 PlaybackPrefs *playback;
205 class PlaybackSubtitle : public BC_CheckBox
208 PlaybackSubtitle(int x,
210 PreferencesWindow *pwindow,
211 PlaybackPrefs *playback);
213 PreferencesWindow *pwindow;
214 PlaybackPrefs *playback;
217 class PlaybackSubtitleNumber : public BC_TumbleTextBox
220 PlaybackSubtitleNumber(int x, int y,
221 PreferencesWindow *pwindow,
222 PlaybackPrefs *playback);
224 PreferencesWindow *pwindow;
225 PlaybackPrefs *playback;
228 class PlaybackLabelCells : public BC_CheckBox
231 PlaybackLabelCells(int x, int y,
232 PreferencesWindow *pwindow,
233 PlaybackPrefs *playback);
235 PreferencesWindow *pwindow;
236 PlaybackPrefs *playback;
239 class PlaybackProgramNumber : public BC_TumbleTextBox
242 PlaybackProgramNumber(int x, int y,
243 PreferencesWindow *pwindow,
244 PlaybackPrefs *playback);
246 PreferencesWindow *pwindow;
247 PlaybackPrefs *playback;
250 class PlaybackGain : public BC_TumbleTextBox
253 PlaybackGain(int x, int y,
254 PreferencesWindow *pwindow,
257 PreferencesWindow *pwindow;