mirror of https://github.com/mgba-emu/mgba.git
Qt: Fix setting audio and video sync without reloading the game
This commit is contained in:
parent
6fdb6b5b81
commit
77accbb7fe
|
@ -308,6 +308,8 @@ void GameController::setConfig(const mCoreConfig* config) {
|
|||
if (isLoaded()) {
|
||||
threadInterrupt();
|
||||
mCoreLoadForeignConfig(m_threadContext.core, config);
|
||||
m_audioSync = m_threadContext.sync.audioWait;
|
||||
m_videoSync = m_threadContext.sync.videoFrameWait;
|
||||
m_audioProcessor->setInput(&m_threadContext);
|
||||
threadContinue();
|
||||
}
|
||||
|
@ -1040,6 +1042,17 @@ void GameController::setSync(bool enable) {
|
|||
}
|
||||
m_sync = enable;
|
||||
}
|
||||
|
||||
void GameController::setAudioSync(bool enable) {
|
||||
m_audioSync = enable;
|
||||
m_threadContext.sync.audioWait = enable;
|
||||
}
|
||||
|
||||
void GameController::setVideoSync(bool enable) {
|
||||
m_videoSync = enable;
|
||||
m_threadContext.sync.videoFrameWait = enable;
|
||||
}
|
||||
|
||||
void GameController::setAVStream(mAVStream* stream) {
|
||||
threadInterrupt();
|
||||
m_stream = stream;
|
||||
|
|
|
@ -139,6 +139,8 @@ public slots:
|
|||
void setTurbo(bool, bool forced = true);
|
||||
void setTurboSpeed(float ratio);
|
||||
void setSync(bool);
|
||||
void setAudioSync(bool);
|
||||
void setVideoSync(bool);
|
||||
void setAVStream(mAVStream*);
|
||||
void clearAVStream();
|
||||
void reloadAudioDriver();
|
||||
|
|
|
@ -1147,14 +1147,14 @@ void Window::setupMenu(QMenuBar* menubar) {
|
|||
ConfigOption* videoSync = m_config->addOption("videoSync");
|
||||
videoSync->addBoolean(tr("Sync to &video"), emulationMenu);
|
||||
videoSync->connect([this](const QVariant& value) {
|
||||
reloadConfig();
|
||||
m_controller->setVideoSync(value.toBool());
|
||||
}, this);
|
||||
m_config->updateOption("videoSync");
|
||||
|
||||
ConfigOption* audioSync = m_config->addOption("audioSync");
|
||||
audioSync->addBoolean(tr("Sync to &audio"), emulationMenu);
|
||||
audioSync->connect([this](const QVariant& value) {
|
||||
reloadConfig();
|
||||
m_controller->setAudioSync(value.toBool());
|
||||
}, this);
|
||||
m_config->updateOption("audioSync");
|
||||
|
||||
|
|
Loading…
Reference in New Issue