# Conflicts:
#	indra/llaudio/llaudioengine_fmodstudio.cpp
#	indra/newview/llprogressview.cpp
#	indra/newview/viewer_manifest.py
meow-7.2.2
Ansariel 2020-04-23 19:36:46 +02:00
commit f22474724e
9 changed files with 177 additions and 130 deletions

View File

@ -59,11 +59,11 @@ static inline bool Check_FMOD_Error(FMOD_RESULT result, const char *string)
if (result != FMOD_ERR_INVALID_HANDLE)
{
LL_WARNS() << string << " Error: " << FMOD_ErrorString(result) << LL_ENDL;
LL_WARNS("FMOD") << string << " Error: " << FMOD_ErrorString(result) << LL_ENDL;
}
else
{
LL_DEBUGS() << string << " Error: " << FMOD_ErrorString(result) << LL_ENDL;
LL_DEBUGS("FMOD") << string << " Error: " << FMOD_ErrorString(result) << LL_ENDL;
}
return true;
@ -84,7 +84,7 @@ void set_device(FMOD::System* system, const LLUUID& device_uuid)
{
if (device_uuid.isNull())
{
LL_INFOS() << "Setting driver \"Default\"" << LL_ENDL;
LL_INFOS("FMOD") << "Setting driver \"Default\"" << LL_ENDL;
Check_FMOD_Error(system->setDriver(0), "FMOD::System::setDriver");
}
else
@ -100,14 +100,14 @@ void set_device(FMOD::System* system, const LLUUID& device_uuid)
if (driver_guid == device_uuid)
{
LL_INFOS() << "Setting driver " << i << ": " << driver_guid << LL_ENDL;
LL_INFOS("FMOD") << "Setting driver " << i << ": " << driver_guid << LL_ENDL;
Check_FMOD_Error(system->setDriver(i), "FMOD::System::setDriver");
return;
}
}
}
LL_INFOS() << "Device not available (anymore) - falling back to default" << LL_ENDL;
LL_INFOS("FMOD") << "Device not available (anymore) - falling back to default" << LL_ENDL;
Check_FMOD_Error(system->setDriver(0), "FMOD::System::setDriver");
}
}
@ -121,7 +121,7 @@ FMOD_RESULT F_CALLBACK systemCallback(FMOD_SYSTEM *system, FMOD_SYSTEM_CALLBACK_
switch (type)
{
case FMOD_SYSTEM_CALLBACK_DEVICELISTCHANGED:
LL_DEBUGS() << "FMOD system callback FMOD_SYSTEM_CALLBACK_DEVICELISTCHANGED" << LL_ENDL;
LL_DEBUGS("FMOD") << "FMOD system callback FMOD_SYSTEM_CALLBACK_DEVICELISTCHANGED" << LL_ENDL;
if (sys && audio_engine)
{
set_device(sys, audio_engine->getSelectedDeviceUUID());
@ -175,8 +175,6 @@ bool LLAudioEngine_FMODSTUDIO::init(const S32 num_channels, void* userdata, cons
<< " expected:" << FMOD_VERSION << LL_ENDL;
}
// In case we need to force sampling on stereo, use setSoftwareFormat here
// In this case, all sounds, PLUS wind and stream will be software.
result = mSystem->setSoftwareChannels(num_channels + EXTRA_SOUND_CHANNELS);
Check_FMOD_Error(result, "FMOD::System::setSoftwareChannels");
@ -298,6 +296,15 @@ bool LLAudioEngine_FMODSTUDIO::init(const S32 num_channels, void* userdata, cons
*/
result = mSystem->init(num_channels + EXTRA_SOUND_CHANNELS, fmod_flags, 0);
}
if (Check_FMOD_Error(result, "Error initializing FMOD Studio with default settins, retrying with other format"))
{
result = mSystem->setSoftwareFormat(44100, FMOD_SPEAKERMODE_STEREO, 0/*- ignore*/);
if (Check_FMOD_Error(result, "Error setting sotware format. Can't init."))
{
return false;
}
result = mSystem->init(num_channels + 2, fmod_flags, 0);
}
if (Check_FMOD_Error(result, "Error initializing FMOD Studio"))
{
return false;
@ -407,7 +414,7 @@ void LLAudioEngine_FMODSTUDIO::allocateListener(void)
}
catch (const std::bad_alloc& e)
{
LL_WARNS() << "Listener allocation failed due to: " << e.what() << LL_ENDL;
LL_WARNS("FMOD") << "Listener allocation failed due to: " << e.what() << LL_ENDL;
}
}
@ -416,16 +423,16 @@ void LLAudioEngine_FMODSTUDIO::shutdown()
{
stopInternetStream();
LL_INFOS() << "About to LLAudioEngine::shutdown()" << LL_ENDL;
LL_INFOS("FMOD") << "About to LLAudioEngine::shutdown()" << LL_ENDL;
LLAudioEngine::shutdown();
LL_INFOS() << "LLAudioEngine_FMODSTUDIO::shutdown() closing FMOD Studio" << LL_ENDL;
LL_INFOS("FMOD") << "LLAudioEngine_FMODSTUDIO::shutdown() closing FMOD Studio" << LL_ENDL;
if (mSystem)
{
Check_FMOD_Error(mSystem->close(), "FMOD::System::close");
Check_FMOD_Error(mSystem->release(), "FMOD::System::release");
}
LL_INFOS() << "LLAudioEngine_FMODSTUDIO::shutdown() done closing FMOD Studio" << LL_ENDL;
LL_INFOS("FMOD") << "LLAudioEngine_FMODSTUDIO::shutdown() done closing FMOD Studio" << LL_ENDL;
delete mListenerp;
mListenerp = NULL;

View File

@ -460,54 +460,50 @@ void LLProgressView::initLogos()
const U8 image_codec = IMG_CODEC_PNG;
const LLRectf default_clip(0.f, 1.f, 1.f, 0.f);
const S32 default_height = 24;
const S32 default_width = 91;
const S32 default_pad = 7;
const S32 default_height = 32;
const S32 default_pad = 25;
S32 icon_width;
// We don't know final screen rect yet, so we can't precalculate position fully
LLTextBox *logos_label = getChild<LLTextBox>("logos_lbl");
S32 texture_start_x = logos_label->getFont()->getWidthF32(logos_label->getText()) + default_pad;
S32 texture_start_y = -3;
S32 texture_start_y = -7;
// Normally we would just preload these textures from textures.xml,
// and display them via icon control, but they are only needed on
// startup and preloaded/UI ones stay forever
// (and this code was done already so simply reused it)
std::string temp_str = gDirUtilp->getExpandedFilename(LL_PATH_DEFAULT_SKIN, "textures", "3p_icons");
// Normally iamges stay in skins folder, but 3p images come from package instead
// of repository and need special handling
#ifdef LL_WINDOWS
std::string temp_str = gDirUtilp->getExpandedFilename(LL_PATH_EXECUTABLE, "3p_icons");
#elif LL_DARWIN
// On MAC use resource directory
std::string temp_str = gDirUtilp->add(gDirUtilp->getAppRODataDir(), "3p_icons");
#else
std::string temp_str = gDirUtilp->getExpandedFilename(LL_PATH_EXECUTABLE, "3p_icons");
#endif
temp_str += gDirUtilp->getDirDelimiter();
#ifdef LL_FMODSTUDIO
const S32 fmod_y_offset = 2;
loadLogo(temp_str + "fmod.png",
icon_width = 89;
loadLogo(temp_str + "fmod_logo.png",
image_codec,
LLRect(texture_start_x, texture_start_y + default_height + fmod_y_offset, texture_start_x + default_width + fmod_y_offset, texture_start_y),
LLRect(texture_start_x, texture_start_y + default_height, texture_start_x + icon_width, texture_start_y),
default_clip,
default_clip);
texture_start_x += default_width + default_pad;
texture_start_x += icon_width + default_pad;
#endif
icon_width = 100;
loadLogo(temp_str + "havok_logo.png",
image_codec,
LLRect(texture_start_x, texture_start_y + default_height, texture_start_x + default_width, texture_start_y),
LLRect(texture_start_x, texture_start_y + default_height, texture_start_x + icon_width, texture_start_y),
default_clip,
default_clip);
texture_start_x += default_width + default_pad - 2; // offset to compensate for enormous borders for vivox
texture_start_x += icon_width + default_pad;
const LLRectf vivox_clip(0.0f /*repeats*/, 0.52f /*cut starting from center*/, 0.52f, 0.0f); // non-standard icon, clip it
const LLRectf vivox_offset(0.0f, 0.23f, 0.23f, 0.0f); // keeping clipping identical to not mess up scale
const S32 vivox_y_offset = -5;
icon_width = 87;
loadLogo(temp_str + "vivox_logo.png",
image_codec,
LLRect(texture_start_x, texture_start_y + default_height + vivox_y_offset, texture_start_x + default_width, texture_start_y + vivox_y_offset),
vivox_clip,
vivox_offset);
LLRect(texture_start_x, texture_start_y + default_height, texture_start_x + icon_width, texture_start_y),
default_clip,
default_clip);
}
void LLProgressView::initStartTexture(S32 location_id, bool is_in_production)
@ -590,8 +586,9 @@ void LLProgressView::initTextures(S32 location_id, bool is_in_production)
initStartTexture(location_id, is_in_production);
initLogos();
LLTextBox *logos_label = getChild<LLTextBox>("logos_lbl");
logos_label->setVisible(!mLogosList.empty());
childSetVisible("panel_icons", mLogosList.empty() ? FALSE : TRUE);
childSetVisible("panel_login", TRUE);
childSetVisible("panel_teleport", FALSE);
}
void LLProgressView::releaseTextures()
@ -599,8 +596,9 @@ void LLProgressView::releaseTextures()
gStartTexture = NULL;
mLogosList.clear();
LLTextBox *logos_label = getChild<LLTextBox>("logos_lbl");
logos_label->setVisible(false);
childSetVisible("panel_login", FALSE);
childSetVisible("panel_teleport", TRUE);
childSetVisible("panel_icons", FALSE);
}
void LLProgressView::setCancelButtonVisible(BOOL b, const std::string& label)

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -580,6 +580,7 @@ with the same filename but different name
<texture name="Music_Press" file_name="icons/Music_Press.png" preload="true" />
<texture name="ProgressBar" file_name="widgets/ProgressBar.png" preload="true" scale.left="4" scale.top="11" scale.right="48" scale.bottom="3" />
<texture name="ProgressBarSolid" file_name="widgets/ProgressBarSolid.png" preload="true" scale.left="4" scale.top="11" scale.right="48" scale.bottom="3" />
<texture name="ProgressTrack" file_name="widgets/ProgressTrack.png" preload="true" scale.left="4" scale.top="13" scale.right="148" scale.bottom="2" />
<texture name="PushButton_Disabled" file_name="widgets/PushButton_Disabled.png" preload="true" scale.left="4" scale.top="19" scale.right="28" scale.bottom="4" />

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 B

View File

@ -58,69 +58,137 @@
left="0"
top="0"
width="670" />
<text
follows="left|right|top"
font="SansSerifHuge"
font_shadow="none"
halign="left"
height="20"
layout="topleft"
left_delta="47"
name="title_text"
text_color="LoginProgressBoxTextColor"
top_delta="50"
right="-47"/>
<text
follows="left|right|top"
font="SansSerif"
font_shadow="none"
halign="left"
height="20"
layout="topleft"
left_delta="0"
name="progress_text"
text_color="LoginProgressBoxTextColor"
top_pad="5"
right="-47"
word_wrap="true"/>
<progress_bar
bottom="115"
color_bar="1 1 1 0.96"
follows="left|right|top"
height="16"
layout="topleft"
left="45"
name="login_progress_bar"
right="-45" />
<text
<layout_stack
follows="left|right|top|bottom"
font="SansSerifLarge"
font_shadow="none"
halign="left"
height="100"
height="250"
layout="topleft"
left="45"
line_spacing.pixels="2"
name="message_text"
text_color="LoginProgressBoxTextColor"
top="145"
right="-90"
word_wrap="true"/>
<!--Logos are tied to following label from code-->
<text
follows="left|right|top"
layout="topleft"
font_shadow="none"
halign="left"
height="16"
width="100"
left="48"
top="200"
line_spacing.pixels="2"
name="logos_lbl"
text_color="LoginProgressBoxTextColor">
Second Life uses
</text>
left="0"
orientation="vertical"
name="vertical_centering"
animate="false"
top="0"
width="670">
<layout_panel
auto_resize="false"
height="60"
layout="topleft"
min_height="60"
name="panel_login"
width="670">
<text
follows="left|right|top"
layout="topleft"
font="SansSerifHuge"
font_shadow="none"
halign="left"
height="20"
left="47"
top="32"
right="-47"
name="login_text"
text_color="LoginProgressBoxTextColor">
Logging in...
</text>
</layout_panel>
<layout_panel
auto_resize="false"
height="100"
layout="topleft"
min_height="100"
name="panel_teleport"
width="670">
<text
follows="left|right|top"
layout="topleft"
font="SansSerifHuge"
font_shadow="none"
halign="left"
height="20"
left="47"
top="50"
right="-47"
name="title_text"
text_color="LoginProgressBoxTextColor"/>
<text
follows="left|right|top"
layout="topleft"
font="SansSerif"
font_shadow="none"
halign="left"
height="20"
top_pad="5"
right="-47"
left_delta="0"
name="progress_text"
text_color="LoginProgressBoxTextColor"
word_wrap="true"/>
</layout_panel>
<layout_panel
auto_resize="false"
height="19"
layout="topleft"
min_height="19"
name="panel_progress"
width="670">
<progress_bar
color_bar="1 0.314 0 0.96"
follows="left|right|top"
layout="topleft"
image_fill="ProgressBarSolid"
height="16"
left="45"
top="2"
name="login_progress_bar"
right="-45" />
</layout_panel>
<layout_panel
auto_resize="false"
height="110"
layout="topleft"
min_height="110"
name="panel_motd"
width="670">
<text
follows="left|right|top|bottom"
font="SansSerifLarge"
font_shadow="none"
halign="left"
valign="center"
height="100"
layout="topleft"
left="45"
line_spacing.pixels="2"
name="message_text"
text_color="LoginProgressBoxTextColor"
top="7"
right="-90"
word_wrap="true"/>
</layout_panel>
<layout_panel
auto_resize="false"
height="40"
layout="topleft"
min_height="40"
name="panel_icons"
width="670">
<!--Logos are tied to following label from code-->
<text
follows="left|right|top"
layout="topleft"
font="SansSerifLarge"
font_shadow="none"
halign="left"
height="16"
width="240"
left="47"
top="6"
line_spacing.pixels="2"
name="logos_lbl"
text_color="LoginProgressBoxTextColor">
Second Life uses
</text>
</layout_panel>
</layout_stack>
</layout_panel>
<layout_panel
height="200"

View File

@ -565,15 +565,6 @@ class WindowsManifest(ViewerManifest):
# </FS:Ansariel> Remove VMP
# <FS:Ansariel> [Progress Logos] Show logos on "About" floater instead
# # Copy 3p icons
# with self.prefix(src=os.path.join(pkgdir, "icons"), dst="3p_icons"):
# if self.args['fmodstudio'] == 'ON':
# self.path("fmod.png")
# self.path("havok_logo.png")
# self.path("vivox_logo.png")
# </FS:Ansariel>
# Plugin host application
self.path2basename(os.path.join(os.pardir,
'llplugin', 'slplugin', self.args['configuration']),
@ -1334,15 +1325,6 @@ class DarwinManifest(ViewerManifest):
with self.prefix(src=pkgdir,dst=""):
self.path("ca-bundle.crt")
# <FS:Ansariel> [Progress Logos] Show logos on "About" floater instead
# # Copy 3p icons
# with self.prefix(src=os.path.join(pkgdir, "icons"), dst="3p_icons"):
# if self.args['fmodstudio'] == 'ON':
# self.path("fmod.png")
# self.path("havok_logo.png")
# self.path("vivox_logo.png")
# </FS:Ansariel>
icon_path = self.icon_path()
with self.prefix(src=icon_path) :
self.path("firestorm_icon.icns")
@ -2102,15 +2084,6 @@ class Linux_i686_Manifest(LinuxManifest):
relpkgdir = os.path.join(pkgdir, "lib", "release")
debpkgdir = os.path.join(pkgdir, "lib", "debug")
# <FS:Ansariel> [Progress Logos] Show logos on "About" floater instead
# # Copy 3p icons
# with self.prefix(src=os.path.join(pkgdir, "icons"), dst="3p_icons"):
# if self.args['fmodstudio'] == 'ON':
# self.path("fmod.png")
# self.path("havok_logo.png")
# self.path("vivox_logo.png")
# </FS:Ansariel>
with self.prefix(src=relpkgdir, dst="lib"):
self.path("libapr-1.so")
self.path("libapr-1.so.0")