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 PlaybackPreload;
36 class PlaybackInterpolateRaw;
37 class PlaybackWhiteBalanceRaw;
38 class PlaybackSubtitle;
39 class PlaybackSubtitleNumber;
40 class PlaybackLabelCells;
41 class PlaybackProgramNumber;
44 #include "adeviceprefs.h"
46 #include "mwindow.inc"
47 #include "preferencesthread.h"
48 #include "vdeviceprefs.h"
50 class PlaybackPrefs : public PreferencesDialog
53 PlaybackPrefs(MWindow *mwindow, PreferencesWindow *pwindow, int config_number);
56 void create_objects();
57 // int set_strategy(int strategy);
59 static char* strategy_to_string(int strategy);
60 void delete_strategy();
62 int draw_framerate(int flush /* = 1 */);
65 ADevicePrefs *audio_device;
66 VDevicePrefs *video_device;
67 ArrayList<BC_ListBoxItem*> strategies;
69 PlaybackConfig *playback_config;
70 BC_Title *framerate_title;
71 PlaybackInterpolateRaw *interpolate_raw;
72 PlaybackWhiteBalanceRaw *white_balance_raw;
73 // VideoAsynchronous *asynchronous;
75 BC_Title *vdevice_title;
76 PlaybackAudioOffset *audio_offset;
77 PlaybackGain *play_gain;
80 class PlaybackModuleFragment : public BC_PopupMenu
83 PlaybackModuleFragment(int x,
85 PreferencesWindow *pwindow,
86 PlaybackPrefs *playback,
89 PreferencesWindow *pwindow;
90 PlaybackPrefs *playback;
93 class PlaybackAudioOffset : public BC_TumbleTextBox
96 PlaybackAudioOffset(PreferencesWindow *pwindow,
97 PlaybackPrefs *subwindow,
101 PreferencesWindow *pwindow;
102 PlaybackPrefs *playback;
106 class PlaybackViewFollows : public BC_CheckBox
109 PlaybackViewFollows(PreferencesWindow *pwindow, int value, int y);
111 PreferencesWindow *pwindow;
114 class PlaybackSoftwareTimer : public BC_CheckBox
117 PlaybackSoftwareTimer(PreferencesWindow *pwindow, int value, int y);
119 PreferencesWindow *pwindow;
122 class PlaybackRealTime : public BC_CheckBox
125 PlaybackRealTime(PreferencesWindow *pwindow, int value, int y);
127 PreferencesWindow *pwindow;
130 // class VideoAsynchronous : public BC_CheckBox
133 // VideoAsynchronous(PreferencesWindow *pwindow, int x, int y);
134 // int handle_event();
135 // PreferencesWindow *pwindow;
138 class PlaybackMap51_2 : public BC_CheckBox
141 PlaybackMap51_2(PreferencesWindow *pwindow,
142 PlaybackPrefs *playback_prefs, int x, int y);
144 PreferencesWindow *pwindow;
145 PlaybackPrefs *playback_prefs;
148 class VideoEveryFrame : public BC_CheckBox
151 VideoEveryFrame(PreferencesWindow *pwindow,
152 PlaybackPrefs *playback_prefs, int x, int y);
154 PreferencesWindow *pwindow;
155 PlaybackPrefs *playback_prefs;
158 class PlaybackPreload : public BC_TextBox
161 PlaybackPreload(int x,
163 PreferencesWindow *pwindow,
164 PlaybackPrefs *playback,
167 PreferencesWindow *pwindow;
168 PlaybackPrefs *playback;
171 class PlaybackInterpolateRaw : public BC_CheckBox
174 PlaybackInterpolateRaw(int x,
176 PreferencesWindow *pwindow,
177 PlaybackPrefs *playback);
179 PreferencesWindow *pwindow;
180 PlaybackPrefs *playback;
183 class PlaybackWhiteBalanceRaw : public BC_CheckBox
186 PlaybackWhiteBalanceRaw(int x,
188 PreferencesWindow *pwindow,
189 PlaybackPrefs *playback);
191 PreferencesWindow *pwindow;
192 PlaybackPrefs *playback;
195 class PlaybackSubtitle : public BC_CheckBox
198 PlaybackSubtitle(int x,
200 PreferencesWindow *pwindow,
201 PlaybackPrefs *playback);
203 PreferencesWindow *pwindow;
204 PlaybackPrefs *playback;
207 class PlaybackSubtitleNumber : public BC_TumbleTextBox
210 PlaybackSubtitleNumber(int x, int y,
211 PreferencesWindow *pwindow,
212 PlaybackPrefs *playback);
214 PreferencesWindow *pwindow;
215 PlaybackPrefs *playback;
218 class PlaybackLabelCells : public BC_CheckBox
221 PlaybackLabelCells(int x, int y,
222 PreferencesWindow *pwindow,
223 PlaybackPrefs *playback);
225 PreferencesWindow *pwindow;
226 PlaybackPrefs *playback;
229 class PlaybackProgramNumber : public BC_TumbleTextBox
232 PlaybackProgramNumber(int x, int y,
233 PreferencesWindow *pwindow,
234 PlaybackPrefs *playback);
236 PreferencesWindow *pwindow;
237 PlaybackPrefs *playback;
240 class PlaybackGain : public BC_TumbleTextBox
243 PlaybackGain(int x, int y,
244 PreferencesWindow *pwindow,
247 PreferencesWindow *pwindow;