00001 #ifndef PLAYBACKPREFS_H
00002 #define PLAYBACKPREFS_H
00003
00004 class PlaybackBicubicBicubic;
00005 class PlaybackBicubicBilinear;
00006 class PlaybackBilinearBilinear;
00007 class PlaybackBufferBytes;
00008 class PlaybackBufferSize;
00009 class PlaybackDeblock;
00010 class PlaybackDisableNoEdits;
00011 class PlaybackHead;
00012 class PlaybackHeadCount;
00013 class PlaybackHost;
00014 class PlaybackInterpolateRaw;
00015 class PlaybackModuleFragment;
00016 class PlaybackNearest;
00017 class PlaybackOutBits;
00018 class PlaybackOutChannels;
00019 class PlaybackOutPath;
00020 class PlaybackPreload;
00021 class PlaybackReadLength;
00022 class PlaybackRealTime;
00023 class PlaybackSoftwareTimer;
00024 class PlaybackViewFollows;
00025 class PlaybackWhiteBalanceRaw;
00026 class TimecodeOffset;
00027 class VideoAsynchronous;
00028
00029 #include "adeviceprefs.h"
00030 #include "guicast.h"
00031 #include "mwindow.inc"
00032 #include "preferencesthread.h"
00033 #include "vdeviceprefs.h"
00034
00035 class PlaybackPrefs : public PreferencesDialog
00036 {
00037 public:
00038 PlaybackPrefs(MWindow *mwindow, PreferencesWindow *pwindow);
00039 ~PlaybackPrefs();
00040
00041 int create_objects();
00042
00043 int get_buffer_bytes();
00044
00045 static char* strategy_to_string(int strategy);
00046 void delete_strategy();
00047
00048 void update(int interpolation);
00049 int draw_framerate();
00050
00051 ADevicePrefs *audio_device;
00052 VDevicePrefs *video_device;
00053 ArrayList<BC_ListBoxItem*> strategies;
00054
00055 PlaybackConfig *playback_config;
00056 BC_Title *framerate_title;
00057 PlaybackNearest *nearest_neighbor;
00058 PlaybackBicubicBicubic *cubic_cubic;
00059 PlaybackBicubicBilinear *cubic_linear;
00060 PlaybackBilinearBilinear *linear_linear;
00061 PlaybackDeblock *mpeg4_deblock;
00062 PlaybackInterpolateRaw *interpolate_raw;
00063 PlaybackWhiteBalanceRaw *white_balance_raw;
00064 VideoAsynchronous *asynchronous;
00065
00066 BC_Title *vdevice_title;
00067 };
00068
00069 class PlaybackModuleFragment : public BC_PopupMenu
00070 {
00071 public:
00072 PlaybackModuleFragment(int x,
00073 int y,
00074 PreferencesWindow *pwindow,
00075 PlaybackPrefs *playback,
00076 char *text);
00077 int handle_event();
00078 PreferencesWindow *pwindow;
00079 PlaybackPrefs *playback;
00080 };
00081
00082 class PlaybackAudioOffset : public BC_TumbleTextBox
00083 {
00084 public:
00085 PlaybackAudioOffset(PreferencesWindow *pwindow,
00086 PlaybackPrefs *subwindow,
00087 int x,
00088 int y);
00089 int handle_event();
00090 PreferencesWindow *pwindow;
00091 PlaybackPrefs *playback;
00092 };
00093
00094
00095 class PlaybackViewFollows : public BC_CheckBox
00096 {
00097 public:
00098 PlaybackViewFollows(PreferencesWindow *pwindow, int value, int y);
00099 int handle_event();
00100 PreferencesWindow *pwindow;
00101 };
00102
00103 class PlaybackSoftwareTimer : public BC_CheckBox
00104 {
00105 public:
00106 PlaybackSoftwareTimer(PreferencesWindow *pwindow, int value, int y);
00107 int handle_event();
00108 PreferencesWindow *pwindow;
00109 };
00110
00111 class PlaybackRealTime : public BC_CheckBox
00112 {
00113 public:
00114 PlaybackRealTime(PreferencesWindow *pwindow, int value, int y);
00115 int handle_event();
00116 PreferencesWindow *pwindow;
00117 };
00118
00119 class VideoAsynchronous : public BC_CheckBox
00120 {
00121 public:
00122 VideoAsynchronous(PreferencesWindow *pwindow, int x, int y);
00123 int handle_event();
00124 PreferencesWindow *pwindow;
00125 };
00126
00127 class VideoEveryFrame : public BC_CheckBox
00128 {
00129 public:
00130 VideoEveryFrame(PreferencesWindow *pwindow,
00131 PlaybackPrefs *playback_prefs,
00132 int x,
00133 int y);
00134 int handle_event();
00135 PreferencesWindow *pwindow;
00136 PlaybackPrefs *playback_prefs;
00137 };
00138
00139 class PlaybackDeblock : public BC_CheckBox
00140 {
00141 public:
00142 PlaybackDeblock(PreferencesWindow *pwindow, int x, int y);
00143 int handle_event();
00144 PreferencesWindow *pwindow;
00145 };
00146
00147 class PlaybackNearest : public BC_Radial
00148 {
00149 public:
00150 PlaybackNearest(PreferencesWindow *pwindow, PlaybackPrefs *prefs, int value, int x, int y);
00151
00152 int handle_event();
00153
00154 PreferencesWindow *pwindow;
00155 PlaybackPrefs *prefs;
00156 };
00157
00158 class PlaybackBicubicBicubic : public BC_Radial
00159 {
00160 public:
00161 PlaybackBicubicBicubic(PreferencesWindow *pwindow, PlaybackPrefs *prefs, int value, int x, int y);
00162
00163 int handle_event();
00164
00165 PreferencesWindow *pwindow;
00166 PlaybackPrefs *prefs;
00167 };
00168
00169 class PlaybackBicubicBilinear : public BC_Radial
00170 {
00171 public:
00172 PlaybackBicubicBilinear(PreferencesWindow *pwindow,
00173 PlaybackPrefs *prefs,
00174 int value,
00175 int x,
00176 int y);
00177
00178 int handle_event();
00179
00180 PreferencesWindow *pwindow;
00181 PlaybackPrefs *prefs;
00182 };
00183
00184 class PlaybackBilinearBilinear : public BC_Radial
00185 {
00186 public:
00187 PlaybackBilinearBilinear(PreferencesWindow *pwindow,
00188 PlaybackPrefs *prefs,
00189 int value,
00190 int x,
00191 int y);
00192
00193 int handle_event();
00194
00195 PreferencesWindow *pwindow;
00196 PlaybackPrefs *prefs;
00197 };
00198
00199 class PlaybackPreload : public BC_TextBox
00200 {
00201 public:
00202 PlaybackPreload(int x,
00203 int y,
00204 PreferencesWindow *pwindow,
00205 PlaybackPrefs *playback,
00206 char *text);
00207 int handle_event();
00208 PreferencesWindow *pwindow;
00209 PlaybackPrefs *playback;
00210 };
00211
00212 class PlaybackInterpolateRaw : public BC_CheckBox
00213 {
00214 public:
00215 PlaybackInterpolateRaw(int x,
00216 int y,
00217 PreferencesWindow *pwindow,
00218 PlaybackPrefs *playback);
00219 int handle_event();
00220 PreferencesWindow *pwindow;
00221 PlaybackPrefs *playback;
00222 };
00223
00224 class PlaybackWhiteBalanceRaw : public BC_CheckBox
00225 {
00226 public:
00227 PlaybackWhiteBalanceRaw(int x,
00228 int y,
00229 PreferencesWindow *pwindow,
00230 PlaybackPrefs *playback);
00231 int handle_event();
00232 PreferencesWindow *pwindow;
00233 PlaybackPrefs *playback;
00234 };
00235
00236 class TimecodeOffset : public BC_TextBox
00237 {
00238 public:
00239 TimecodeOffset(int x, int y, PreferencesWindow *pwindow,
00240 PlaybackPrefs *playback, char *text, int unit);
00241 int handle_event();
00242 int unit;
00243 PlaybackPrefs *playback;
00244 PreferencesWindow *pwindow;
00245 };
00246
00247
00248 class PlaybackSubtitle : public BC_CheckBox
00249 {
00250 public:
00251 PlaybackSubtitle(int x,
00252 int y,
00253 PreferencesWindow *pwindow,
00254 PlaybackPrefs *playback);
00255 int handle_event();
00256 PreferencesWindow *pwindow;
00257 PlaybackPrefs *playback;
00258 };
00259
00260 class PlaybackSubtitleNumber : public BC_TumbleTextBox
00261 {
00262 public:
00263 PlaybackSubtitleNumber(int x,
00264 int y,
00265 PreferencesWindow *pwindow,
00266 PlaybackPrefs *playback);
00267 int handle_event();
00268 PreferencesWindow *pwindow;
00269 PlaybackPrefs *playback;
00270 };
00271
00272
00273 #endif