FIRE-22709: Fix for local voice not working in OpenSim on Windows
Use re-bundled Vivox voice SDK version 4.6.0017.21209 from previous release when logging into OpenSim since the updated version 4.9.0002.27586 is apparently incompatible with OpenSim. Use new version only for Second Life.master
parent
5e4fa5e117
commit
5586c0e160
|
|
@ -167,6 +167,34 @@
|
|||
</map>
|
||||
</map>
|
||||
</map>
|
||||
<key>slvoice_os</key>
|
||||
<map>
|
||||
<key>copyright</key>
|
||||
<string>2010 Vivox, including audio coding using Polycom¨ Siren14TM (ITU-T Rec. G.722.1 Annex C)</string>
|
||||
<key>description</key>
|
||||
<string>Vivox SDK components compatible with OpenSim</string>
|
||||
<key>license</key>
|
||||
<string>Mixed</string>
|
||||
<key>license_file</key>
|
||||
<string>LICENSES/slvoice_os.txt</string>
|
||||
<key>name</key>
|
||||
<string>slvoice_os</string>
|
||||
<key>platforms</key>
|
||||
<map>
|
||||
<key>windows</key>
|
||||
<map>
|
||||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>9676f61f3e32dfce50550004be559519</string>
|
||||
<key>url</key>
|
||||
<uri>http://downloads.phoenixviewer.com/slvoice_os-4.6.0017.21209.500605-windows-500605.tar.bz2</uri>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows</string>
|
||||
</map>
|
||||
</map>
|
||||
</map>
|
||||
<key>SDL</key>
|
||||
<map>
|
||||
<key>copyright</key>
|
||||
|
|
|
|||
|
|
@ -8,6 +8,13 @@ if (NOT USESYSTEMLIBS)
|
|||
endif (LINUX)
|
||||
use_prebuilt_binary(libhunspell)
|
||||
use_prebuilt_binary(slvoice)
|
||||
# <FS:Ansariel> FIRE-22709: Local voice not working in OpenSim
|
||||
if (OPENSIM)
|
||||
if (WINDOWS)
|
||||
use_prebuilt_binary(slvoice_os)
|
||||
endif (WINDOWS)
|
||||
endif (OPENSIM)
|
||||
# </FS:Ansariel>
|
||||
# use_prebuilt_binary(libidn)
|
||||
endif(NOT USESYSTEMLIBS)
|
||||
|
||||
|
|
|
|||
|
|
@ -812,6 +812,14 @@ bool LLVivoxVoiceClient::startAndLaunchDaemon()
|
|||
std::string exe_path = gDirUtilp->getExecutableDir();
|
||||
exe_path += gDirUtilp->getDirDelimiter();
|
||||
#if LL_WINDOWS
|
||||
// <FS:Ansariel> FIRE-22709: Local voice not working in OpenSim
|
||||
#ifdef OPENSIM
|
||||
if (!LLGridManager::instance().isInSecondLife())
|
||||
{
|
||||
exe_path += "voice_os" + gDirUtilp->getDirDelimiter();
|
||||
}
|
||||
#endif
|
||||
// </FS:Ansariel>
|
||||
exe_path += "SLVoice.exe";
|
||||
#elif LL_DARWIN
|
||||
exe_path += "../Resources/SLVoice";
|
||||
|
|
@ -831,7 +839,7 @@ bool LLVivoxVoiceClient::startAndLaunchDaemon()
|
|||
// vivox executable exists. Build the command line and launch the daemon.
|
||||
LLProcess::Params params;
|
||||
|
||||
// <FS:ND> On Linux the viewer can run SLVoice.exe through wine (https://www.winehq.org/)
|
||||
// <FS:ND> On Linux the viewer can run SLVoice.exe through wine (https://www.winehq.org/)
|
||||
params.executable = exe_path;
|
||||
|
||||
if( !viewerUsesWineForVoice() )
|
||||
|
|
@ -842,7 +850,7 @@ bool LLVivoxVoiceClient::startAndLaunchDaemon()
|
|||
params.args.add( exe_path );
|
||||
}
|
||||
//</FS:ND>
|
||||
|
||||
|
||||
std::string loglevel = gSavedSettings.getString("VivoxDebugLevel");
|
||||
if (loglevel.empty())
|
||||
{
|
||||
|
|
@ -858,12 +866,12 @@ bool LLVivoxVoiceClient::startAndLaunchDaemon()
|
|||
log_folder = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "");
|
||||
}
|
||||
|
||||
// <FS:Ansariel> Strip trailing directory delimiter
|
||||
if (LLStringUtil::endsWith(log_folder, gDirUtilp->getDirDelimiter()))
|
||||
{
|
||||
log_folder = log_folder.substr(0, log_folder.size() - gDirUtilp->getDirDelimiter().size());
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
// <FS:Ansariel> Strip trailing directory delimiter
|
||||
if (LLStringUtil::endsWith(log_folder, gDirUtilp->getDirDelimiter()))
|
||||
{
|
||||
log_folder = log_folder.substr(0, log_folder.size() - gDirUtilp->getDirDelimiter().size());
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
params.args.add("-lf");
|
||||
params.args.add(log_folder);
|
||||
|
||||
|
|
@ -874,20 +882,19 @@ bool LLVivoxVoiceClient::startAndLaunchDaemon()
|
|||
params.args.add(shutdown_timeout);
|
||||
}
|
||||
|
||||
// <FS:Ansariel> Voice in multiple instances; by Latif Khalifa
|
||||
if (gSavedSettings.getBOOL("VoiceMultiInstance"))
|
||||
{
|
||||
S32 port_nr = 30000 + ll_rand(20000);
|
||||
LLControlVariable* voice_port = gSavedSettings.getControl("VivoxVoicePort");
|
||||
if (voice_port)
|
||||
{
|
||||
voice_port->setValue(LLSD(port_nr), false);
|
||||
params.args.add("-i");
|
||||
params.args.add(llformat("127.0.0.1:%u", gSavedSettings.getU32("VivoxVoicePort")));
|
||||
}
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
|
||||
// <FS:Ansariel> Voice in multiple instances; by Latif Khalifa
|
||||
if (gSavedSettings.getBOOL("VoiceMultiInstance"))
|
||||
{
|
||||
S32 port_nr = 30000 + ll_rand(20000);
|
||||
LLControlVariable* voice_port = gSavedSettings.getControl("VivoxVoicePort");
|
||||
if (voice_port)
|
||||
{
|
||||
voice_port->setValue(LLSD(port_nr), false);
|
||||
params.args.add("-i");
|
||||
params.args.add(llformat("127.0.0.1:%u", gSavedSettings.getU32("VivoxVoicePort")));
|
||||
}
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
|
||||
params.cwd = gDirUtilp->getAppRODataDir();
|
||||
|
||||
|
|
@ -900,7 +907,7 @@ bool LLVivoxVoiceClient::startAndLaunchDaemon()
|
|||
params.args.add("-ch");
|
||||
params.args.add(LLVivoxSecurity::getInstance()->connectorHandle());
|
||||
# endif // VIVOX_HANDLE_ARGS
|
||||
} // <FS:ND/>
|
||||
} // <FS:ND/>
|
||||
|
||||
params.postend = sGatewayPump.getName();
|
||||
sGatewayPump.listen("VivoxDaemonPump", boost::bind(&LLVivoxVoiceClient::callbackEndDaemon, this, _1));
|
||||
|
|
|
|||
|
|
@ -804,6 +804,20 @@ class WindowsManifest(ViewerManifest):
|
|||
self.path("msvcp120.dll")
|
||||
self.path("msvcr120.dll")
|
||||
|
||||
# <FS:Ansariel> FIRE-22709: Local voice not working in OpenSim
|
||||
if self.fs_flavor() == 'oss':
|
||||
with self.prefix(src=os.path.join(relpkgdir, 'voice_os'), dst="voice_os"):
|
||||
self.path("libsndfile-1.dll")
|
||||
self.path("ortp.dll")
|
||||
self.path("SLVoice.exe")
|
||||
self.path("vivoxoal.dll")
|
||||
self.path("vivoxplatform.dll")
|
||||
self.path("vivoxsdk.dll")
|
||||
self.path("zlib1.dll")
|
||||
with self.prefix(src=pkgdir, dst="voice_os"):
|
||||
self.path("ca-bundle.crt")
|
||||
# </FS:Ansariel>
|
||||
|
||||
if not self.is_packaging_viewer():
|
||||
self.package_file = "copied_deps"
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue