Added sound use global focus option to Qt GUI.

This commit is contained in:
mjbudd77 2021-08-06 00:14:37 -04:00
parent f925e82d85
commit 728a7c3580
5 changed files with 40 additions and 4 deletions

View File

@ -23,6 +23,7 @@
#include "../../fceu.h"
#include "../../driver.h"
#include "Qt/ConsoleWindow.h"
#include "Qt/ConsoleSoundConf.h"
#include "Qt/main.h"
#include "Qt/dface.h"
@ -130,6 +131,15 @@ ConsoleSndConfDialog_t::ConsoleSndConfDialog_t(QWidget *parent)
connect(bufSizeSlider, SIGNAL(valueChanged(int)), this, SLOT(bufSizeChanged(int)));
// Use Global Focus
useGlobalFocus = new QCheckBox(tr("Use Global Focus"));
useGlobalFocus->setToolTip( tr("Mute sound when window is not in focus") );
vbox1->addWidget(useGlobalFocus);
setCheckBoxFromProperty(useGlobalFocus, "SDL.Sound.UseGlobalFocus");
connect(useGlobalFocus, SIGNAL(stateChanged(int)), this, SLOT(useGlobalFocusChanged(int)));
// Swap Duty Cycles
swapDutyChkbox = new QCheckBox(tr("Swap Duty Cycles"));
vbox1->addWidget(swapDutyChkbox);
@ -499,6 +509,20 @@ void ConsoleSndConfDialog_t::enaSoundLowPassChange(int value)
g_config->save();
}
//----------------------------------------------------
void ConsoleSndConfDialog_t::useGlobalFocusChanged(int value)
{
bool bval = value != Qt::Unchecked;
//printf("SDL.Sound.UseGlobalFocus = %i\n", bval);
g_config->setOption("SDL.Sound.UseGlobalFocus", bval);
g_config->save();
if ( consoleWindow )
{
consoleWindow->setSoundUseGlobalFocus(bval);
}
}
//----------------------------------------------------
void ConsoleSndConfDialog_t::swapDutyCallback(int value)
{
if (value)

View File

@ -31,6 +31,7 @@ protected:
QCheckBox *enaChkbox;
QCheckBox *enaLowPass;
QCheckBox *swapDutyChkbox;
QCheckBox *useGlobalFocus;
QComboBox *qualitySelect;
QComboBox *rateSelect;
QSlider *bufSizeSlider;
@ -62,6 +63,7 @@ private slots:
void enaSoundStateChange(int value);
void enaSoundLowPassChange(int value);
void swapDutyCallback(int value);
void useGlobalFocusChanged(int value);
void soundQualityChanged(int index);
void soundRateChanged(int index);
};

View File

@ -124,7 +124,7 @@ consoleWin_t::consoleWin_t(QWidget *parent)
g_config->getOption( "SDL.PauseOnMainMenuAccess", &mainMenuPauseWhenActv );
g_config->getOption( "SDL.ContextMenuEnable", &contextMenuEnable );
g_config->getOption( "SDL.Sound.MuteOnDefocus", &muteSoundOnDefocus );
g_config->getOption( "SDL.Sound.UseGlobalFocus", &soundUseGlobalFocus );
g_config->getOption ("SDL.VideoDriver", &use_SDL_video);
if ( use_SDL_video )
@ -390,13 +390,15 @@ void consoleWin_t::winActiveChanged(void)
w = this->window();
//printf("Active Changed\n");
if ( w != NULL)
{
QWindow *hdl = w->windowHandle();
if (hdl != NULL)
{
if ( muteSoundOnDefocus )
if ( !soundUseGlobalFocus )
{
fceuWrapperLock();
if ( hdl->isActive() )
@ -543,6 +545,13 @@ void consoleWin_t::setContextMenuEnable( bool enable )
contextMenuEnable = enable;
}
void consoleWin_t::setSoundUseGlobalFocus( bool enable )
{
soundUseGlobalFocus = enable;
winActiveChanged();
}
void consoleWin_t::loadCursor(void)
{
int cursorVis;

View File

@ -170,6 +170,7 @@ class consoleWin_t : public QMainWindow
void setMenuAccessPauseEnable(bool enable);
void setContextMenuEnable(bool enable);
void setSoundUseGlobalFocus(bool enable);
protected:
consoleMenuBar *menubar;
@ -254,7 +255,7 @@ class consoleWin_t : public QMainWindow
bool mainMenuPauseWhenActv;
bool scrHandlerConnected;
bool contextMenuEnable;
bool muteSoundOnDefocus;
bool soundUseGlobalFocus;
std::list <std::string*> romList;
std::vector <autoFireMenuAction*> afActList;

View File

@ -486,7 +486,7 @@ InitConfig()
config->addOption("soundrecord", "SDL.Sound.RecordFile", "");
config->addOption("soundbufsize", "SDL.Sound.BufSize", 128);
config->addOption("lowpass", "SDL.Sound.LowPass", 0);
config->addOption("SDL.Sound.MuteOnDefocus", 0);
config->addOption("SDL.Sound.UseGlobalFocus", 1);
config->addOption('g', "gamegenie", "SDL.GameGenie", 0);
config->addOption("pal", "SDL.PAL", 0);