diff options
author | Wohlstand <admin@wohlnet.ru> | 2025-03-25 12:38:12 +0300 |
---|---|---|
committer | Wohlstand <admin@wohlnet.ru> | 2025-03-25 12:38:12 +0300 |
commit | 6c75c2fdd95d1aad14a99e0e28302d0ecb6b1a88 (patch) | |
tree | 9968681612869017ea095b4352206e44264bffc0 | |
parent | 8c3423b30970165df60da71ee4a4c5a546dce3d2 (diff) | |
download | libADLMIDI-6c75c2fdd95d1aad14a99e0e28302d0ecb6b1a88.tar.gz libADLMIDI-6c75c2fdd95d1aad14a99e0e28302d0ecb6b1a88.tar.bz2 libADLMIDI-6c75c2fdd95d1aad14a99e0e28302d0ecb6b1a88.zip |
WinMM Experiment: Set high priority to render thread
This should help resolve the choppying problem on weaker machines in parallel with background activity.
-rw-r--r-- | utils/winmm_drv/src/MidiSynth.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/utils/winmm_drv/src/MidiSynth.cpp b/utils/winmm_drv/src/MidiSynth.cpp index 078d930..cef311f 100644 --- a/utils/winmm_drv/src/MidiSynth.cpp +++ b/utils/winmm_drv/src/MidiSynth.cpp @@ -286,8 +286,10 @@ public: int Start() { + HANDLE renderThread; getPosWraps = 0; prevPlayPos = 0; + for(UINT i = 0; i < chunks; i++) { if(waveOutWrite(hWaveOut, &WaveHdr[i], sizeof(WAVEHDR)) != MMSYSERR_NOERROR) @@ -297,7 +299,8 @@ public: } } - _beginthread(RenderingThread, 8192 * sizeSample, this); + renderThread = (HANDLE)_beginthread(RenderingThread, 8192 * sizeSample, this); + SetThreadPriority(renderThread, THREAD_PRIORITY_HIGHEST); return 0; } |