Linux; Update the windows voice bundle, include windows 64 bit voice as a new option.

master
Nicky 2021-09-27 00:27:49 +02:00
parent ea32c0fba2
commit ef7ee0a17b
4 changed files with 41 additions and 24 deletions

View File

@ -3221,26 +3221,14 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>name</key>
<string>darwin64</string>
</map>
<key>linux</key>
<map>
<key>archive</key>
<map>
<key>hash</key>
<string>6e7b0961d6489a1b3c3090eccfd6e80e</string>
<key>url</key>
<string>http://3p.firestormviewer.org/slvoice-3.2.0002.10426.298329-linux-20160717.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
</map>
<key>linux64</key>
<map>
<key>archive</key>
<map>
<key>hash</key>
<string>6e7b0961d6489a1b3c3090eccfd6e80e</string>
<string>05c4debd4cccfea620fc7e6f9a190924</string>
<key>url</key>
<string>http://3p.firestormviewer.org/slvoice-3.2.0002.10426.298329-linux-20160717.tar.bz2</string>
<string>http://3p.firestormviewer.org/slvoice-3.2.0002.10426.302004-linux64-212691952.tar.bz2</string>
</map>
<key>name</key>
<string>linux64</string>

View File

@ -25173,6 +25173,17 @@ Change of this parameter will affect the layout of buttons in notification toast
<key>Value</key>
<integer>0</integer>
</map>
<key>FSLinuxEnableWin64VoiceProxy</key>
<map>
<key>Comment</key>
<string>Use Win64 SLVoice.exe for voice. Needs wine (https://www.winehq.org/) installed, as SLVoice.exe is started inside wine.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>FSStatusBarMenuButtonPopupOnRollover</key>
<map>
<key>Comment</key>

View File

@ -520,20 +520,29 @@ bool LLVivoxVoiceClient::writeString(const std::string &str)
// <FS:ND> On Linux the viewer can run SLVoice.exe through wine (https://www.winehq.org/)
// Vivox does not support Linux anymore and the SDK SLVoice for Linux uses is old and according to LL
// will stop working 'soon' (as of 2016-07-17). See also FIRE-19663
bool viewerUsesWineForVoice()
enum class EWineMode{ eNoWine, e32Bit, e64Bit };
EWineMode viewerUsesWineForVoice()
{
#ifndef LL_LINUX
return false;
return EWineMode::eNoWine;
#else
static LLCachedControl<bool> sEnableVoiceChat(gSavedSettings, "FSLinuxEnableWin32VoiceProxy" );
static LLCachedControl<bool> sEnable32BitVoiceChat(gSavedSettings, "FSLinuxEnableWin32VoiceProxy" );
static LLCachedControl<bool> sEnable64BitVoiceChat(gSavedSettings, "FSLinuxEnableWin64VoiceProxy" );
return sEnableVoiceChat;
if( sEnable64BitVoiceChat )
return EWineMode::e64Bit;
if( sEnable32BitVoiceChat )
return EWineMode::e32Bit;
return EWineMode::eNoWine;
#endif
}
bool viewerChoosesConnectionHandles()
{
return viewerUsesWineForVoice();
return viewerUsesWineForVoice() != EWineMode::eNoWine;
}
// </FS:ND>
@ -881,10 +890,18 @@ bool LLVivoxVoiceClient::startAndLaunchDaemon()
std::string exe_path = gDirUtilp->getExecutableDir();
// <FS:ND> On Linux the viewer can run SLVoice.exe through wine (https://www.winehq.org/)
//gDirUtilp->append(exe_path, "SLVoice");
if( !viewerUsesWineForVoice() )
gDirUtilp->append(exe_path, "SLVoice"); // native version
else
gDirUtilp->append(exe_path, "win32/SLVoice.exe"); // use bundled win32 version
switch( viewerUsesWineForVoice() )
{
case EWineMode::eNoWine:
gDirUtilp->append(exe_path, "SLVoice"); // native version
break;
case EWineMode::e32Bit:
gDirUtilp->append(exe_path, "win32/SLVoice.exe"); // use bundled win32 version
break;
case EWineMode::e64Bit:
gDirUtilp->append(exe_path, "win64/SLVoice.exe"); // use bundled win64 version
break;
}
// </FS:ND>
#endif
// See if the vivox executable exists
@ -897,7 +914,7 @@ bool LLVivoxVoiceClient::startAndLaunchDaemon()
// <FS:ND> On Linux the viewer can run SLVoice.exe through wine (https://www.winehq.org/)
params.executable = exe_path;
if( !viewerUsesWineForVoice() )
if( EWineMode::eNoWine == viewerUsesWineForVoice() )
params.executable = exe_path;
else
{

View File

@ -2056,6 +2056,7 @@ class LinuxManifest(ViewerManifest):
with self.prefix(src=os.path.join(pkgdir, 'lib', 'release'), dst="bin"):
self.path("SLVoice")
self.path("win32")
self.path("win64")
with self.prefix(src=os.path.join(pkgdir, 'lib', 'release'), dst="lib"):
self.path("libortp.so")