mirror of https://github.com/stella-emu/stella.git
147 lines
4.5 KiB
C++
147 lines
4.5 KiB
C++
//============================================================================
|
|
//
|
|
// SSSS tt lll lll
|
|
// SS SS tt ll ll
|
|
// SS tttttt eeee ll ll aaaa
|
|
// SSSS tt ee ee ll ll aa
|
|
// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator"
|
|
// SS SS tt ee ll ll aa aa
|
|
// SSSS ttt eeeee llll llll aaaaa
|
|
//
|
|
// Copyright (c) 1995-2016 by Bradford W. Mott, Stephen Anthony
|
|
// and the Stella Team
|
|
//
|
|
// See the file "License.txt" for information on usage and redistribution of
|
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
|
//
|
|
// $Id$
|
|
//============================================================================
|
|
|
|
#ifndef VIDEO_DIALOG_HXX
|
|
#define VIDEO_DIALOG_HXX
|
|
|
|
class CommandSender;
|
|
class CheckboxWidget;
|
|
class DialogContainer;
|
|
class PopUpWidget;
|
|
class SliderWidget;
|
|
class StaticTextWidget;
|
|
class TabWidget;
|
|
class OSystem;
|
|
|
|
#include "Dialog.hxx"
|
|
#include "bspf.hxx"
|
|
|
|
class VideoDialog : public Dialog
|
|
{
|
|
public:
|
|
VideoDialog(OSystem& osystem, DialogContainer& parent, const GUI::Font& font,
|
|
int max_w, int max_h);
|
|
virtual ~VideoDialog();
|
|
|
|
private:
|
|
void loadConfig() override;
|
|
void saveConfig() override;
|
|
void setDefaults() override;
|
|
|
|
void handleFullscreenChange(bool enable);
|
|
void handleTVModeChange(NTSCFilter::Preset);
|
|
void loadTVAdjustables(NTSCFilter::Preset preset);
|
|
void handleCommand(CommandSender* sender, int cmd, int data, int id) override;
|
|
|
|
private:
|
|
TabWidget* myTab;
|
|
|
|
// General options
|
|
PopUpWidget* myRenderer;
|
|
PopUpWidget* myTIAZoom;
|
|
PopUpWidget* myTIAPalette;
|
|
PopUpWidget* myFrameTiming;
|
|
PopUpWidget* myTIAInterpolate;
|
|
SliderWidget* myNAspectRatio;
|
|
StaticTextWidget* myNAspectRatioLabel;
|
|
SliderWidget* myPAspectRatio;
|
|
StaticTextWidget* myPAspectRatioLabel;
|
|
|
|
SliderWidget* myFrameRate;
|
|
StaticTextWidget* myFrameRateLabel;
|
|
CheckboxWidget* myFullscreen;
|
|
CheckboxWidget* myUseStretch;
|
|
CheckboxWidget* myUseVSync;
|
|
CheckboxWidget* myColorLoss;
|
|
CheckboxWidget* myUIMessages;
|
|
CheckboxWidget* myCenter;
|
|
CheckboxWidget* myFastSCBios;
|
|
|
|
// TV effects adjustables (custom mode)
|
|
PopUpWidget* myTVMode;
|
|
SliderWidget* myTVSharp;
|
|
StaticTextWidget* myTVSharpLabel;
|
|
SliderWidget* myTVHue;
|
|
StaticTextWidget* myTVHueLabel;
|
|
SliderWidget* myTVRes;
|
|
StaticTextWidget* myTVResLabel;
|
|
SliderWidget* myTVArtifacts;
|
|
StaticTextWidget* myTVArtifactsLabel;
|
|
SliderWidget* myTVFringe;
|
|
StaticTextWidget* myTVFringeLabel;
|
|
SliderWidget* myTVBleed;
|
|
StaticTextWidget* myTVBleedLabel;
|
|
SliderWidget* myTVBright;
|
|
StaticTextWidget* myTVBrightLabel;
|
|
SliderWidget* myTVContrast;
|
|
StaticTextWidget* myTVContrastLabel;
|
|
SliderWidget* myTVSatur;
|
|
StaticTextWidget* myTVSaturLabel;
|
|
SliderWidget* myTVGamma;
|
|
StaticTextWidget* myTVGammaLabel;
|
|
|
|
// TV scanline intensity and interpolation
|
|
StaticTextWidget* myTVScanLabel;
|
|
SliderWidget* myTVScanIntense;
|
|
StaticTextWidget* myTVScanIntenseLabel;
|
|
CheckboxWidget* myTVScanInterpolate;
|
|
|
|
// TV effects adjustables presets (custom mode)
|
|
ButtonWidget* myCloneComposite;
|
|
ButtonWidget* myCloneSvideo;
|
|
ButtonWidget* myCloneRGB;
|
|
ButtonWidget* myCloneBad;
|
|
ButtonWidget* myCloneCustom;
|
|
|
|
enum {
|
|
kNAspectRatioChanged = 'VDan',
|
|
kPAspectRatioChanged = 'VDap',
|
|
kFrameRateChanged = 'VDfr',
|
|
|
|
kTVModeChanged = 'VDtv',
|
|
kTVSharpChanged = 'TVsh',
|
|
kTVHueChanged = 'TVhu',
|
|
kTVResChanged = 'TVrs',
|
|
kTVArtifactsChanged = 'TVar',
|
|
kTVFringeChanged = 'TVfr',
|
|
kTVBleedChanged = 'TVbl',
|
|
kTVBrightChanged = 'TVbr',
|
|
kTVContrastChanged = 'TVct',
|
|
kTVSaturChanged = 'TVsa',
|
|
kTVGammaChanged = 'TVga',
|
|
kTVScanIntenseChanged= 'TVsc',
|
|
|
|
kCloneCompositeCmd = 'CLcp',
|
|
kCloneSvideoCmd = 'CLsv',
|
|
kCloneRGBCmd = 'CLrb',
|
|
kCloneBadCmd = 'CLbd',
|
|
kCloneCustomCmd = 'CLcu'
|
|
};
|
|
|
|
private:
|
|
// Following constructors and assignment operators not supported
|
|
VideoDialog() = delete;
|
|
VideoDialog(const VideoDialog&) = delete;
|
|
VideoDialog(VideoDialog&&) = delete;
|
|
VideoDialog& operator=(const VideoDialog&) = delete;
|
|
VideoDialog& operator=(VideoDialog&&) = delete;
|
|
};
|
|
|
|
#endif
|