Merge branch 'DRTVWR-508' of https://bitbucket.org/lindenlab/viewer
# Conflicts: # indra/llaudio/llaudioengine_fmodstudio.cpp # indra/newview/llprogressview.cpp # indra/newview/viewer_manifest.pymeow-7.2.2
commit
f22474724e
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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 |
|
|
@ -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 |
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
|
|
|
|||
Loading…
Reference in New Issue