Added mutex sync when changing sound properties of the emulator.
This commit is contained in:
parent
ac43cc3e62
commit
70a00fab13
|
@ -262,8 +262,10 @@ void ConsoleSndConfDialog_t::bufSizeChanged(int value)
|
|||
|
||||
g_config->setOption ("SDL.Sound.BufSize", value);
|
||||
// reset sound subsystem for changes to take effect
|
||||
fceuWrapperLock();
|
||||
KillSound ();
|
||||
InitSound ();
|
||||
fceuWrapperUnLock();
|
||||
}
|
||||
//----------------------------------------------------
|
||||
void ConsoleSndConfDialog_t::volumeChanged(int value)
|
||||
|
@ -275,7 +277,10 @@ void ConsoleSndConfDialog_t::volumeChanged(int value)
|
|||
volLbl->setText(stmp);
|
||||
|
||||
g_config->setOption ("SDL.Sound.Volume", value);
|
||||
|
||||
fceuWrapperLock();
|
||||
FCEUI_SetSoundVolume (value);
|
||||
fceuWrapperUnLock();
|
||||
}
|
||||
//----------------------------------------------------
|
||||
void ConsoleSndConfDialog_t::triangleChanged(int value)
|
||||
|
@ -287,7 +292,10 @@ void ConsoleSndConfDialog_t::triangleChanged(int value)
|
|||
triLbl->setText(stmp);
|
||||
|
||||
g_config->setOption ("SDL.Sound.TriangleVolume", value);
|
||||
|
||||
fceuWrapperLock();
|
||||
FCEUI_SetTriangleVolume (value);
|
||||
fceuWrapperUnLock();
|
||||
}
|
||||
//----------------------------------------------------
|
||||
void ConsoleSndConfDialog_t::square1Changed(int value)
|
||||
|
@ -299,7 +307,10 @@ void ConsoleSndConfDialog_t::square1Changed(int value)
|
|||
sqr1Lbl->setText(stmp);
|
||||
|
||||
g_config->setOption ("SDL.Sound.Square1Volume", value);
|
||||
|
||||
fceuWrapperLock();
|
||||
FCEUI_SetSquare1Volume (value);
|
||||
fceuWrapperUnLock();
|
||||
}
|
||||
//----------------------------------------------------
|
||||
void ConsoleSndConfDialog_t::square2Changed(int value)
|
||||
|
@ -311,7 +322,10 @@ void ConsoleSndConfDialog_t::square2Changed(int value)
|
|||
sqr2Lbl->setText(stmp);
|
||||
|
||||
g_config->setOption ("SDL.Sound.Square2Volume", value);
|
||||
|
||||
fceuWrapperLock();
|
||||
FCEUI_SetSquare2Volume (value);
|
||||
fceuWrapperUnLock();
|
||||
}
|
||||
//----------------------------------------------------
|
||||
void ConsoleSndConfDialog_t::noiseChanged(int value)
|
||||
|
@ -323,7 +337,10 @@ void ConsoleSndConfDialog_t::noiseChanged(int value)
|
|||
nseLbl->setText(stmp);
|
||||
|
||||
g_config->setOption ("SDL.Sound.NoiseVolume", value);
|
||||
|
||||
fceuWrapperLock();
|
||||
FCEUI_SetNoiseVolume (value);
|
||||
fceuWrapperUnLock();
|
||||
}
|
||||
//----------------------------------------------------
|
||||
void ConsoleSndConfDialog_t::pcmChanged(int value)
|
||||
|
@ -335,7 +352,10 @@ void ConsoleSndConfDialog_t::pcmChanged(int value)
|
|||
pcmLbl->setText(stmp);
|
||||
|
||||
g_config->setOption ("SDL.Sound.PCMVolume", value);
|
||||
|
||||
fceuWrapperLock();
|
||||
FCEUI_SetPCMVolume (value);
|
||||
fceuWrapperUnLock();
|
||||
}
|
||||
//----------------------------------------------------
|
||||
void ConsoleSndConfDialog_t::enaSoundStateChange(int value)
|
||||
|
@ -345,15 +365,22 @@ void ConsoleSndConfDialog_t::enaSoundStateChange(int value)
|
|||
int last_soundopt;
|
||||
g_config->getOption ("SDL.Sound", &last_soundopt);
|
||||
g_config->setOption ("SDL.Sound", 1);
|
||||
|
||||
fceuWrapperLock();
|
||||
|
||||
if (GameInfo && !last_soundopt)
|
||||
{
|
||||
InitSound ();
|
||||
}
|
||||
fceuWrapperUnLock();
|
||||
}
|
||||
else
|
||||
{
|
||||
g_config->setOption ("SDL.Sound", 0);
|
||||
|
||||
fceuWrapperLock();
|
||||
KillSound ();
|
||||
fceuWrapperUnLock();
|
||||
}
|
||||
}
|
||||
//----------------------------------------------------
|
||||
|
@ -362,12 +389,18 @@ void ConsoleSndConfDialog_t::enaSoundLowPassChange(int value)
|
|||
if (value)
|
||||
{
|
||||
g_config->setOption ("SDL.Sound.LowPass", 1);
|
||||
|
||||
fceuWrapperLock();
|
||||
FCEUI_SetLowPass (1);
|
||||
fceuWrapperUnLock();
|
||||
}
|
||||
else
|
||||
{
|
||||
g_config->setOption ("SDL.Sound.LowPass", 0);
|
||||
|
||||
fceuWrapperLock();
|
||||
FCEUI_SetLowPass (0);
|
||||
fceuWrapperUnLock();
|
||||
}
|
||||
g_config->save ();
|
||||
}
|
||||
|
@ -394,8 +427,10 @@ void ConsoleSndConfDialog_t::soundQualityChanged(int index)
|
|||
g_config->setOption ("SDL.Sound.Quality", qualitySelect->itemData(index).toInt() );
|
||||
|
||||
// reset sound subsystem for changes to take effect
|
||||
fceuWrapperLock();
|
||||
KillSound ();
|
||||
InitSound ();
|
||||
fceuWrapperUnLock();
|
||||
g_config->save ();
|
||||
}
|
||||
//----------------------------------------------------
|
||||
|
@ -405,8 +440,10 @@ void ConsoleSndConfDialog_t::soundRateChanged(int index)
|
|||
|
||||
g_config->setOption ("SDL.Sound.Rate", rateSelect->itemData(index).toInt() );
|
||||
// reset sound subsystem for changes to take effect
|
||||
fceuWrapperLock();
|
||||
KillSound ();
|
||||
InitSound ();
|
||||
fceuWrapperUnLock();
|
||||
g_config->save ();
|
||||
}
|
||||
//----------------------------------------------------
|
||||
|
|
Loading…
Reference in New Issue