QT: Fix volume adjustment for APU

Volume adjustments for the apu channel has a range of 0-256. With a value of 256, this acts as a bypass (toggle) and skips the computation entirely when set. This fixes issues when the original signal is too low already that passing it through volume controls will attunuate the signal instead and silence it.

The main volume does not behave the same way and 256 is not a toggle, so left it as-is.

@thor2016 feel free to make it better if necessary, maybe a toggle instead of a 256 max value or something.
This commit is contained in:
negativeExponent 2024-02-09 10:19:47 +08:00 committed by GitHub
parent 8ebb560d1c
commit 8d0fe851bf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 10 additions and 10 deletions

View File

@ -189,10 +189,10 @@ ConsoleSndConfDialog_t::ConsoleSndConfDialog_t(QWidget *parent)
frame = new QGroupBox(tr("Triangle")); frame = new QGroupBox(tr("Triangle"));
vbox2 = new QVBoxLayout(); vbox2 = new QVBoxLayout();
triLbl = new QLabel("255"); triLbl = new QLabel("256");
vslider = new QSlider(Qt::Vertical); vslider = new QSlider(Qt::Vertical);
vslider->setMinimum(0); vslider->setMinimum(0);
vslider->setMaximum(255); vslider->setMaximum(256);
setSliderFromProperty(vslider, triLbl, "SDL.Sound.TriangleVolume"); setSliderFromProperty(vslider, triLbl, "SDL.Sound.TriangleVolume");
vbox2->addWidget(triLbl); vbox2->addWidget(triLbl);
@ -204,10 +204,10 @@ ConsoleSndConfDialog_t::ConsoleSndConfDialog_t(QWidget *parent)
frame = new QGroupBox(tr("Square1")); frame = new QGroupBox(tr("Square1"));
vbox2 = new QVBoxLayout(); vbox2 = new QVBoxLayout();
sqr1Lbl = new QLabel("255"); sqr1Lbl = new QLabel("256");
vslider = new QSlider(Qt::Vertical); vslider = new QSlider(Qt::Vertical);
vslider->setMinimum(0); vslider->setMinimum(0);
vslider->setMaximum(255); vslider->setMaximum(256);
setSliderFromProperty(vslider, sqr1Lbl, "SDL.Sound.Square1Volume"); setSliderFromProperty(vslider, sqr1Lbl, "SDL.Sound.Square1Volume");
vbox2->addWidget(sqr1Lbl); vbox2->addWidget(sqr1Lbl);
@ -219,10 +219,10 @@ ConsoleSndConfDialog_t::ConsoleSndConfDialog_t(QWidget *parent)
frame = new QGroupBox(tr("Square2")); frame = new QGroupBox(tr("Square2"));
vbox2 = new QVBoxLayout(); vbox2 = new QVBoxLayout();
sqr2Lbl = new QLabel("255"); sqr2Lbl = new QLabel("256");
sqr2Slider = new QSlider(Qt::Vertical); sqr2Slider = new QSlider(Qt::Vertical);
sqr2Slider->setMinimum(0); sqr2Slider->setMinimum(0);
sqr2Slider->setMaximum(255); sqr2Slider->setMaximum(256);
setSliderFromProperty(sqr2Slider, sqr2Lbl, "SDL.Sound.Square2Volume"); setSliderFromProperty(sqr2Slider, sqr2Lbl, "SDL.Sound.Square2Volume");
vbox2->addWidget(sqr2Lbl); vbox2->addWidget(sqr2Lbl);
@ -234,10 +234,10 @@ ConsoleSndConfDialog_t::ConsoleSndConfDialog_t(QWidget *parent)
frame = new QGroupBox(tr("Noise")); frame = new QGroupBox(tr("Noise"));
vbox2 = new QVBoxLayout(); vbox2 = new QVBoxLayout();
nseLbl = new QLabel("255"); nseLbl = new QLabel("256");
nseSlider = new QSlider(Qt::Vertical); nseSlider = new QSlider(Qt::Vertical);
nseSlider->setMinimum(0); nseSlider->setMinimum(0);
nseSlider->setMaximum(255); nseSlider->setMaximum(256);
setSliderFromProperty(nseSlider, nseLbl, "SDL.Sound.NoiseVolume"); setSliderFromProperty(nseSlider, nseLbl, "SDL.Sound.NoiseVolume");
vbox2->addWidget(nseLbl); vbox2->addWidget(nseLbl);
@ -249,10 +249,10 @@ ConsoleSndConfDialog_t::ConsoleSndConfDialog_t(QWidget *parent)
frame = new QGroupBox(tr("PCM")); frame = new QGroupBox(tr("PCM"));
vbox2 = new QVBoxLayout(); vbox2 = new QVBoxLayout();
pcmLbl = new QLabel("255"); pcmLbl = new QLabel("256");
pcmSlider = new QSlider(Qt::Vertical); pcmSlider = new QSlider(Qt::Vertical);
pcmSlider->setMinimum(0); pcmSlider->setMinimum(0);
pcmSlider->setMaximum(255); pcmSlider->setMaximum(256);
setSliderFromProperty(pcmSlider, pcmLbl, "SDL.Sound.PCMVolume"); setSliderFromProperty(pcmSlider, pcmLbl, "SDL.Sound.PCMVolume");
vbox2->addWidget(pcmLbl); vbox2->addWidget(pcmLbl);