diff options
| author | Volker RĂ¼melin <vr_qemu@t-online.de> | 2021-01-10 11:02:36 +0100 |
|---|---|---|
| committer | Gerd Hoffmann <kraxel@redhat.com> | 2021-01-15 11:25:22 +0100 |
| commit | 401dcf0540a1b26e88bf04da2dac583078ad7da6 (patch) | |
| tree | 1d2cf79b0c5b8b750b001083990e283920851d15 /util/qemu-timer-common.c | |
| parent | d9a8b27a7e9b6467ff1709ae8a44d816d90c4d71 (diff) | |
| download | focaccia-qemu-401dcf0540a1b26e88bf04da2dac583078ad7da6.tar.gz focaccia-qemu-401dcf0540a1b26e88bf04da2dac583078ad7da6.zip | |
dsoundaudio: replace GetForegroundWindow()
GetForegroundWindow() doesn't necessarily return the own window handle. It just returns a handle to the currently active window and can even return NULL. At the time dsound_open() gets called the active window is most likely the shell window and not the QEMU window. Replace GetForegroundWindow() with GetDesktopWindow() which always returns a valid window handle, and at the same time replace the DirectSound buffer flag DSBCAPS_STICKYFOCUS with DSBCAPS_GLOBALFOCUS where Windows only expects a valid window handle for DirectSound function SetCooperativeLevel(). The Microsoft online docs for IDirectSound::SetCooperativeLevel recommend this in the remarks. This fixes a bug where you can't hear sound from the guest. To reproduce start qemu with -machine pcspk-audiodev=audio0 -device intel-hda -device hda-duplex,audiodev=audio0 -audiodev dsound,id=audio0,out.mixing-engine=off from a shell and start audio playback with the hda device in the guest. The guest will be silent. To hear guest audio you have to activate the shell window once. Signed-off-by: Volker RĂ¼melin <vr_qemu@t-online.de> Message-id: 9315afe5-5958-c0b4-ea1e-14769511a9d5@t-online.de Message-Id: <20210110100239.27588-20-vr_qemu@t-online.de> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'util/qemu-timer-common.c')
0 files changed, 0 insertions, 0 deletions