aboutsummaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorWohlstand <admin@wohlnet.ru>2025-03-25 12:38:12 +0300
committerWohlstand <admin@wohlnet.ru>2025-03-25 12:38:12 +0300
commit6c75c2fdd95d1aad14a99e0e28302d0ecb6b1a88 (patch)
tree9968681612869017ea095b4352206e44264bffc0 /utils
parent8c3423b30970165df60da71ee4a4c5a546dce3d2 (diff)
downloadlibADLMIDI-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.
Diffstat (limited to 'utils')
-rw-r--r--utils/winmm_drv/src/MidiSynth.cpp5
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;
}