Akihiro Sagawa : mciqtz32: Use dB unit when setting audio volume.
Alexandre Julliard
julliard at winehq.org
Thu Jul 14 08:58:04 CDT 2016
Module: wine
Branch: master
Commit: cab9db9d9565f53c81fa08eafab4eca2f8c40048
URL: http://source.winehq.org/git/wine.git/?a=commit;h=cab9db9d9565f53c81fa08eafab4eca2f8c40048
Author: Akihiro Sagawa <sagawa.aki at gmail.com>
Date: Sat Jul 9 17:50:52 2016 +0900
mciqtz32: Use dB unit when setting audio volume.
Signed-off-by: Akihiro Sagawa <sagawa.aki at gmail.com>
Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/mciqtz32/mciqtz.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/dlls/mciqtz32/mciqtz.c b/dlls/mciqtz32/mciqtz.c
index 4c9074b..54f3b78 100644
--- a/dlls/mciqtz32/mciqtz.c
+++ b/dlls/mciqtz32/mciqtz.c
@@ -19,6 +19,7 @@
*/
#include <stdarg.h>
+#include <math.h>
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
@@ -1070,7 +1071,7 @@ static DWORD MCIQTZ_mciSetAudio(UINT wDevID, DWORD dwFlags, LPMCI_DGV_SETAUDIO_P
switch (lpParms->dwItem) {
case MCI_DGV_SETAUDIO_VOLUME:
if (dwFlags & MCI_DGV_SETAUDIO_VALUE) {
- long vol = -10000;
+ long vol;
HRESULT hr;
if (lpParms->dwValue > 1000) {
ret = MCIERR_OUTOFRANGE;
@@ -1078,7 +1079,11 @@ static DWORD MCIQTZ_mciSetAudio(UINT wDevID, DWORD dwFlags, LPMCI_DGV_SETAUDIO_P
}
if (dwFlags & MCI_TEST)
break;
- vol += (long)lpParms->dwValue * 10;
+ if (lpParms->dwValue != 0)
+ vol = (long)(2000.0 * (log10(lpParms->dwValue) - 3.0));
+ else
+ vol = -10000;
+ TRACE("Setting volume to %ld\n", vol);
hr = IBasicAudio_put_Volume(wma->audio, vol);
if (FAILED(hr)) {
WARN("Cannot set volume (hr = %x)\n", hr);
More information about the wine-cvs
mailing list