diff options
| -rw-r--r-- | README.md | 1 | ||||
| -rw-r--r-- | autobuild.xml | 32 | ||||
| -rw-r--r-- | indra/cmake/Copy3rdPartyLibs.cmake | 5 | ||||
| -rw-r--r-- | indra/media_plugins/cef/CMakeLists.txt | 20 | ||||
| -rw-r--r-- | indra/media_plugins/cef/mac_volume_catcher_null.cpp | 95 | ||||
| -rw-r--r-- | indra/media_plugins/cef/media_plugin_cef.cpp | 17 | ||||
| -rwxr-xr-x | indra/newview/viewer_manifest.py | 4 | 
7 files changed, 146 insertions, 28 deletions
@@ -14,4 +14,3 @@ To download the current default version, visit  [the download page](https://secondlife.com/support/downloads). For  even newer versions try  [the Alternate Viewers page](https://wiki.secondlife.com/wiki/Linden_Lab_Official:Alternate_Viewers) - diff --git a/autobuild.xml b/autobuild.xml index 6d6ad0aba6..7f81064379 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -76,9 +76,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>ae733dd8f2c83055030ea6e08c623306</string> +              <string>f65774ebabb256f2d217a872b0cf2b5b</string>                <key>url</key> -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/745/1534/apr_suite-1.4.5.500735-darwin64-500735.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/4812/15284/apr_suite-1.4.5.504800-darwin64-504800.tar.bz2</string>              </map>              <key>name</key>              <string>darwin64</string> @@ -100,9 +100,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>bc8855c8253b8293c7e61af7b1ed0f05</string> +              <string>84a1a140f20b25d714949185e854d14b</string>                <key>url</key> -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/744/1545/apr_suite-1.4.5.500735-linux64-500735.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/4811/15302/apr_suite-1.4.5.504800-linux64-504800.tar.bz2</string>              </map>              <key>name</key>              <string>linux64</string> @@ -112,9 +112,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>7d97a3788ea4f89eccb7789e4f015bb3</string> +              <string>dc80eca3d113b038b469003da8cd6638</string>                <key>url</key> -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/747/1540/apr_suite-1.4.5.500735-windows-500735.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/4813/15290/apr_suite-1.4.5.504800-windows-504800.tar.bz2</string>              </map>              <key>name</key>              <string>windows</string> @@ -124,16 +124,16 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>8820c4df1079a9af53f52485f50ff179</string> +              <string>63146d3d3d5fe7aa6be1a1b0afed36dd</string>                <key>url</key> -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/746/1537/apr_suite-1.4.5.500735-windows64-500735.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/4814/15296/apr_suite-1.4.5.504800-windows64-504800.tar.bz2</string>              </map>              <key>name</key>              <string>windows64</string>            </map>          </map>          <key>version</key> -        <string>1.4.5.500735</string> +        <string>1.4.5.504800</string>        </map>        <key>boost</key>        <map> @@ -526,9 +526,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>9005fcda30e6659790e2fdfc27d4e2ee</string> +              <string>da5c705fa4fae169cba26fba92dba1ef</string>                <key>url</key> -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/4384/12984/dullahan-1.1.764_3.2987.1591.gd3e47f5-darwin64-504373.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/4835/15404/dullahan-1.1.800_3.3029.1611.g44e39a8-darwin64-504824.tar.bz2</string>              </map>              <key>name</key>              <string>darwin64</string> @@ -538,9 +538,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>9c2abd5b606a5f0580c4cbb4e9aedfaa</string> +              <string>17cd8f6e8f95df877d0c9c234f860324</string>                <key>url</key> -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/4385/12990/dullahan-1.1.764_3.2987.1591.gd3e47f5-windows-504373.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/4836/15410/dullahan-1.1.800_3.3029.1611.g44e39a8-windows-504824.tar.bz2</string>              </map>              <key>name</key>              <string>windows</string> @@ -550,16 +550,16 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>9e6714e4c3286a0b268577300043d998</string> +              <string>7a478f8f0e13f5f81cab657a8c351186</string>                <key>url</key> -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/4386/12995/dullahan-1.1.764_3.2987.1591.gd3e47f5-windows64-504373.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/4837/15415/dullahan-1.1.800_3.3029.1611.g44e39a8-windows64-504824.tar.bz2</string>              </map>              <key>name</key>              <string>windows64</string>            </map>          </map>          <key>version</key> -        <string>1.1.764_3.2987.1591.gd3e47f5</string> +        <string>1.1.800_3.3029.1611.g44e39a8</string>        </map>        <key>elfio</key>        <map> diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index c7fb7a5301..43188673eb 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -67,8 +67,9 @@ if(WINDOWS)      endif (MSVC80)      # try to copy VS2010 redist independently of system version -    list(APPEND LMSVC_VER 100) -    list(APPEND LMSVC_VERDOT 10.0) +    # maint-7360 CP +    # list(APPEND LMSVC_VER 100) +    # list(APPEND LMSVC_VERDOT 10.0)      list(LENGTH LMSVC_VER count)      math(EXPR count "${count}-1") diff --git a/indra/media_plugins/cef/CMakeLists.txt b/indra/media_plugins/cef/CMakeLists.txt index 201fb44847..5452fd9d1e 100644 --- a/indra/media_plugins/cef/CMakeLists.txt +++ b/indra/media_plugins/cef/CMakeLists.txt @@ -46,6 +46,10 @@ set(media_plugin_cef_SOURCE_FILES      media_plugin_cef.cpp      ) +set(media_plugin_cef_HEADER_FILES +    volume_catcher.h +    ) +  set (media_plugin_cef_LINK_LIBRARIES    ${LLPLUGIN_LIBRARIES}    ${MEDIA_PLUGIN_BASE_LIBRARIES} @@ -53,7 +57,21 @@ set (media_plugin_cef_LINK_LIBRARIES    ${LLCOMMON_LIBRARIES}    ${PLUGIN_API_WINDOWS_LIBRARIES}) - +# Select which VolumeCatcher implementation to use +if (LINUX) +  message(FATAL_ERROR "CEF plugin has been enabled for a Linux compile.\n" +    "  Please create a volume_catcher implementation for this platform.") +elseif (DARWIN) +  list(APPEND media_plugin_cef_SOURCE_FILES mac_volume_catcher_null.cpp) +  find_library(CORESERVICES_LIBRARY CoreServices) +  find_library(AUDIOUNIT_LIBRARY AudioUnit) +  list(APPEND media_plugin_cef_LINK_LIBRARIES +       ${CORESERVICES_LIBRARY}     # for Component Manager calls +       ${AUDIOUNIT_LIBRARY}        # for AudioUnit calls +       ) +elseif (WINDOWS) +  list(APPEND media_plugin_cef_SOURCE_FILES windows_volume_catcher.cpp) +endif (LINUX)  set_source_files_properties(${media_plugin_cef_HEADER_FILES}                              PROPERTIES HEADER_FILE_ONLY TRUE) diff --git a/indra/media_plugins/cef/mac_volume_catcher_null.cpp b/indra/media_plugins/cef/mac_volume_catcher_null.cpp new file mode 100644 index 0000000000..f4fcef71aa --- /dev/null +++ b/indra/media_plugins/cef/mac_volume_catcher_null.cpp @@ -0,0 +1,95 @@ +/**  + * @file windows_volume_catcher.cpp + * @brief A null implementation of volume level control of all audio channels opened by a process. + *        We are using this for the macOS version for now until we can understand how to make the  + *        exitising mac_volume_catcher.cpp work without the (now, non-existant) QuickTime dependency + * + * @cond + * $LicenseInfo:firstyear=2010&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2010, Linden Research, Inc. + *  + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + *  + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU + * Lesser General Public License for more details. + *  + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA + *  + * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA + * $/LicenseInfo$ + * @endcond + */ + +#include "volume_catcher.h" +#include "llsingleton.h" +class VolumeCatcherImpl : public LLSingleton<VolumeCatcherImpl> +{ +	LLSINGLETON(VolumeCatcherImpl); +	// This is a singleton class -- both callers and the component implementation should use getInstance() to find the instance. +	~VolumeCatcherImpl(); + +public: + +	void setVolume(F32 volume); +	void setPan(F32 pan); +	 +private: +	F32 	mVolume; +	F32 	mPan; +	bool mSystemIsVistaOrHigher; +}; + +VolumeCatcherImpl::VolumeCatcherImpl() +:	mVolume(1.0f),			// default volume is max +	mPan(0.f)				// default pan is centered +{ +} + +VolumeCatcherImpl::~VolumeCatcherImpl() +{ +} + +void VolumeCatcherImpl::setVolume(F32 volume) +{ +	mVolume = volume; +} + +void VolumeCatcherImpl::setPan(F32 pan) +{	// remember pan for calculating individual channel levels later +	mPan = pan; +} + +///////////////////////////////////////////////////// + +VolumeCatcher::VolumeCatcher() +{ +	pimpl = VolumeCatcherImpl::getInstance(); +} + +VolumeCatcher::~VolumeCatcher() +{ +	// Let the instance persist until exit. +} + +void VolumeCatcher::setVolume(F32 volume) +{ +	pimpl->setVolume(volume); +} + +void VolumeCatcher::setPan(F32 pan) +{ +	pimpl->setPan(pan); +} + +void VolumeCatcher::pump() +{ +	// No periodic tasks are necessary for this implementation. +} diff --git a/indra/media_plugins/cef/media_plugin_cef.cpp b/indra/media_plugins/cef/media_plugin_cef.cpp index 69717be91f..796e262d6f 100644 --- a/indra/media_plugins/cef/media_plugin_cef.cpp +++ b/indra/media_plugins/cef/media_plugin_cef.cpp @@ -34,6 +34,7 @@  #include "llplugininstance.h"  #include "llpluginmessage.h"  #include "llpluginmessageclasses.h" +#include "volume_catcher.h"  #include "media_plugin_base.h"  #include <functional> @@ -77,7 +78,7 @@ private:  	void unicodeInput(LLSD native_key_data);  	void checkEditState(); -    void setVolume(F32 vol); +    void setVolume();  	bool mEnableMediaPluginDebugging;  	std::string mHostLanguage; @@ -95,6 +96,8 @@ private:  	std::string mCachePath;  	std::string mCookiePath;  	std::string mPickedFile; +	VolumeCatcher mVolumeCatcher; +	F32 mCurVolume;  	dullahan* mCEFLib;  }; @@ -123,8 +126,11 @@ MediaPluginBase(host_send_func, host_user_data)  	mCachePath = "";  	mCookiePath = "";  	mPickedFile = ""; +	mCurVolume = 0.0; +  	mCEFLib = new dullahan(); +	setVolume();  }  //////////////////////////////////////////////////////////////////////////////// @@ -452,6 +458,7 @@ void MediaPluginCEF::receiveMessage(const char* message_string)  				settings.flip_mouse_y = false;  				settings.flip_pixels_y = true;  				settings.frame_rate = 60; +				settings.force_wave_audio = true;  				settings.initial_height = 1024;  				settings.initial_width = 1024;  				settings.java_enabled = false; @@ -713,8 +720,9 @@ void MediaPluginCEF::receiveMessage(const char* message_string)          {              if (message_name == "set_volume")              { -                F32 volume = (F32)message_in.getValueReal("volume"); -                setVolume(volume); +				F32 volume = (F32)message_in.getValueReal("volume"); +				mCurVolume = volume; +                setVolume();              }          }          else @@ -793,8 +801,9 @@ void MediaPluginCEF::checkEditState()  	}  } -void MediaPluginCEF::setVolume(F32 vol) +void MediaPluginCEF::setVolume()  { +	mVolumeCatcher.setVolume(mCurVolume);  }  //////////////////////////////////////////////////////////////////////////////// diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 11769c59a8..142951da25 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -391,13 +391,9 @@ class WindowsManifest(ViewerManifest):              if self.args['configuration'].lower() == 'debug':                   self.path("msvcr120d.dll")                   self.path("msvcp120d.dll") -                 self.path("msvcr100d.dll") -                 self.path("msvcp100d.dll")              else:                   self.path("msvcr120.dll")                   self.path("msvcp120.dll") -                 self.path("msvcr100.dll") -                 self.path("msvcp100.dll")              # Vivox runtimes              self.path("SLVoice.exe")  | 
