Initial add of PAL emulation palette controls for Qt GUI.
This commit is contained in:
parent
167bda0d37
commit
92e983a7e8
|
@ -34,6 +34,12 @@
|
||||||
#include "../../ppu.h"
|
#include "../../ppu.h"
|
||||||
|
|
||||||
extern bool force_grayscale;
|
extern bool force_grayscale;
|
||||||
|
extern bool palupdate;
|
||||||
|
extern int palnotch;
|
||||||
|
extern int palsaturation;
|
||||||
|
extern int palsharpness;
|
||||||
|
extern int palcontrast;
|
||||||
|
extern int palbrightness;
|
||||||
|
|
||||||
static const char *commentText =
|
static const char *commentText =
|
||||||
"Palette Selection uses the 1st Matching Condition:\n\
|
"Palette Selection uses the 1st Matching Condition:\n\
|
||||||
|
@ -47,7 +53,8 @@ PaletteConfDialog_t::PaletteConfDialog_t(QWidget *parent)
|
||||||
: QDialog(parent)
|
: QDialog(parent)
|
||||||
{
|
{
|
||||||
QVBoxLayout *mainLayout, *vbox;
|
QVBoxLayout *mainLayout, *vbox;
|
||||||
QHBoxLayout *hbox1, *hbox;
|
QHBoxLayout *hbox1, *hbox2, *hbox;
|
||||||
|
QGridLayout *grid;
|
||||||
QGroupBox *frame;
|
QGroupBox *frame;
|
||||||
QPushButton *closeButton;
|
QPushButton *closeButton;
|
||||||
QPushButton *button;
|
QPushButton *button;
|
||||||
|
@ -97,11 +104,14 @@ PaletteConfDialog_t::PaletteConfDialog_t(QWidget *parent)
|
||||||
custom_palette_path->setReadOnly(true);
|
custom_palette_path->setReadOnly(true);
|
||||||
custom_palette_path->setText(paletteFile.c_str());
|
custom_palette_path->setText(paletteFile.c_str());
|
||||||
|
|
||||||
|
hbox = new QHBoxLayout();
|
||||||
|
hbox->addWidget(GrayScale);
|
||||||
|
hbox->addWidget(deemphSwap);
|
||||||
|
|
||||||
vbox->addWidget(useCustom);
|
vbox->addWidget(useCustom);
|
||||||
vbox->addLayout(hbox1);
|
vbox->addLayout(hbox1);
|
||||||
vbox->addWidget(custom_palette_path);
|
vbox->addWidget(custom_palette_path);
|
||||||
vbox->addWidget(GrayScale);
|
vbox->addLayout(hbox);
|
||||||
vbox->addWidget(deemphSwap);
|
|
||||||
|
|
||||||
button = new QPushButton(tr("Clear"));
|
button = new QPushButton(tr("Clear"));
|
||||||
button->setIcon(style->standardIcon(QStyle::SP_LineEditClearButton));
|
button->setIcon(style->standardIcon(QStyle::SP_LineEditClearButton));
|
||||||
|
@ -113,20 +123,19 @@ PaletteConfDialog_t::PaletteConfDialog_t(QWidget *parent)
|
||||||
|
|
||||||
mainLayout->addWidget(frame);
|
mainLayout->addWidget(frame);
|
||||||
|
|
||||||
frame = new QGroupBox(tr("NTSC Palette Controls:"));
|
ntscFrame = new QGroupBox(tr("NTSC Palette Control:"));
|
||||||
|
ntscFrame->setCheckable(true);
|
||||||
|
|
||||||
vbox = new QVBoxLayout();
|
vbox = new QVBoxLayout();
|
||||||
useNTSC = new QCheckBox(tr("Use NTSC Palette"));
|
hbox2 = new QHBoxLayout();
|
||||||
|
|
||||||
int ntscPaletteEnable;
|
int ntscPaletteEnable;
|
||||||
g_config->getOption("SDL.NTSCpalette", &ntscPaletteEnable);
|
g_config->getOption("SDL.NTSCpalette", &ntscPaletteEnable);
|
||||||
useNTSC->setChecked(ntscPaletteEnable);
|
ntscFrame->setChecked(ntscPaletteEnable);
|
||||||
|
|
||||||
connect(useNTSC, SIGNAL(stateChanged(int)), this, SLOT(use_NTSC_Changed(int)));
|
connect(ntscFrame, SIGNAL(clicked(bool)), this, SLOT(use_NTSC_Changed(bool)));
|
||||||
|
|
||||||
vbox->addWidget(useNTSC);
|
sprintf(stmp, "Tint: %3i", tint);
|
||||||
|
|
||||||
sprintf(stmp, "Tint: %3i \n", tint);
|
|
||||||
tintFrame = new QGroupBox(tr(stmp));
|
tintFrame = new QGroupBox(tr(stmp));
|
||||||
hbox1 = new QHBoxLayout();
|
hbox1 = new QHBoxLayout();
|
||||||
tintSlider = new QSlider(Qt::Horizontal);
|
tintSlider = new QSlider(Qt::Horizontal);
|
||||||
|
@ -138,9 +147,9 @@ PaletteConfDialog_t::PaletteConfDialog_t(QWidget *parent)
|
||||||
|
|
||||||
hbox1->addWidget(tintSlider);
|
hbox1->addWidget(tintSlider);
|
||||||
tintFrame->setLayout(hbox1);
|
tintFrame->setLayout(hbox1);
|
||||||
vbox->addWidget(tintFrame);
|
hbox2->addWidget(tintFrame);
|
||||||
|
|
||||||
sprintf(stmp, "Hue: %3i \n", hue);
|
sprintf(stmp, "Hue: %3i", hue);
|
||||||
hueFrame = new QGroupBox(tr(stmp));
|
hueFrame = new QGroupBox(tr(stmp));
|
||||||
hbox1 = new QHBoxLayout();
|
hbox1 = new QHBoxLayout();
|
||||||
hueSlider = new QSlider(Qt::Horizontal);
|
hueSlider = new QSlider(Qt::Horizontal);
|
||||||
|
@ -152,11 +161,92 @@ PaletteConfDialog_t::PaletteConfDialog_t(QWidget *parent)
|
||||||
|
|
||||||
hbox1->addWidget(hueSlider);
|
hbox1->addWidget(hueSlider);
|
||||||
hueFrame->setLayout(hbox1);
|
hueFrame->setLayout(hbox1);
|
||||||
vbox->addWidget(hueFrame);
|
hbox2->addWidget(hueFrame);
|
||||||
|
vbox->addLayout(hbox2);
|
||||||
|
|
||||||
frame->setLayout(vbox);
|
ntscFrame->setLayout(vbox);
|
||||||
|
|
||||||
mainLayout->addWidget(frame);
|
mainLayout->addWidget(ntscFrame);
|
||||||
|
|
||||||
|
palFrame = new QGroupBox(tr("PAL Emulation:"));
|
||||||
|
palFrame->setCheckable(true);
|
||||||
|
|
||||||
|
grid = new QGridLayout();
|
||||||
|
|
||||||
|
sprintf(stmp, "Notch: %3i%%", palnotch);
|
||||||
|
notchFrame = new QGroupBox(tr(stmp));
|
||||||
|
hbox1 = new QHBoxLayout();
|
||||||
|
notchSlider = new QSlider(Qt::Horizontal);
|
||||||
|
notchSlider->setMinimum(0);
|
||||||
|
notchSlider->setMaximum(100);
|
||||||
|
notchSlider->setValue(palnotch);
|
||||||
|
|
||||||
|
hbox1->addWidget(notchSlider);
|
||||||
|
notchFrame->setLayout(hbox1);
|
||||||
|
|
||||||
|
sprintf(stmp, "Saturation: %3i%%", palsaturation);
|
||||||
|
saturationFrame = new QGroupBox(tr(stmp));
|
||||||
|
hbox1 = new QHBoxLayout();
|
||||||
|
saturationSlider = new QSlider(Qt::Horizontal);
|
||||||
|
saturationSlider->setMinimum(0);
|
||||||
|
saturationSlider->setMaximum(200);
|
||||||
|
saturationSlider->setValue(palsaturation);
|
||||||
|
|
||||||
|
hbox1->addWidget(saturationSlider);
|
||||||
|
saturationFrame->setLayout(hbox1);
|
||||||
|
|
||||||
|
sprintf(stmp, "Sharpness:");
|
||||||
|
sharpnessFrame = new QGroupBox(tr(stmp));
|
||||||
|
hbox1 = new QHBoxLayout();
|
||||||
|
sharpnessSlider = new QSlider(Qt::Horizontal);
|
||||||
|
sharpnessSlider->setMinimum(0);
|
||||||
|
sharpnessSlider->setMaximum(50);
|
||||||
|
sharpnessSlider->setValue(palsharpness);
|
||||||
|
|
||||||
|
hbox1->addWidget(sharpnessSlider);
|
||||||
|
sharpnessFrame->setLayout(hbox1);
|
||||||
|
|
||||||
|
sprintf(stmp, "Contrast: %3i%%", palcontrast);
|
||||||
|
contrastFrame = new QGroupBox(tr(stmp));
|
||||||
|
hbox1 = new QHBoxLayout();
|
||||||
|
contrastSlider = new QSlider(Qt::Horizontal);
|
||||||
|
contrastSlider->setMinimum(0);
|
||||||
|
contrastSlider->setMaximum(200);
|
||||||
|
contrastSlider->setValue(palcontrast);
|
||||||
|
|
||||||
|
hbox1->addWidget(contrastSlider);
|
||||||
|
contrastFrame->setLayout(hbox1);
|
||||||
|
|
||||||
|
sprintf(stmp, "Brightness: %3i%%", palbrightness);
|
||||||
|
brightnessFrame = new QGroupBox(tr(stmp));
|
||||||
|
hbox1 = new QHBoxLayout();
|
||||||
|
brightnessSlider = new QSlider(Qt::Horizontal);
|
||||||
|
brightnessSlider->setMinimum(0);
|
||||||
|
brightnessSlider->setMaximum(100);
|
||||||
|
brightnessSlider->setValue(palbrightness);
|
||||||
|
|
||||||
|
hbox1->addWidget(brightnessSlider);
|
||||||
|
brightnessFrame->setLayout(hbox1);
|
||||||
|
|
||||||
|
palReset = new QPushButton( tr("Reset") );
|
||||||
|
|
||||||
|
grid->addWidget(notchFrame , 0, 0);
|
||||||
|
grid->addWidget(saturationFrame, 0, 1);
|
||||||
|
grid->addWidget(sharpnessFrame , 0, 2);
|
||||||
|
grid->addWidget(contrastFrame , 1, 0);
|
||||||
|
grid->addWidget(brightnessFrame, 1, 1);
|
||||||
|
grid->addWidget(palReset , 1, 2);
|
||||||
|
|
||||||
|
connect( palReset , SIGNAL(clicked(void)) , this, SLOT(palResetClicked(void)) );
|
||||||
|
connect( notchSlider , SIGNAL(valueChanged(int)), this, SLOT(palNotchChanged(int) ) );
|
||||||
|
connect( saturationSlider, SIGNAL(valueChanged(int)), this, SLOT(palSaturationChanged(int) ) );
|
||||||
|
connect( sharpnessSlider , SIGNAL(valueChanged(int)), this, SLOT(palSharpnessChanged(int) ) );
|
||||||
|
connect( contrastSlider , SIGNAL(valueChanged(int)), this, SLOT(palContrastChanged(int) ) );
|
||||||
|
connect( brightnessSlider, SIGNAL(valueChanged(int)), this, SLOT(palBrightnessChanged(int) ) );
|
||||||
|
|
||||||
|
palFrame->setLayout(grid);
|
||||||
|
|
||||||
|
mainLayout->addWidget(palFrame);
|
||||||
|
|
||||||
comments = new QTextEdit();
|
comments = new QTextEdit();
|
||||||
|
|
||||||
|
@ -296,10 +386,10 @@ void PaletteConfDialog_t::deemphswap_Changed(int state)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//----------------------------------------------------
|
//----------------------------------------------------
|
||||||
void PaletteConfDialog_t::use_NTSC_Changed(int state)
|
void PaletteConfDialog_t::use_NTSC_Changed(bool state)
|
||||||
{
|
{
|
||||||
int h, t;
|
int h, t;
|
||||||
int value = (state == Qt::Unchecked) ? 0 : 1;
|
int value = state;
|
||||||
|
|
||||||
g_config->setOption("SDL.NTSCpalette", value);
|
g_config->setOption("SDL.NTSCpalette", value);
|
||||||
g_config->save();
|
g_config->save();
|
||||||
|
@ -431,3 +521,99 @@ void PaletteConfDialog_t::openPaletteFile(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//----------------------------------------------------
|
//----------------------------------------------------
|
||||||
|
void PaletteConfDialog_t::palResetClicked(void)
|
||||||
|
{
|
||||||
|
if (fceuWrapperTryLock())
|
||||||
|
{
|
||||||
|
palnotch = 100;
|
||||||
|
palsaturation = 100;
|
||||||
|
palsharpness = 0;
|
||||||
|
palcontrast = 100;
|
||||||
|
palbrightness = 50;
|
||||||
|
palupdate = 1;
|
||||||
|
|
||||||
|
fceuWrapperUnLock();
|
||||||
|
|
||||||
|
notchSlider->setValue( palnotch );
|
||||||
|
saturationSlider->setValue( palsaturation );
|
||||||
|
sharpnessSlider->setValue( palsharpness );
|
||||||
|
contrastSlider->setValue( palcontrast );
|
||||||
|
brightnessSlider->setValue( palbrightness );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//----------------------------------------------------
|
||||||
|
void PaletteConfDialog_t::palNotchChanged(int value)
|
||||||
|
{
|
||||||
|
if (fceuWrapperTryLock())
|
||||||
|
{
|
||||||
|
char stmp[64];
|
||||||
|
|
||||||
|
sprintf( stmp, "Notch: %3i%%", value );
|
||||||
|
notchFrame->setTitle( tr(stmp) );
|
||||||
|
|
||||||
|
palnotch = value;
|
||||||
|
palupdate = 1;
|
||||||
|
|
||||||
|
fceuWrapperUnLock();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//----------------------------------------------------
|
||||||
|
void PaletteConfDialog_t::palSaturationChanged(int value)
|
||||||
|
{
|
||||||
|
if (fceuWrapperTryLock())
|
||||||
|
{
|
||||||
|
char stmp[64];
|
||||||
|
|
||||||
|
sprintf( stmp, "Saturation: %3i%%", value );
|
||||||
|
saturationFrame->setTitle( tr(stmp) );
|
||||||
|
|
||||||
|
palsaturation = value;
|
||||||
|
palupdate = 1;
|
||||||
|
|
||||||
|
fceuWrapperUnLock();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//----------------------------------------------------
|
||||||
|
void PaletteConfDialog_t::palSharpnessChanged(int value)
|
||||||
|
{
|
||||||
|
if (fceuWrapperTryLock())
|
||||||
|
{
|
||||||
|
palsharpness = value;
|
||||||
|
palupdate = 1;
|
||||||
|
|
||||||
|
fceuWrapperUnLock();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//----------------------------------------------------
|
||||||
|
void PaletteConfDialog_t::palContrastChanged(int value)
|
||||||
|
{
|
||||||
|
if (fceuWrapperTryLock())
|
||||||
|
{
|
||||||
|
char stmp[64];
|
||||||
|
|
||||||
|
sprintf( stmp, "Contrast: %3i%%", value );
|
||||||
|
contrastFrame->setTitle( tr(stmp) );
|
||||||
|
|
||||||
|
palcontrast = value;
|
||||||
|
palupdate = 1;
|
||||||
|
|
||||||
|
fceuWrapperUnLock();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//----------------------------------------------------
|
||||||
|
void PaletteConfDialog_t::palBrightnessChanged(int value)
|
||||||
|
{
|
||||||
|
if (fceuWrapperTryLock())
|
||||||
|
{
|
||||||
|
char stmp[64];
|
||||||
|
|
||||||
|
sprintf( stmp, "Brightness: %3i%%", value );
|
||||||
|
brightnessFrame->setTitle( tr(stmp) );
|
||||||
|
|
||||||
|
palbrightness = value;
|
||||||
|
palupdate = 1;
|
||||||
|
|
||||||
|
fceuWrapperUnLock();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//----------------------------------------------------
|
||||||
|
|
|
@ -32,11 +32,23 @@ protected:
|
||||||
QCheckBox *useCustom;
|
QCheckBox *useCustom;
|
||||||
QCheckBox *GrayScale;
|
QCheckBox *GrayScale;
|
||||||
QCheckBox *deemphSwap;
|
QCheckBox *deemphSwap;
|
||||||
QCheckBox *useNTSC;
|
QPushButton *palReset;
|
||||||
QSlider *tintSlider;
|
QSlider *tintSlider;
|
||||||
QSlider *hueSlider;
|
QSlider *hueSlider;
|
||||||
|
QSlider *notchSlider;
|
||||||
|
QSlider *saturationSlider;
|
||||||
|
QSlider *sharpnessSlider;
|
||||||
|
QSlider *contrastSlider;
|
||||||
|
QSlider *brightnessSlider;
|
||||||
QGroupBox *tintFrame;
|
QGroupBox *tintFrame;
|
||||||
QGroupBox *hueFrame;
|
QGroupBox *hueFrame;
|
||||||
|
QGroupBox *ntscFrame;
|
||||||
|
QGroupBox *palFrame;
|
||||||
|
QGroupBox *notchFrame;
|
||||||
|
QGroupBox *saturationFrame;
|
||||||
|
QGroupBox *sharpnessFrame;
|
||||||
|
QGroupBox *contrastFrame;
|
||||||
|
QGroupBox *brightnessFrame;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
public slots:
|
public slots:
|
||||||
|
@ -46,8 +58,14 @@ private slots:
|
||||||
void tintChanged(int value);
|
void tintChanged(int value);
|
||||||
void openPaletteFile(void);
|
void openPaletteFile(void);
|
||||||
void clearPalette(void);
|
void clearPalette(void);
|
||||||
void use_NTSC_Changed(int v);
|
void use_NTSC_Changed(bool v);
|
||||||
void use_Custom_Changed(int v);
|
void use_Custom_Changed(int v);
|
||||||
void force_GrayScale_Changed(int v);
|
void force_GrayScale_Changed(int v);
|
||||||
void deemphswap_Changed(int v);
|
void deemphswap_Changed(int v);
|
||||||
|
void palResetClicked(void);
|
||||||
|
void palNotchChanged(int value);
|
||||||
|
void palSaturationChanged(int value);
|
||||||
|
void palSharpnessChanged(int value);
|
||||||
|
void palContrastChanged(int value);
|
||||||
|
void palBrightnessChanged(int value);
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue