Merge CV, ver=5.1; ops/methods from HV, and interface from CV where possible
[goodguy/history.git] / cinelerra-5.1 / cinelerra / playbackprefs.h
diff --git a/cinelerra-5.1/cinelerra/playbackprefs.h b/cinelerra-5.1/cinelerra/playbackprefs.h
new file mode 100644 (file)
index 0000000..4d9260d
--- /dev/null
@@ -0,0 +1,272 @@
+
+/*
+ * CINELERRA
+ * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
+ * 
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ * 
+ */
+
+#ifndef PLAYBACKPREFS_H
+#define PLAYBACKPREFS_H
+
+
+class PlaybackPrefs;
+class PlaybackModuleFragment;
+class PlaybackAudioOffset;
+class PlaybackViewFollows;
+class PlaybackSoftwareTimer;
+class PlaybackRealTime;
+class PlaybackMap51_2;
+class TimecodeOffset;
+class VideoAsynchronous;
+class VideoEveryFrame;
+class PlaybackDeblock;
+class PlaybackPreload;
+class PlaybackInterpolateRaw;
+class PlaybackWhiteBalanceRaw;
+class PlaybackSubtitle;
+class PlaybackSubtitleNumber;
+class PlaybackLabelCells;
+class PlaybackProgramNumber;
+class PlaybackGain;
+
+#include "adeviceprefs.h"
+#include "guicast.h"
+#include "mwindow.inc"
+#include "preferencesthread.h"
+#include "vdeviceprefs.h"
+
+class PlaybackPrefs : public PreferencesDialog
+{
+public:
+       PlaybackPrefs(MWindow *mwindow, PreferencesWindow *pwindow, int config_number);
+       ~PlaybackPrefs();
+
+       void create_objects();
+//     int set_strategy(int strategy);
+
+       static char* strategy_to_string(int strategy);
+       void delete_strategy();
+
+       int draw_framerate(int flush /* = 1 */);
+
+       int config_number;
+       ADevicePrefs *audio_device;
+       VDevicePrefs *video_device;
+       ArrayList<BC_ListBoxItem*> strategies;
+
+       PlaybackConfig *playback_config;
+       BC_Title *framerate_title;
+       PlaybackDeblock *mpeg4_deblock;
+       PlaybackInterpolateRaw *interpolate_raw;
+       PlaybackWhiteBalanceRaw *white_balance_raw;
+       VideoAsynchronous *asynchronous;
+
+       BC_Title *vdevice_title;
+       PlaybackAudioOffset *audio_offset;
+       PlaybackGain *play_gain;
+};
+
+class PlaybackModuleFragment : public BC_PopupMenu
+{
+public:
+       PlaybackModuleFragment(int x, 
+               int y, 
+               PreferencesWindow *pwindow, 
+               PlaybackPrefs *playback, 
+               char *text);
+       int handle_event();
+       PreferencesWindow *pwindow;
+       PlaybackPrefs *playback;
+};
+
+class PlaybackAudioOffset : public BC_TumbleTextBox
+{
+public:
+       PlaybackAudioOffset(PreferencesWindow *pwindow, 
+               PlaybackPrefs *subwindow,
+               int x, 
+               int y);
+       int handle_event();
+       PreferencesWindow *pwindow;
+       PlaybackPrefs *playback;
+};
+
+
+class PlaybackViewFollows : public BC_CheckBox
+{
+public:
+       PlaybackViewFollows(PreferencesWindow *pwindow, int value, int y);
+       int handle_event();
+       PreferencesWindow *pwindow;
+};
+
+class PlaybackSoftwareTimer : public BC_CheckBox
+{
+public:
+       PlaybackSoftwareTimer(PreferencesWindow *pwindow, int value, int y);
+       int handle_event();
+       PreferencesWindow *pwindow;
+};
+
+class PlaybackRealTime : public BC_CheckBox
+{
+public:
+       PlaybackRealTime(PreferencesWindow *pwindow, int value, int y);
+       int handle_event();
+       PreferencesWindow *pwindow;
+};
+
+class PlaybackMap51_2 : public BC_CheckBox
+{
+public:
+       PlaybackMap51_2(PreferencesWindow *pwindow,
+               PlaybackPrefs *playback_prefs, int x, int y);
+       int handle_event();
+       PreferencesWindow *pwindow;
+       PlaybackPrefs *playback_prefs;
+};
+
+class VideoAsynchronous : public BC_CheckBox
+{
+public:
+       VideoAsynchronous(PreferencesWindow *pwindow, int x, int y);
+       int handle_event();
+       PreferencesWindow *pwindow;
+};
+
+class VideoEveryFrame : public BC_CheckBox
+{
+public:
+       VideoEveryFrame(PreferencesWindow *pwindow, 
+               PlaybackPrefs *playback_prefs, int x, int y);
+       int handle_event();
+       PreferencesWindow *pwindow;
+       PlaybackPrefs *playback_prefs;
+};
+
+class PlaybackDeblock : public BC_CheckBox
+{
+public:
+       PlaybackDeblock(PreferencesWindow *pwindow, int x, int y);
+       int handle_event();
+       PreferencesWindow *pwindow;
+};
+
+class PlaybackPreload : public BC_TextBox
+{
+public:
+       PlaybackPreload(int x, 
+               int y, 
+               PreferencesWindow *pwindow, 
+               PlaybackPrefs *playback, 
+               char *text);
+       int handle_event();
+       PreferencesWindow *pwindow;
+       PlaybackPrefs *playback;
+};
+
+class PlaybackInterpolateRaw : public BC_CheckBox
+{
+public:
+       PlaybackInterpolateRaw(int x, 
+               int y, 
+               PreferencesWindow *pwindow, 
+               PlaybackPrefs *playback);
+       int handle_event();
+       PreferencesWindow *pwindow;
+       PlaybackPrefs *playback;
+};
+
+class PlaybackWhiteBalanceRaw : public BC_CheckBox
+{
+public:
+       PlaybackWhiteBalanceRaw(int x, 
+               int y, 
+               PreferencesWindow *pwindow, 
+               PlaybackPrefs *playback);
+       int handle_event();
+       PreferencesWindow *pwindow;
+       PlaybackPrefs *playback;
+};
+
+class TimecodeOffset : public BC_TextBox
+{
+       public:
+               TimecodeOffset(int x, int y, PreferencesWindow *pwindow,
+                              PlaybackPrefs *playback, char *text, int unit);
+               int handle_event();
+               int unit;
+               PlaybackPrefs *playback;
+               PreferencesWindow *pwindow;
+};
+
+class PlaybackSubtitle : public BC_CheckBox
+{
+public:
+       PlaybackSubtitle(int x, 
+               int y, 
+               PreferencesWindow *pwindow, 
+               PlaybackPrefs *playback);
+       int handle_event();
+       PreferencesWindow *pwindow;
+       PlaybackPrefs *playback;
+};
+
+class PlaybackSubtitleNumber : public BC_TumbleTextBox
+{
+public:
+       PlaybackSubtitleNumber(int x, int y, 
+               PreferencesWindow *pwindow, 
+               PlaybackPrefs *playback);
+       int handle_event();
+       PreferencesWindow *pwindow;
+       PlaybackPrefs *playback;
+};
+
+class PlaybackLabelCells : public BC_CheckBox
+{
+public:
+       PlaybackLabelCells(int x, int y, 
+               PreferencesWindow *pwindow, 
+               PlaybackPrefs *playback);
+       int handle_event();
+       PreferencesWindow *pwindow;
+       PlaybackPrefs *playback;
+};
+
+class PlaybackProgramNumber : public BC_TumbleTextBox
+{
+public:
+       PlaybackProgramNumber(int x, int y, 
+               PreferencesWindow *pwindow, 
+               PlaybackPrefs *playback);
+       int handle_event();
+       PreferencesWindow *pwindow;
+       PlaybackPrefs *playback;
+};
+
+class PlaybackGain : public BC_TumbleTextBox
+{
+public:
+       PlaybackGain(int x, int y,
+               PreferencesWindow *pwindow, 
+               PlaybackPrefs *gui);
+       int handle_event();
+       PreferencesWindow *pwindow;
+};
+
+#endif