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