From 88fe6da622eccd2ad2874bb59610932a982f7c9e Mon Sep 17 00:00:00 2001 From: callum_linden Date: Tue, 18 Dec 2012 11:44:20 -0800 Subject: FIX (SPECULATIVE) MAINT-1340 - Media Volume control broken on Vista+ systems --- .../webkit/windows_volume_catcher.cpp | 52 +++++++++++++++++----- 1 file changed, 41 insertions(+), 11 deletions(-) diff --git a/indra/media_plugins/webkit/windows_volume_catcher.cpp b/indra/media_plugins/webkit/windows_volume_catcher.cpp index 5fb84756ee..b0c3134eb0 100644 --- a/indra/media_plugins/webkit/windows_volume_catcher.cpp +++ b/indra/media_plugins/webkit/windows_volume_catcher.cpp @@ -48,18 +48,37 @@ private: set_volume_func_t mSetVolumeFunc; set_mute_func_t mSetMuteFunc; + // tests if running on Vista, 7, 8 + once in CTOR + bool isWindowsVistaOrHigher(); + F32 mVolume; F32 mPan; + bool mSystemIsVistaOrHigher; }; + +bool VolumeCatcherImpl::isWindowsVistaOrHigher() +{ + OSVERSIONINFO osvi; + ZeroMemory(&osvi, sizeof(OSVERSIONINFO)); + osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&osvi); + return osvi.dwMajorVersion >= 6; +} + VolumeCatcherImpl::VolumeCatcherImpl() -: mVolume(1.0f), // default volume is max - mPan(0.f) // default pan is centered +: mVolume(1.0f), // default volume is max + mPan(0.f) // default pan is centered { - HMODULE handle = ::LoadLibrary(L"winmm.dll"); - if(handle) + mSystemIsVistaOrHigher = isWindowsVistaOrHigher(); + + if ( mSystemIsVistaOrHigher ) { - mSetVolumeFunc = (set_volume_func_t)::GetProcAddress(handle, "setPluginVolume"); - mSetMuteFunc = (set_mute_func_t)::GetProcAddress(handle, "setPluginMute"); + HMODULE handle = ::LoadLibrary(L"winmm.dll"); + if(handle) + { + mSetVolumeFunc = (set_volume_func_t)::GetProcAddress(handle, "setPluginVolume"); + mSetMuteFunc = (set_mute_func_t)::GetProcAddress(handle, "setPluginMute"); + } } } @@ -67,18 +86,29 @@ VolumeCatcherImpl::~VolumeCatcherImpl() { } - void VolumeCatcherImpl::setVolume(F32 volume) { mVolume = volume; - if (mSetMuteFunc) + if ( mSystemIsVistaOrHigher ) { - mSetMuteFunc(volume == 0.f); + // set both left/right to same volume + // TODO: use pan value to set independently + DWORD left_channel = (DWORD)(mVolume * 65535.0f); + DWORD right_channel = (DWORD)(mVolume * 65535.0f); + DWORD hw_volume = left_channel << 16 | right_channel; + ::waveOutSetVolume(NULL, hw_volume); } - if (mSetVolumeFunc) + else { - mSetVolumeFunc(mVolume); + if (mSetMuteFunc) + { + mSetMuteFunc(volume == 0.f); + } + if (mSetVolumeFunc) + { + mSetVolumeFunc(mVolume); + } } } -- cgit v1.2.3 From 627e531d333bcf9ed684883ad494a25b2c83af8e Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Fri, 11 Jan 2013 17:17:13 -0600 Subject: MAINT-417 Backed out changeset: 7273a1ac51e8 --- indra/newview/llviewerkeyboard.cpp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/indra/newview/llviewerkeyboard.cpp b/indra/newview/llviewerkeyboard.cpp index f5d3341c66..1aa9fd8a45 100644 --- a/indra/newview/llviewerkeyboard.cpp +++ b/indra/newview/llviewerkeyboard.cpp @@ -160,11 +160,6 @@ void agent_push_backward( EKeystate s ) camera_move_backward(s); return; } - else if (gAgentAvatarp->isSitting()) - { - gAgentCamera.changeCameraToThirdPerson(); - return; - } agent_push_forwardbackward(s, -1, LLAgent::DOUBLETAP_BACKWARD); } -- cgit v1.2.3 From 90fb925d845a96f7dc5a8f9fa175ce9da3f75cce Mon Sep 17 00:00:00 2001 From: callum_linden Date: Fri, 11 Jan 2013 15:23:18 -0800 Subject: fix line endings --- indra/media_plugins/webkit/windows_volume_catcher.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/indra/media_plugins/webkit/windows_volume_catcher.cpp b/indra/media_plugins/webkit/windows_volume_catcher.cpp index b0c3134eb0..957704da47 100644 --- a/indra/media_plugins/webkit/windows_volume_catcher.cpp +++ b/indra/media_plugins/webkit/windows_volume_catcher.cpp @@ -56,14 +56,14 @@ private: bool mSystemIsVistaOrHigher; }; -bool VolumeCatcherImpl::isWindowsVistaOrHigher() -{ - OSVERSIONINFO osvi; - ZeroMemory(&osvi, sizeof(OSVERSIONINFO)); - osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); - GetVersionEx(&osvi); - return osvi.dwMajorVersion >= 6; -} +bool VolumeCatcherImpl::isWindowsVistaOrHigher() +{ + OSVERSIONINFO osvi; + ZeroMemory(&osvi, sizeof(OSVERSIONINFO)); + osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&osvi); + return osvi.dwMajorVersion >= 6; +} VolumeCatcherImpl::VolumeCatcherImpl() : mVolume(1.0f), // default volume is max -- cgit v1.2.3 From a9a4483df2c608cde1eafe8440c2aa48ce1aa336 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Fri, 11 Jan 2013 18:39:25 -0500 Subject: tag merge of DRTVWR-281 --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 51a13fbc09..a567853c7c 100755 --- a/.hgtags +++ b/.hgtags @@ -395,3 +395,4 @@ a36f1f354b02aa6e448ca13685de167d0a0a3d03 DRTVWR-272 37dba00ad820de3a808d4039396b162a9c275b3e DRTVWR-269 c374035d459af3c03dea2dd90880dfc25de64706 DRTVWR-275 05d9f1dd7a954069af2a33abedb7713fa36a04cb 3.4.4-beta4 +5df4802bec93c8d0a509946d826bb4c50c5442ec DRTVWR-281 -- cgit v1.2.3 From 33d77848902972cd2814c86dda40d81068bdd8e3 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Mon, 14 Jan 2013 09:50:09 -0500 Subject: tag merge of DRTVWR-283 --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 49d77e7e45..2e062c0b25 100644 --- a/.hgtags +++ b/.hgtags @@ -402,3 +402,4 @@ af6b711a97073431953b55ee808aaa09900c27e5 DRTVWR-276 8302fefde6c8f4a64bfc7f04929f8bc85f5c6c7b DRTVWR-279 c296133849d1f103c0e2abc41e6599daed00b67b DRTVWR-280 40a2265058abc9fde4914c10185f916435818621 3.4.5-beta1 +7c1c33ba4cfd2d15ca51cc1ac440eca551331a4a DRTVWR-283 -- cgit v1.2.3 From c842494b774eedc6066f317853a82586ab85524e Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Mon, 14 Jan 2013 10:43:57 -0500 Subject: Added tag 3.4.5-beta2 for changeset 6b9c7dbebef7 --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index aea2e8a416..e5cb4405e0 100644 --- a/.hgtags +++ b/.hgtags @@ -404,3 +404,4 @@ c296133849d1f103c0e2abc41e6599daed00b67b DRTVWR-280 40a2265058abc9fde4914c10185f916435818621 3.4.5-beta1 5df4802bec93c8d0a509946d826bb4c50c5442ec DRTVWR-281 7c1c33ba4cfd2d15ca51cc1ac440eca551331a4a DRTVWR-283 +6b9c7dbebef793230d64e1b452577c8b142d4143 3.4.5-beta2 -- cgit v1.2.3