From eab42cde1088d0dd20e895bdc38c7a1ae8472f31 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sun, 15 Feb 2015 14:53:01 +0100 Subject: [PATCH] Added patches to improve stubs for AEV_{Get,Set}MasterVolumeLevel and AEV_{Get,Set}Mute. --- README.md | 4 +- debian/changelog | 2 + .../mmdevapi-AEV_GetVolumeRange/definition | 1 - ...vapi-Improve-AEV_GetVolumeRange-stub.patch | 0 ...-AEV_SetMasterVolumeLevel-and-AEV_Ge.patch | 70 +++++++++++++++++++ ...ve-AEV_SetMute-and-AEV_GetMute-stubs.patch | 66 +++++++++++++++++ patches/mmdevapi-AEV_Stubs/definition | 3 + patches/patchinstall.sh | 16 +++-- 8 files changed, 154 insertions(+), 8 deletions(-) delete mode 100644 patches/mmdevapi-AEV_GetVolumeRange/definition rename patches/{mmdevapi-AEV_GetVolumeRange => mmdevapi-AEV_Stubs}/0001-mmdevapi-Improve-AEV_GetVolumeRange-stub.patch (100%) create mode 100644 patches/mmdevapi-AEV_Stubs/0002-mmdevapi-Improve-AEV_SetMasterVolumeLevel-and-AEV_Ge.patch create mode 100644 patches/mmdevapi-AEV_Stubs/0003-mmdevapi-Improve-AEV_SetMute-and-AEV_GetMute-stubs.patch create mode 100644 patches/mmdevapi-AEV_Stubs/definition diff --git a/README.md b/README.md index 74b76f3d..5f0917b7 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ Wine. All those differences are also documented on the Included bug fixes and improvements =================================== -**Bugfixes and features included in the next upcoming release [9]:** +**Bugfixes and features included in the next upcoming release [11]:** * Add stub for ntoskrnl.ExAcquireResourceExclusiveLite * Add stub for ntoskrnl.ExDeleteResourceLite @@ -49,6 +49,8 @@ Included bug fixes and improvements * Do not access stack below ESP when restoring thread context. * Implement D3DXGetShaderOutputSemantics * Implement IApplicationAssociationRegistration::QueryCurrentDefault. ([Wine Bug #34654](https://bugs.winehq.org/show_bug.cgi?id=34654)) +* Improve stubs for AEV_{Get,Set}MasterVolumeLevel +* Improve stubs for AEV_{Get,Set}Mute **Bugs fixed in Wine Staging 1.7.36 [167]:** diff --git a/debian/changelog b/debian/changelog index abb410e1..876c94b7 100644 --- a/debian/changelog +++ b/debian/changelog @@ -11,6 +11,8 @@ wine-staging (1.7.37) UNRELEASED; urgency=low * Added patch to add stub for ntoskrnl.ExDeleteResourceLite. * Added patch to avoid accessing stack below ESP when restoring thread context. * Added patch to implement IApplicationAssociationRegistration::QueryCurrentDefault. + * Added patch to improve stubs for AEV_{Get,Set}MasterVolumeLevel. + * Added patch to improve stubs for AEV_{Get,Set}Mute. * Removed patches for UTF7 support (accepted upstream). * Removed patches for SIO_ADDRESS_LIST_CHANGE ioctl (accepted upstream). -- Sebastian Lackner Sun, 08 Feb 2015 20:29:38 +0100 diff --git a/patches/mmdevapi-AEV_GetVolumeRange/definition b/patches/mmdevapi-AEV_GetVolumeRange/definition deleted file mode 100644 index 2996d5d8..00000000 --- a/patches/mmdevapi-AEV_GetVolumeRange/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: [35658] Improve stub for AEV_GetVolumeRange diff --git a/patches/mmdevapi-AEV_GetVolumeRange/0001-mmdevapi-Improve-AEV_GetVolumeRange-stub.patch b/patches/mmdevapi-AEV_Stubs/0001-mmdevapi-Improve-AEV_GetVolumeRange-stub.patch similarity index 100% rename from patches/mmdevapi-AEV_GetVolumeRange/0001-mmdevapi-Improve-AEV_GetVolumeRange-stub.patch rename to patches/mmdevapi-AEV_Stubs/0001-mmdevapi-Improve-AEV_GetVolumeRange-stub.patch diff --git a/patches/mmdevapi-AEV_Stubs/0002-mmdevapi-Improve-AEV_SetMasterVolumeLevel-and-AEV_Ge.patch b/patches/mmdevapi-AEV_Stubs/0002-mmdevapi-Improve-AEV_SetMasterVolumeLevel-and-AEV_Ge.patch new file mode 100644 index 00000000..f20cd008 --- /dev/null +++ b/patches/mmdevapi-AEV_Stubs/0002-mmdevapi-Improve-AEV_SetMasterVolumeLevel-and-AEV_Ge.patch @@ -0,0 +1,70 @@ +From 6e92d3988f6678c45e8752000170f07d186d9c9e Mon Sep 17 00:00:00 2001 +From: Christian Costa +Date: Sun, 8 Feb 2015 11:38:17 +0100 +Subject: mmdevapi: Improve AEV_SetMasterVolumeLevel and + AEV_GetMasterVolumeLevel stubs. + +--- + dlls/mmdevapi/audiovolume.c | 23 +++++++++++++++++------ + 1 file changed, 17 insertions(+), 6 deletions(-) + +diff --git a/dlls/mmdevapi/audiovolume.c b/dlls/mmdevapi/audiovolume.c +index 4cc3226..4765935 100644 +--- a/dlls/mmdevapi/audiovolume.c ++++ b/dlls/mmdevapi/audiovolume.c +@@ -47,6 +47,7 @@ static const IAudioEndpointVolumeExVtbl AEVImpl_Vtbl; + typedef struct AEVImpl { + IAudioEndpointVolumeEx IAudioEndpointVolumeEx_iface; + LONG ref; ++ float level; + } AEVImpl; + + static inline AEVImpl *impl_from_IAudioEndpointVolumeEx(IAudioEndpointVolumeEx *iface) +@@ -63,6 +64,7 @@ HRESULT AudioEndpointVolume_Create(MMDevice *parent, IAudioEndpointVolume **ppv) + return E_OUTOFMEMORY; + This->IAudioEndpointVolumeEx_iface.lpVtbl = &AEVImpl_Vtbl; + This->ref = 1; ++ This->level = 1.0f; + return S_OK; + } + +@@ -136,9 +138,13 @@ static HRESULT WINAPI AEV_GetChannelCount(IAudioEndpointVolumeEx *iface, UINT *c + + static HRESULT WINAPI AEV_SetMasterVolumeLevel(IAudioEndpointVolumeEx *iface, float leveldb, const GUID *ctx) + { +- TRACE("(%p)->(%f,%s)\n", iface, leveldb, debugstr_guid(ctx)); +- FIXME("stub\n"); +- return E_NOTIMPL; ++ AEVImpl *This = impl_from_IAudioEndpointVolumeEx(iface); ++ ++ FIXME("(%p)->(%f,%s): stub\n", iface, leveldb, debugstr_guid(ctx)); ++ ++ This->level = leveldb; ++ ++ return S_OK; + } + + static HRESULT WINAPI AEV_SetMasterVolumeLevelScalar(IAudioEndpointVolumeEx *iface, float level, const GUID *ctx) +@@ -150,11 +156,16 @@ static HRESULT WINAPI AEV_SetMasterVolumeLevelScalar(IAudioEndpointVolumeEx *ifa + + static HRESULT WINAPI AEV_GetMasterVolumeLevel(IAudioEndpointVolumeEx *iface, float *leveldb) + { +- TRACE("(%p)->(%p)\n", iface, leveldb); ++ AEVImpl *This = impl_from_IAudioEndpointVolumeEx(iface); ++ ++ FIXME("(%p)->(%p): stub\n", iface, leveldb); ++ + if (!leveldb) + return E_POINTER; +- FIXME("stub\n"); +- return E_NOTIMPL; ++ ++ *leveldb = This->level; ++ ++ return S_OK; + } + + static HRESULT WINAPI AEV_GetMasterVolumeLevelScalar(IAudioEndpointVolumeEx *iface, float *level) +-- +2.3.0 + diff --git a/patches/mmdevapi-AEV_Stubs/0003-mmdevapi-Improve-AEV_SetMute-and-AEV_GetMute-stubs.patch b/patches/mmdevapi-AEV_Stubs/0003-mmdevapi-Improve-AEV_SetMute-and-AEV_GetMute-stubs.patch new file mode 100644 index 00000000..1823024d --- /dev/null +++ b/patches/mmdevapi-AEV_Stubs/0003-mmdevapi-Improve-AEV_SetMute-and-AEV_GetMute-stubs.patch @@ -0,0 +1,66 @@ +From ccdb37883bd0ceeaad872dcd90e0b17d6dc7fd85 Mon Sep 17 00:00:00 2001 +From: Christian Costa +Date: Tue, 10 Feb 2015 20:12:12 +0100 +Subject: mmdevapi: Improve AEV_SetMute and AEV_GetMute stubs. + +--- + dlls/mmdevapi/audiovolume.c | 23 +++++++++++++++++------ + 1 file changed, 17 insertions(+), 6 deletions(-) + +diff --git a/dlls/mmdevapi/audiovolume.c b/dlls/mmdevapi/audiovolume.c +index 4765935..c7d7ebe 100644 +--- a/dlls/mmdevapi/audiovolume.c ++++ b/dlls/mmdevapi/audiovolume.c +@@ -48,6 +48,7 @@ typedef struct AEVImpl { + IAudioEndpointVolumeEx IAudioEndpointVolumeEx_iface; + LONG ref; + float level; ++ BOOL mute; + } AEVImpl; + + static inline AEVImpl *impl_from_IAudioEndpointVolumeEx(IAudioEndpointVolumeEx *iface) +@@ -65,6 +66,7 @@ HRESULT AudioEndpointVolume_Create(MMDevice *parent, IAudioEndpointVolume **ppv) + This->IAudioEndpointVolumeEx_iface.lpVtbl = &AEVImpl_Vtbl; + This->ref = 1; + This->level = 1.0f; ++ This->mute = FALSE; + return S_OK; + } + +@@ -211,18 +213,27 @@ static HRESULT WINAPI AEV_GetChannelVolumeLevelScalar(IAudioEndpointVolumeEx *if + + static HRESULT WINAPI AEV_SetMute(IAudioEndpointVolumeEx *iface, BOOL mute, const GUID *ctx) + { +- TRACE("(%p)->(%u,%s)\n", iface, mute, debugstr_guid(ctx)); +- FIXME("stub\n"); +- return E_NOTIMPL; ++ AEVImpl *This = impl_from_IAudioEndpointVolumeEx(iface); ++ ++ FIXME("(%p)->(%u,%s): stub\n", iface, mute, debugstr_guid(ctx)); ++ ++ This->mute = mute; ++ ++ return S_OK; + } + + static HRESULT WINAPI AEV_GetMute(IAudioEndpointVolumeEx *iface, BOOL *mute) + { +- TRACE("(%p)->(%p)\n", iface, mute); ++ AEVImpl *This = impl_from_IAudioEndpointVolumeEx(iface); ++ ++ FIXME("(%p)->(%p): stub\n", iface, mute); ++ + if (!mute) + return E_POINTER; +- FIXME("stub\n"); +- return E_NOTIMPL; ++ ++ *mute = This->mute; ++ ++ return S_OK; + } + + static HRESULT WINAPI AEV_GetVolumeStepInfo(IAudioEndpointVolumeEx *iface, UINT *stepsize, UINT *stepcount) +-- +2.3.0 + diff --git a/patches/mmdevapi-AEV_Stubs/definition b/patches/mmdevapi-AEV_Stubs/definition new file mode 100644 index 00000000..7c2c2a08 --- /dev/null +++ b/patches/mmdevapi-AEV_Stubs/definition @@ -0,0 +1,3 @@ +Fixes: [35658] Improve stub for AEV_GetVolumeRange +Fixes: Improve stubs for AEV_{Get,Set}MasterVolumeLevel +Fixes: Improve stubs for AEV_{Get,Set}Mute diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 135b75c4..f88396e6 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -108,7 +108,7 @@ patch_enable_all () enable_kernel32_VerifyVersionInfo="$1" enable_libs_Unicode_Collation="$1" enable_makedep_PARENTSPEC="$1" - enable_mmdevapi_AEV_GetVolumeRange="$1" + enable_mmdevapi_AEV_Stubs="$1" enable_msvcp90_basic_string_wchar_dtor="$1" enable_msvcrt_atof_strtod="$1" enable_msvfw32_Image_Size="$1" @@ -353,8 +353,8 @@ patch_enable () makedep-PARENTSPEC) enable_makedep_PARENTSPEC="$2" ;; - mmdevapi-AEV_GetVolumeRange) - enable_mmdevapi_AEV_GetVolumeRange="$2" + mmdevapi-AEV_Stubs) + enable_mmdevapi_AEV_Stubs="$2" ;; msvcp90-basic_string_wchar_dtor) enable_msvcp90_basic_string_wchar_dtor="$2" @@ -1869,7 +1869,7 @@ if test "$enable_makedep_PARENTSPEC" -eq 1; then ) >> "$patchlist" fi -# Patchset mmdevapi-AEV_GetVolumeRange +# Patchset mmdevapi-AEV_Stubs # | # | This patchset fixes the following Wine bugs: # | * [#35658] Improve stub for AEV_GetVolumeRange @@ -1877,10 +1877,14 @@ fi # | Modified files: # | * dlls/mmdevapi/audiovolume.c # | -if test "$enable_mmdevapi_AEV_GetVolumeRange" -eq 1; then - patch_apply mmdevapi-AEV_GetVolumeRange/0001-mmdevapi-Improve-AEV_GetVolumeRange-stub.patch +if test "$enable_mmdevapi_AEV_Stubs" -eq 1; then + patch_apply mmdevapi-AEV_Stubs/0001-mmdevapi-Improve-AEV_GetVolumeRange-stub.patch + patch_apply mmdevapi-AEV_Stubs/0002-mmdevapi-Improve-AEV_SetMasterVolumeLevel-and-AEV_Ge.patch + patch_apply mmdevapi-AEV_Stubs/0003-mmdevapi-Improve-AEV_SetMute-and-AEV_GetMute-stubs.patch ( echo '+ { "Christian Costa", "mmdevapi: Improve AEV_GetVolumeRange stub.", 1 },'; + echo '+ { "Christian Costa", "mmdevapi: Improve AEV_SetMasterVolumeLevel and AEV_GetMasterVolumeLevel stubs.", 1 },'; + echo '+ { "Christian Costa", "mmdevapi: Improve AEV_SetMute and AEV_GetMute stubs.", 1 },'; ) >> "$patchlist" fi