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.meow-7.2.2
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