mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-12-16 04:09:39 +00:00
DSPEmulator: Extract UnpauseAndUnlock from PauseAndLock
Replace call to PauseAndLock(do_lock=false) with new function UnpauseAndUnlock.
This commit is contained in:
parent
933071dd57
commit
d5f079d78b
@ -798,7 +798,7 @@ static void RestoreStateAndUnlock(Core::System& system, const bool unpause_on_un
|
|||||||
if (!IsRunning(system))
|
if (!IsRunning(system))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
system.GetDSP().GetDSPEmulator()->PauseAndLock(false);
|
system.GetDSP().GetDSPEmulator()->UnpauseAndUnlock();
|
||||||
ResetRumble();
|
ResetRumble();
|
||||||
|
|
||||||
// CPU is unlocked last because CPU::RestoreStateAndUnlock contains the synchronization mechanism
|
// CPU is unlocked last because CPU::RestoreStateAndUnlock contains the synchronization mechanism
|
||||||
|
|||||||
@ -23,6 +23,7 @@ public:
|
|||||||
|
|
||||||
virtual void DoState(PointerWrap& p) = 0;
|
virtual void DoState(PointerWrap& p) = 0;
|
||||||
virtual void PauseAndLock(bool do_lock) = 0;
|
virtual void PauseAndLock(bool do_lock) = 0;
|
||||||
|
virtual void UnpauseAndUnlock() = 0;
|
||||||
|
|
||||||
virtual void DSP_WriteMailBoxHigh(bool cpu_mailbox, u16 value) = 0;
|
virtual void DSP_WriteMailBoxHigh(bool cpu_mailbox, u16 value) = 0;
|
||||||
virtual void DSP_WriteMailBoxLow(bool cpu_mailbox, u16 value) = 0;
|
virtual void DSP_WriteMailBoxLow(bool cpu_mailbox, u16 value) = 0;
|
||||||
|
|||||||
@ -245,4 +245,8 @@ u16 DSPHLE::DSP_ReadControlRegister()
|
|||||||
void DSPHLE::PauseAndLock(bool do_lock)
|
void DSPHLE::PauseAndLock(bool do_lock)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DSPHLE::UnpauseAndUnlock()
|
||||||
|
{
|
||||||
|
}
|
||||||
} // namespace DSP::HLE
|
} // namespace DSP::HLE
|
||||||
|
|||||||
@ -35,6 +35,7 @@ public:
|
|||||||
bool IsLLE() const override { return false; }
|
bool IsLLE() const override { return false; }
|
||||||
void DoState(PointerWrap& p) override;
|
void DoState(PointerWrap& p) override;
|
||||||
void PauseAndLock(bool do_lock) override;
|
void PauseAndLock(bool do_lock) override;
|
||||||
|
void UnpauseAndUnlock() override;
|
||||||
|
|
||||||
void DSP_WriteMailBoxHigh(bool cpu_mailbox, u16 value) override;
|
void DSP_WriteMailBoxHigh(bool cpu_mailbox, u16 value) override;
|
||||||
void DSP_WriteMailBoxLow(bool cpu_mailbox, u16 value) override;
|
void DSP_WriteMailBoxLow(bool cpu_mailbox, u16 value) override;
|
||||||
|
|||||||
@ -305,4 +305,16 @@ void DSPLLE::PauseAndLock(bool do_lock)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DSPLLE::UnpauseAndUnlock()
|
||||||
|
{
|
||||||
|
m_dsp_thread_mutex.unlock();
|
||||||
|
|
||||||
|
if (m_is_dsp_on_thread)
|
||||||
|
{
|
||||||
|
// Signal the DSP thread so it can perform any outstanding work now (if any)
|
||||||
|
m_ppc_event.Wait();
|
||||||
|
m_dsp_event.Set();
|
||||||
|
}
|
||||||
|
}
|
||||||
} // namespace DSP::LLE
|
} // namespace DSP::LLE
|
||||||
|
|||||||
@ -27,6 +27,7 @@ public:
|
|||||||
bool IsLLE() const override { return true; }
|
bool IsLLE() const override { return true; }
|
||||||
void DoState(PointerWrap& p) override;
|
void DoState(PointerWrap& p) override;
|
||||||
void PauseAndLock(bool do_lock) override;
|
void PauseAndLock(bool do_lock) override;
|
||||||
|
void UnpauseAndUnlock() override;
|
||||||
|
|
||||||
void DSP_WriteMailBoxHigh(bool cpu_mailbox, u16 value) override;
|
void DSP_WriteMailBoxHigh(bool cpu_mailbox, u16 value) override;
|
||||||
void DSP_WriteMailBoxLow(bool cpu_mailbox, u16 value) override;
|
void DSP_WriteMailBoxLow(bool cpu_mailbox, u16 value) override;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user