dolphin/Source/Core/AudioCommon
EmptyChaos c1922783f8 Core: Threadsafety Synchronization Fixes (Frame Advance / FifoPlayer)
Fix Frame Advance and FifoPlayer pause/unpause/stop.

CPU::EnableStepping is not atomic but is called from multiple threads
which races and leaves the system in a random state; also instruction
stepping was unstable, m_StepEvent had an almost random value because
of the dual purpose it served which could cause races where CPU::Run
would SingleStep when it was supposed to be sleeping.

FifoPlayer never FinishStateMove()d which was causing it to deadlock.
Rather than partially reimplementing CPU::Run, just use CPUCoreBase
and then call CPU::Run(). More DRY and less likely to have weird bugs
specific to the player (i.e the previous freezing on pause/stop).

Refactor PowerPC::state into CPU since it manages the state of the
CPU Thread which is controlled by CPU, not PowerPC. This simplifies
the architecture somewhat and eliminates races that can be caused by
calling PowerPC state functions directly instead of using CPU's
(because they bypassed the EnableStepping lock).
2016-05-13 09:23:44 +10:00
..
AOSoundStream.cpp Common: Remove other Common prefixed headers from Common.h 2015-09-26 18:51:58 -04:00
AOSoundStream.h Set copyright year to when a file was created 2015-05-25 13:22:31 +02:00
AlsaSoundStream.cpp ALSA: Don't block on Clear() call. 2015-10-03 16:31:55 +13:00
AlsaSoundStream.h ALSA: Don't block on Clear() call. 2015-10-03 16:31:55 +13:00
AudioCommon.cpp Fix building with PCH disabled. 2015-09-28 11:51:08 -05:00
AudioCommon.h AudioCommon: Remove lock on Pause state 2015-05-28 19:58:18 +02:00
AudioCommon.vcxproj [windows] Update projects to vs2015. 2015-09-03 04:23:01 -07:00
AudioCommon.vcxproj.filters (Visual Studio) Categorize SoundStream.h with other SoundStream files 2015-04-03 14:37:03 -04:00
CMakeLists.txt CMakeLists cleanup and enable Android headless building. 2016-02-05 11:24:11 -06:00
CoreAudioSoundStream.cpp CoreAudioSound: Replace deprecated parameters 2016-02-06 16:48:03 -05:00
CoreAudioSoundStream.h Set copyright year to when a file was created 2015-05-25 13:22:31 +02:00
DPL2Decoder.cpp MathUtil: Convert Clamp into a constexpr function 2015-09-12 01:18:28 -04:00
DPL2Decoder.h Set copyright year to when a file was created 2015-05-25 13:22:31 +02:00
Mixer.cpp Core: Threadsafety Synchronization Fixes (Frame Advance / FifoPlayer) 2016-05-13 09:23:44 +10:00
Mixer.h Mixer: Convert defines into concrete variables 2016-01-15 23:41:53 -05:00
NullSoundStream.cpp NullSound: Use std::array for the buffer 2015-12-05 18:13:55 -05:00
NullSoundStream.h NullSound: Use std::array for the buffer 2015-12-05 18:13:55 -05:00
OpenALStream.cpp Updated SoundTouch library to 1.9.2 2015-12-28 23:08:55 +11:00
OpenALStream.h Added X-Fi check and convert surround FLOAT to SHORT when it is detected 2015-09-11 13:22:04 -03:00
OpenSLESStream.cpp [OpenSLES] Fix a delay in audio processing. 2016-01-03 11:33:38 -06:00
OpenSLESStream.h Set copyright year to when a file was created 2015-05-25 13:22:31 +02:00
PulseAudioStream.cpp Fix building with PCH disabled. 2015-09-28 11:51:08 -05:00
PulseAudioStream.h Remove unnecessary virtual keywords 2015-07-30 10:33:08 -04:00
SoundStream.h Common: Remove other Common prefixed headers from Common.h 2015-09-26 18:51:58 -04:00
WaveFile.cpp WaveFile: Get rid of an explicit delete 2015-12-02 20:05:18 -05:00
WaveFile.h WaveFile: Get rid of an explicit delete 2015-12-02 20:05:18 -05:00
XAudio2Stream.cpp Common: Remove other Common prefixed headers from Common.h 2015-09-26 18:51:58 -04:00
XAudio2Stream.h AudioCommon: Remove unused code from XAudio streams 2015-08-09 21:37:34 -04:00
XAudio2_7Stream.cpp Common: Remove other Common prefixed headers from Common.h 2015-09-26 18:51:58 -04:00
XAudio2_7Stream.h AudioCommon: Remove unused code from XAudio streams 2015-08-09 21:37:34 -04:00
aldlist.cpp Fix building with PCH disabled. 2015-09-28 11:51:08 -05:00
aldlist.h Add missing license headers 2015-05-25 13:11:47 +02:00