aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--ChangeLog.txt58
-rw-r--r--linden/indra/llaudio/audioengine.h2
-rw-r--r--linden/indra/llmath/xform.h2
-rw-r--r--linden/indra/llmedia/llmediaimplgstreamer.cpp39
-rw-r--r--linden/indra/llmedia/llmediaimplgstreamer.h1
-rw-r--r--linden/indra/llmedia/llmediaobserver.h1
-rw-r--r--linden/indra/newview/app_settings/settings.xml22
-rw-r--r--linden/indra/newview/llmanipscale.cpp26
-rw-r--r--linden/indra/newview/llmanipscale.h3
-rw-r--r--linden/indra/newview/lloverlaybar.cpp49
-rw-r--r--linden/indra/newview/llpanelobject.cpp4
-rw-r--r--linden/indra/newview/llspatialpartition.cpp2
-rw-r--r--linden/indra/newview/llstartup.cpp1
-rw-r--r--linden/indra/newview/llviewermessage.cpp19
-rw-r--r--linden/indra/newview/llvoavatar.cpp4
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/floater_tools.xml6
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_preferences_audio.xml6
17 files changed, 215 insertions, 30 deletions
diff --git a/ChangeLog.txt b/ChangeLog.txt
index 8c1722a..ab8c1d7 100644
--- a/ChangeLog.txt
+++ b/ChangeLog.txt
@@ -1,3 +1,38 @@
12009-09-20 McCabe Maxsted <hakushakukun@gmail.com>
2
3 * Dynamically change max prim size depending upon LL/OpenSim grid (added setting for opensim detection: LoggedIntoOpenSim). OpenSim max is 128m.
4
5 modified: linden/indra/llmath/xform.h
6 modified: linden/indra/newview/app_settings/settings
7 modified: linden/indra/newview/llmanipscale.cpp
8 modified: linden/indra/newview/llmanipscale.h
9 modified: linden/indra/newview/llpanelobject.cpp
10 modified: linden/indra/newview/llviewermessage.cpp
11 modified: linden/indra/newview/skins/default/xui/en-us/floater_tools.xml
12
13
14 * Fixed inventory offers not avatar name (another RLVa bug).
15
16 modified: linden/indra/newview/llviewermessage.cpp
17
18
19 * Fixed group titles showing up as ?.
20
21 modified: linden/indra/newview/llvoavatar.cpp
22
23
24 * Added adult compliant flag.
25
26 modified: linden/indra/newview/llstartup.cpp
27
28
292009-09-18 McCabe Maxsted <hakushakukun@gmail.com>
30
31 * Applied patch by Aleric Inglewood for VWR-13996 - avatars using 1.22 completely invisible on first sight.
32
33 modified: linden/indra/newview/llspatialpartition.cpp
34
35
12009-09-16 McCabe Maxsted <hakushakukun@gmail.com> 362009-09-16 McCabe Maxsted <hakushakukun@gmail.com>
2 37
3 * Estate and track buttons now disable when they should, tweaked spacing. 38 * Estate and track buttons now disable when they should, tweaked spacing.
@@ -606,6 +641,29 @@
606 * Online/Offline notifications now always show in IM windows. 641 * Online/Offline notifications now always show in IM windows.
607 642
608 modified: linden/indra/newview/llcallingcard.cpp 643 modified: linden/indra/newview/llcallingcard.cpp
644
645
646 * Audio stream track info displayed in chat instead of notices.
647
648 modified: indra/newview/lloverlaybar.cpp
649
650
651 * Fixed stream info not updating.
652
653 modified: indra/llmedia/llmediaimplgstreamer.cpp
654
655
656 Dale Glass <email@unknown.com>
657
658 * VWR-12655: Add support for displaying the title of the song.
659
660 modified: indra/llaudio/audioengine.h
661 modified: indra/llmedia/llmediaimplgstreamer.cpp
662 modified: indra/llmedia/llmediaimplgstreamer.h
663 modified: indra/llmedia/llmediaobserver.h
664 modified: indra/newview/app_settings/settings.xml
665 modified: indra/newview/lloverlaybar.cpp
666 modified: indra/newview/skins/default/xui/en-us/panel_preferences_audio.xml
609 667
610 668
6112009-06-13 McCabe Maxsted <hakushakukun@gmail.com> 6692009-06-13 McCabe Maxsted <hakushakukun@gmail.com>
diff --git a/linden/indra/llaudio/audioengine.h b/linden/indra/llaudio/audioengine.h
index d289ba5..579f58f 100644
--- a/linden/indra/llaudio/audioengine.h
+++ b/linden/indra/llaudio/audioengine.h
@@ -182,6 +182,8 @@ public:
182 static void assetCallback(LLVFS *vfs, const LLUUID &uuid, LLAssetType::EType type, void *user_data, S32 result_code, LLExtStat ext_status); 182 static void assetCallback(LLVFS *vfs, const LLUUID &uuid, LLAssetType::EType type, void *user_data, S32 result_code, LLExtStat ext_status);
183 183
184 friend class LLPipeline; // For debugging 184 friend class LLPipeline; // For debugging
185
186 LLMediaBase * getStreamMedia() { return mInternetStreamMedia; }
185public: 187public:
186 F32 mMaxWindGain; // Hack. Public to set before fade in? 188 F32 mMaxWindGain; // Hack. Public to set before fade in?
187 189
diff --git a/linden/indra/llmath/xform.h b/linden/indra/llmath/xform.h
index 6f880cb..b41219c 100644
--- a/linden/indra/llmath/xform.h
+++ b/linden/indra/llmath/xform.h
@@ -37,7 +37,7 @@
37 37
38const F32 MAX_OBJECT_Z = 4096.f; // should match REGION_HEIGHT_METERS, Pre-havok4: 768.f 38const F32 MAX_OBJECT_Z = 4096.f; // should match REGION_HEIGHT_METERS, Pre-havok4: 768.f
39const F32 MIN_OBJECT_Z = -256.f; 39const F32 MIN_OBJECT_Z = -256.f;
40const F32 DEFAULT_MAX_PRIM_SCALE = 10.f; 40//const F32 DEFAULT_MAX_PRIM_SCALE = 10.f; set in llmanipscale.cpp now
41const F32 MIN_PRIM_SCALE = 0.01f; 41const F32 MIN_PRIM_SCALE = 0.01f;
42const F32 MAX_PRIM_SCALE = 65536.f; // something very high but not near FLT_MAX 42const F32 MAX_PRIM_SCALE = 65536.f; // something very high but not near FLT_MAX
43 43
diff --git a/linden/indra/llmedia/llmediaimplgstreamer.cpp b/linden/indra/llmedia/llmediaimplgstreamer.cpp
index d1bab29..a9e0004 100644
--- a/linden/indra/llmedia/llmediaimplgstreamer.cpp
+++ b/linden/indra/llmedia/llmediaimplgstreamer.cpp
@@ -89,6 +89,7 @@ LLMediaImplGStreamer () :
89 mPump ( NULL ), 89 mPump ( NULL ),
90 mPlaybin ( NULL ), 90 mPlaybin ( NULL ),
91 mVideoSink ( NULL ), 91 mVideoSink ( NULL ),
92 mLastTitle ( "" ),
92 mState( GST_STATE_NULL ), 93 mState( GST_STATE_NULL ),
93 mPlayThread ( NULL ) 94 mPlayThread ( NULL )
94{ 95{
@@ -470,6 +471,8 @@ gboolean LLMediaImplGStreamer::bus_callback(GstBus *bus, GstMessage *message, gp
470 case GST_STATE_PAUSED: 471 case GST_STATE_PAUSED:
471 break; 472 break;
472 case GST_STATE_PLAYING: 473 case GST_STATE_PLAYING:
474 //impl->mLastTitle = "";
475
473 LLMediaEvent event( impl, 100 ); 476 LLMediaEvent event( impl, 100 );
474 impl->getEventEmitter().update( &LLMediaObserver::onUpdateProgress, event ); 477 impl->getEventEmitter().update( &LLMediaObserver::onUpdateProgress, event );
475 // emit an event to say that a media source was loaded 478 // emit an event to say that a media source was loaded
@@ -521,18 +524,28 @@ gboolean LLMediaImplGStreamer::bus_callback(GstBus *bus, GstMessage *message, gp
521 } 524 }
522 case GST_MESSAGE_TAG: 525 case GST_MESSAGE_TAG:
523 { 526 {
524 GstTagList *tag_list; 527 GstTagList *new_tags;
525 gchar *title; 528
526 gchar *artist; 529 gst_message_parse_tag( message, &new_tags );
527 gst_message_parse_tag(message, &tag_list); 530
528 gboolean hazTitle = gst_tag_list_get_string(tag_list, 531 gchar *title;
529 GST_TAG_TITLE, &title); 532
530 gboolean hazArtist = gst_tag_list_get_string(tag_list, 533 if ( gst_tag_list_get_string(new_tags, GST_TAG_TITLE, &title) )
531 GST_TAG_ARTIST, &artist); 534 {
532 if(hazTitle) 535 LL_INFOS("MediaInfo") << "Title: " << title << LL_ENDL;
533 LL_INFOS("MediaInfo") << "Title: " << title << LL_ENDL; 536 std::string newtitle(title);
534 if(hazArtist) 537 gst_tag_list_free(new_tags);
535 LL_INFOS("MediaInfo") << "Artist: " << artist << LL_ENDL; 538
539 if ( newtitle != impl->mLastTitle && newtitle != "" )
540 {
541 impl->mLastTitle = newtitle;
542 LLMediaEvent event( impl, impl->mLastTitle );
543 impl->getEventEmitter().update( &LLMediaObserver::onMediaTitleChange, event );
544 }
545
546 g_free(title);
547 }
548
536 break; 549 break;
537 } 550 }
538 case GST_MESSAGE_EOS: 551 case GST_MESSAGE_EOS:
@@ -551,10 +564,10 @@ gboolean LLMediaImplGStreamer::bus_callback(GstBus *bus, GstMessage *message, gp
551 impl->addCommand(LLMediaBase::COMMAND_STOP); 564 impl->addCommand(LLMediaBase::COMMAND_STOP);
552 } 565 }
553 break; 566 break;
567 }
554 default: 568 default:
555 /* unhandled message */ 569 /* unhandled message */
556 break; 570 break;
557 }
558 } 571 }
559 /* we want to be notified again the next time there is a message 572 /* we want to be notified again the next time there is a message
560 * on the bus, so return true (false means we want to stop watching 573 * on the bus, so return true (false means we want to stop watching
diff --git a/linden/indra/llmedia/llmediaimplgstreamer.h b/linden/indra/llmedia/llmediaimplgstreamer.h
index baefdaf..51a8c37 100644
--- a/linden/indra/llmedia/llmediaimplgstreamer.h
+++ b/linden/indra/llmedia/llmediaimplgstreamer.h
@@ -127,6 +127,7 @@ class LLMediaImplGStreamer:
127 GMainLoop *mPump; // event pump for this media 127 GMainLoop *mPump; // event pump for this media
128 GstElement *mPlaybin; 128 GstElement *mPlaybin;
129 GstSLVideo *mVideoSink; 129 GstSLVideo *mVideoSink;
130 std::string mLastTitle;
130 GstState mState; 131 GstState mState;
131 GstState getState() const { return mState; } 132 GstState getState() const { return mState; }
132 133
diff --git a/linden/indra/llmedia/llmediaobserver.h b/linden/indra/llmedia/llmediaobserver.h
index e6da4f6..97fed5f 100644
--- a/linden/indra/llmedia/llmediaobserver.h
+++ b/linden/indra/llmedia/llmediaobserver.h
@@ -102,6 +102,7 @@ class LLMediaObserver
102 virtual void onMediaSizeChange( const EventType& event_in ) { } 102 virtual void onMediaSizeChange( const EventType& event_in ) { }
103 virtual void onMediaContentsChange( const EventType& event_in ) { } 103 virtual void onMediaContentsChange( const EventType& event_in ) { }
104 virtual void onMediaStatusTextChange( const EventType& event_in ) { } 104 virtual void onMediaStatusTextChange( const EventType& event_in ) { }
105 virtual void onMediaTitleChange( const EventType &event_in ) { }
105 virtual void onNavigateBegin( const EventType& event_in ) { } 106 virtual void onNavigateBegin( const EventType& event_in ) { }
106 virtual void onNavigateComplete( const EventType& event_in ) { } 107 virtual void onNavigateComplete( const EventType& event_in ) { }
107 virtual void onUpdateProgress( const EventType& event_in ) { } 108 virtual void onUpdateProgress( const EventType& event_in ) { }
diff --git a/linden/indra/newview/app_settings/settings.xml b/linden/indra/newview/app_settings/settings.xml
index 7ce7d11..f4d853b 100644
--- a/linden/indra/newview/app_settings/settings.xml
+++ b/linden/indra/newview/app_settings/settings.xml
@@ -4720,6 +4720,17 @@
4720 <key>Value</key> 4720 <key>Value</key>
4721 <integer>0</integer> 4721 <integer>0</integer>
4722 </map> 4722 </map>
4723 <key>LoggedIntoOpenSim</key>
4724 <map>
4725 <key>Comment</key>
4726 <string>Check whether or not we're in an OpenSimulator (default 0)</string>
4727 <key>Persist</key>
4728 <integer>1</integer>
4729 <key>Type</key>
4730 <string>Boolean</string>
4731 <key>Value</key>
4732 <integer>0</integer>
4733 </map>
4723 <key>LoginAsGod</key> 4734 <key>LoginAsGod</key>
4724 <map> 4735 <map>
4725 <key>Comment</key> 4736 <key>Comment</key>
@@ -7524,6 +7535,17 @@
7524 <key>Value</key> 7535 <key>Value</key>
7525 <integer>0</integer> 7536 <integer>0</integer>
7526 </map> 7537 </map>
7538 <key>ShowStreamTitle</key>
7539 <map>
7540 <key>Comment</key>
7541 <string>Show the title of the song playing on the parcel's stream</string>
7542 <key>Persist</key>
7543 <integer>1</integer>
7544 <key>Type</key>
7545 <string>Boolean</string>
7546 <key>Value</key>
7547 <integer>1</integer>
7548 </map>
7527 <key>ShowTangentBasis</key> 7549 <key>ShowTangentBasis</key>
7528 <map> 7550 <map>
7529 <key>Comment</key> 7551 <key>Comment</key>
diff --git a/linden/indra/newview/llmanipscale.cpp b/linden/indra/newview/llmanipscale.cpp
index 10cb0c3..5a67937 100644
--- a/linden/indra/newview/llmanipscale.cpp
+++ b/linden/indra/newview/llmanipscale.cpp
@@ -69,6 +69,8 @@ const F32 SNAP_GUIDE_SCREEN_LENGTH = 0.7f;
69const F32 SELECTED_MANIPULATOR_SCALE = 1.2f; 69const F32 SELECTED_MANIPULATOR_SCALE = 1.2f;
70const F32 MANIPULATOR_SCALE_HALF_LIFE = 0.07f; 70const F32 MANIPULATOR_SCALE_HALF_LIFE = 0.07f;
71const S32 NUM_MANIPULATORS = 14; 71const S32 NUM_MANIPULATORS = 14;
72const F32 DEFAULT_LL_MAX_PRIM_SCALE = 10.f;
73const F32 DEFAULT_OPENSIM_MAX_PRIM_SCALE = 128.f;
72 74
73const LLManip::EManipPart MANIPULATOR_IDS[NUM_MANIPULATORS] = 75const LLManip::EManipPart MANIPULATOR_IDS[NUM_MANIPULATORS] =
74{ 76{
@@ -173,6 +175,7 @@ LLManipScale::LLManipScale( LLToolComposite* composite )
173 mScaledBoxHandleSize( 1.f ), 175 mScaledBoxHandleSize( 1.f ),
174 mLastMouseX( -1 ), 176 mLastMouseX( -1 ),
175 mLastMouseY( -1 ), 177 mLastMouseY( -1 ),
178 mMaxPrimSize(0.f),
176 mSendUpdateOnMouseUp( FALSE ), 179 mSendUpdateOnMouseUp( FALSE ),
177 mLastUpdateFlags( 0 ), 180 mLastUpdateFlags( 0 ),
178 mScaleSnapUnit1(1.f), 181 mScaleSnapUnit1(1.f),
@@ -201,6 +204,7 @@ void LLManipScale::render()
201 LLGLDepthTest gls_depth(GL_TRUE); 204 LLGLDepthTest gls_depth(GL_TRUE);
202 LLGLEnable gl_blend(GL_BLEND); 205 LLGLEnable gl_blend(GL_BLEND);
203 LLGLEnable gls_alpha_test(GL_ALPHA_TEST); 206 LLGLEnable gls_alpha_test(GL_ALPHA_TEST);
207 mMaxPrimSize = gSavedSettings.getBOOL("LoggedIntoOpenSim") ? DEFAULT_OPENSIM_MAX_PRIM_SCALE : DEFAULT_LL_MAX_PRIM_SCALE;
204 208
205 if( canAffectSelection() ) 209 if( canAffectSelection() )
206 { 210 {
@@ -952,8 +956,8 @@ void LLManipScale::dragCorner( S32 x, S32 y )
952 mInSnapRegime = FALSE; 956 mInSnapRegime = FALSE;
953 } 957 }
954 958
955 F32 max_scale_factor = DEFAULT_MAX_PRIM_SCALE / MIN_PRIM_SCALE; 959 F32 max_scale_factor = mMaxPrimSize / MIN_PRIM_SCALE;
956 F32 min_scale_factor = MIN_PRIM_SCALE / DEFAULT_MAX_PRIM_SCALE; 960 F32 min_scale_factor = MIN_PRIM_SCALE / mMaxPrimSize;
957 961
958 // find max and min scale factors that will make biggest object hit max absolute scale and smallest object hit min absolute scale 962 // find max and min scale factors that will make biggest object hit max absolute scale and smallest object hit min absolute scale
959 for (LLObjectSelection::iterator iter = mObjectSelection->begin(); 963 for (LLObjectSelection::iterator iter = mObjectSelection->begin();
@@ -965,7 +969,7 @@ void LLManipScale::dragCorner( S32 x, S32 y )
965 { 969 {
966 const LLVector3& scale = selectNode->mSavedScale; 970 const LLVector3& scale = selectNode->mSavedScale;
967 971
968 F32 cur_max_scale_factor = llmin( DEFAULT_MAX_PRIM_SCALE / scale.mV[VX], DEFAULT_MAX_PRIM_SCALE / scale.mV[VY], DEFAULT_MAX_PRIM_SCALE / scale.mV[VZ] ); 972 F32 cur_max_scale_factor = llmin( mMaxPrimSize / scale.mV[VX], mMaxPrimSize / scale.mV[VY], mMaxPrimSize / scale.mV[VZ] );
969 max_scale_factor = llmin( max_scale_factor, cur_max_scale_factor ); 973 max_scale_factor = llmin( max_scale_factor, cur_max_scale_factor );
970 974
971 F32 cur_min_scale_factor = llmax( MIN_PRIM_SCALE / scale.mV[VX], MIN_PRIM_SCALE / scale.mV[VY], MIN_PRIM_SCALE / scale.mV[VZ] ); 975 F32 cur_min_scale_factor = llmax( MIN_PRIM_SCALE / scale.mV[VX], MIN_PRIM_SCALE / scale.mV[VY], MIN_PRIM_SCALE / scale.mV[VZ] );
@@ -1262,7 +1266,7 @@ void LLManipScale::stretchFace( const LLVector3& drag_start_agent, const LLVecto
1262 1266
1263 F32 denom = axis * dir_local; 1267 F32 denom = axis * dir_local;
1264 F32 desired_delta_size = is_approx_zero(denom) ? 0.f : (delta_local_mag / denom); // in meters 1268 F32 desired_delta_size = is_approx_zero(denom) ? 0.f : (delta_local_mag / denom); // in meters
1265 F32 desired_scale = llclamp(selectNode->mSavedScale.mV[axis_index] + desired_delta_size, MIN_PRIM_SCALE, DEFAULT_MAX_PRIM_SCALE); 1269 F32 desired_scale = llclamp(selectNode->mSavedScale.mV[axis_index] + desired_delta_size, MIN_PRIM_SCALE, mMaxPrimSize);
1266 // propagate scale constraint back to position offset 1270 // propagate scale constraint back to position offset
1267 desired_delta_size = desired_scale - selectNode->mSavedScale.mV[axis_index]; // propagate constraint back to position 1271 desired_delta_size = desired_scale - selectNode->mSavedScale.mV[axis_index]; // propagate constraint back to position
1268 1272
@@ -1962,7 +1966,7 @@ F32 LLManipScale::partToMaxScale( S32 part, const LLBBox &bbox ) const
1962 max_extent = bbox_extents.mV[i]; 1966 max_extent = bbox_extents.mV[i];
1963 } 1967 }
1964 } 1968 }
1965 max_scale_factor = bbox_extents.magVec() * DEFAULT_MAX_PRIM_SCALE / max_extent; 1969 max_scale_factor = bbox_extents.magVec() * mMaxPrimSize / max_extent;
1966 1970
1967 if (getUniform()) 1971 if (getUniform())
1968 { 1972 {
@@ -1977,7 +1981,7 @@ F32 LLManipScale::partToMinScale( S32 part, const LLBBox &bbox ) const
1977{ 1981{
1978 LLVector3 bbox_extents = unitVectorToLocalBBoxExtent( partToUnitVector( part ), bbox ); 1982 LLVector3 bbox_extents = unitVectorToLocalBBoxExtent( partToUnitVector( part ), bbox );
1979 bbox_extents.abs(); 1983 bbox_extents.abs();
1980 F32 min_extent = DEFAULT_MAX_PRIM_SCALE; 1984 F32 min_extent = mMaxPrimSize;
1981 for (U32 i = VX; i <= VZ; i++) 1985 for (U32 i = VX; i <= VZ; i++)
1982 { 1986 {
1983 if (bbox_extents.mV[i] > 0.f && bbox_extents.mV[i] < min_extent) 1987 if (bbox_extents.mV[i] > 0.f && bbox_extents.mV[i] < min_extent)
@@ -2052,3 +2056,13 @@ BOOL LLManipScale::canAffectSelection()
2052 } 2056 }
2053 return can_scale; 2057 return can_scale;
2054} 2058}
2059
2060//static
2061F32 LLManipScale::getMaxPrimSize()
2062{
2063 if (gSavedSettings.getBOOL("LoggedIntoOpenSim"))
2064 {
2065 return DEFAULT_OPENSIM_MAX_PRIM_SCALE;
2066 }
2067 return DEFAULT_LL_MAX_PRIM_SCALE;
2068}
diff --git a/linden/indra/newview/llmanipscale.h b/linden/indra/newview/llmanipscale.h
index 98d8c63..c60cb69 100644
--- a/linden/indra/newview/llmanipscale.h
+++ b/linden/indra/newview/llmanipscale.h
@@ -88,6 +88,8 @@ public:
88 static void setShowAxes( BOOL b ); 88 static void setShowAxes( BOOL b );
89 static BOOL getShowAxes(); 89 static BOOL getShowAxes();
90 90
91 static F32 getMaxPrimSize();
92
91private: 93private:
92 void renderCorners( const LLBBox& local_bbox ); 94 void renderCorners( const LLBBox& local_bbox );
93 void renderFaces( const LLBBox& local_bbox ); 95 void renderFaces( const LLBBox& local_bbox );
@@ -165,6 +167,7 @@ private:
165 F32 mScaleSnapValue; 167 F32 mScaleSnapValue;
166 BOOL mInSnapRegime; 168 BOOL mInSnapRegime;
167 F32* mManipulatorScales; 169 F32* mManipulatorScales;
170 F32 mMaxPrimSize;
168}; 171};
169 172
170#endif // LL_MANIPSCALE_H 173#endif // LL_MANIPSCALE_H
diff --git a/linden/indra/newview/lloverlaybar.cpp b/linden/indra/newview/lloverlaybar.cpp
index 12c001e..c1a2354 100644
--- a/linden/indra/newview/lloverlaybar.cpp
+++ b/linden/indra/newview/lloverlaybar.cpp
@@ -41,6 +41,7 @@
41#include "llagent.h" 41#include "llagent.h"
42#include "llbutton.h" 42#include "llbutton.h"
43#include "llchatbar.h" 43#include "llchatbar.h"
44#include "llfloaterchat.h"
44#include "llfocusmgr.h" 45#include "llfocusmgr.h"
45#include "llimview.h" 46#include "llimview.h"
46#include "llmediaremotectrl.h" 47#include "llmediaremotectrl.h"
@@ -73,6 +74,53 @@ LLOverlayBar *gOverlayBar = NULL;
73 74
74extern S32 MENU_BAR_HEIGHT; 75extern S32 MENU_BAR_HEIGHT;
75 76
77
78class LLTitleObserver
79 : public LLMediaObserver
80{
81public:
82 void init(std::string url);
83 /*virtual*/ void onMediaTitleChange(const EventType& event_in);
84private:
85 LLMediaBase* mMediaSource;
86};
87
88static LLTitleObserver sTitleObserver;
89
90static LLRegisterWidget<LLMediaRemoteCtrl> r("media_remote");
91
92void LLTitleObserver::init(std::string url)
93{
94
95 if (!gAudiop)
96 {
97 return;
98 }
99
100 mMediaSource = gAudiop->getStreamMedia(); // LLViewerMedia::getSource();
101
102 if ( mMediaSource )
103 {
104 mMediaSource->addObserver(this);
105 }
106}
107
108//virtual
109void LLTitleObserver::onMediaTitleChange(const EventType& event_in)
110{
111 if ( !gSavedSettings.getBOOL("ShowStreamTitle") )
112 {
113 return;
114 }
115
116 LLChat chat;
117 //TODO: set this in XUI
118 std::string playing_msg = "Playing: " + event_in.getStringValue();
119 chat.mText = playing_msg;
120 LLFloaterChat::addChat(chat, FALSE, FALSE);
121}
122
123
76// 124//
77// Functions 125// Functions
78// 126//
@@ -429,6 +477,7 @@ void LLOverlayBar::toggleMusicPlay(void*)
429 // if ( gAudiop->isInternetStreamPlaying() == 0 ) 477 // if ( gAudiop->isInternetStreamPlaying() == 0 )
430 { 478 {
431 gAudiop->startInternetStream(parcel->getMusicURL()); 479 gAudiop->startInternetStream(parcel->getMusicURL());
480 sTitleObserver.init(parcel->getMusicURL());
432 } 481 }
433 } 482 }
434 } 483 }
diff --git a/linden/indra/newview/llpanelobject.cpp b/linden/indra/newview/llpanelobject.cpp
index dd71a0e..9dcf410 100644
--- a/linden/indra/newview/llpanelobject.cpp
+++ b/linden/indra/newview/llpanelobject.cpp
@@ -631,6 +631,10 @@ void LLPanelObject::getState( )
631 } 631 }
632 else 632 else
633 { 633 {
634 mCtrlScaleX->setMaxValue(LLManipScale::getMaxPrimSize());
635 mCtrlScaleY->setMaxValue(LLManipScale::getMaxPrimSize());
636 mCtrlScaleZ->setMaxValue(LLManipScale::getMaxPrimSize());
637
634 // Only allowed to change these parameters for objects 638 // Only allowed to change these parameters for objects
635 // that you have permissions on AND are not attachments. 639 // that you have permissions on AND are not attachments.
636 enabled = root_objectp->permModify(); 640 enabled = root_objectp->permModify();
diff --git a/linden/indra/newview/llspatialpartition.cpp b/linden/indra/newview/llspatialpartition.cpp
index 127fca2..cdca5d5 100644
--- a/linden/indra/newview/llspatialpartition.cpp
+++ b/linden/indra/newview/llspatialpartition.cpp
@@ -563,7 +563,7 @@ void LLSpatialGroup::rebuildGeom()
563 563
564void LLSpatialPartition::rebuildGeom(LLSpatialGroup* group) 564void LLSpatialPartition::rebuildGeom(LLSpatialGroup* group)
565{ 565{
566 if (group->changeLOD()) 566 if (!LLPipeline::sSkipUpdate && group->changeLOD())
567 { 567 {
568 group->mLastUpdateDistance = group->mDistance; 568 group->mLastUpdateDistance = group->mDistance;
569 group->mLastUpdateViewAngle = group->mViewAngle; 569 group->mLastUpdateViewAngle = group->mViewAngle;
diff --git a/linden/indra/newview/llstartup.cpp b/linden/indra/newview/llstartup.cpp
index 8d5aa9e..ea08298 100644
--- a/linden/indra/newview/llstartup.cpp
+++ b/linden/indra/newview/llstartup.cpp
@@ -1025,6 +1025,7 @@ bool idle_startup()
1025 requested_options.push_back("event_categories"); 1025 requested_options.push_back("event_categories");
1026 requested_options.push_back("event_notifications"); 1026 requested_options.push_back("event_notifications");
1027 requested_options.push_back("classified_categories"); 1027 requested_options.push_back("classified_categories");
1028 requested_options.push_back("adult_compliant");
1028 //requested_options.push_back("inventory-targets"); 1029 //requested_options.push_back("inventory-targets");
1029 requested_options.push_back("buddy-list"); 1030 requested_options.push_back("buddy-list");
1030 requested_options.push_back("ui-config"); 1031 requested_options.push_back("ui-config");
diff --git a/linden/indra/newview/llviewermessage.cpp b/linden/indra/newview/llviewermessage.cpp
index e326dac..d5d9324 100644
--- a/linden/indra/newview/llviewermessage.cpp
+++ b/linden/indra/newview/llviewermessage.cpp
@@ -1266,7 +1266,7 @@ void inventory_offer_handler(LLOfferInfo* info, BOOL from_task)
1266 if (gCacheName->getName(info->mFromID, first_name, last_name)) 1266 if (gCacheName->getName(info->mFromID, first_name, last_name))
1267 { 1267 {
1268// [RLVa:KB] - Version: 1.22.11 | Checked: 2009-07-08 (RLVa-1.0.0e) 1268// [RLVa:KB] - Version: 1.22.11 | Checked: 2009-07-08 (RLVa-1.0.0e)
1269 if ( (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) && (gRlvHandler.isAgentNearby(info->mFromID)) ) 1269 if ( (rlv_handler_t::isEnabled()) && (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) && (gRlvHandler.isAgentNearby(info->mFromID)) )
1270 { 1270 {
1271 first_name = gRlvHandler.getAnonym(first_name.append(" ").append(last_name)); 1271 first_name = gRlvHandler.getAnonym(first_name.append(" ").append(last_name));
1272 last_name.clear(); 1272 last_name.clear();
@@ -1287,12 +1287,15 @@ void inventory_offer_handler(LLOfferInfo* info, BOOL from_task)
1287 { 1287 {
1288 // *TODO:translate -> [FIRST] [LAST] 1288 // *TODO:translate -> [FIRST] [LAST]
1289// [RLVa:KB] - Version: 1.22.11 | Checked: 2009-07-08 (RLVa-1.0.0e) 1289// [RLVa:KB] - Version: 1.22.11 | Checked: 2009-07-08 (RLVa-1.0.0e)
1290 if ( (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) && (gRlvHandler.isAgentNearby(info->mFromID)) ) 1290 if ( (rlv_handler_t::isEnabled()) && (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) && (gRlvHandler.isAgentNearby(info->mFromID)) )
1291 { 1291 {
1292 args["[NAME]"] = gRlvHandler.getAnonym(info->mFromName); 1292 args["[NAME]"] = gRlvHandler.getAnonym(info->mFromName);
1293 } 1293 }
1294// [/RLVa:KB] 1294// [/RLVa:KB]
1295 //args["[NAME]"] = info->mFromName; 1295 else
1296 {
1297 args["[NAME]"] = info->mFromName;
1298 }
1296 LLNotifyBox::showXml("UserGiveItem", args, 1299 LLNotifyBox::showXml("UserGiveItem", args,
1297 &inventory_offer_callback, (void*)info); 1300 &inventory_offer_callback, (void*)info);
1298 } 1301 }
@@ -3152,6 +3155,7 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**)
3152 3155
3153 // If the server version has changed, display an info box and offer 3156 // If the server version has changed, display an info box and offer
3154 // to display the release notes, unless this is the initial log in. 3157 // to display the release notes, unless this is the initial log in.
3158 // Also verify we're on an OpenSimulator here.
3155 if (gLastVersionChannel == version_channel) 3159 if (gLastVersionChannel == version_channel)
3156 { 3160 {
3157 return; 3161 return;
@@ -3163,6 +3167,15 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**)
3163 "ServerVersionChanged", display_release_notes, NULL); 3167 "ServerVersionChanged", display_release_notes, NULL);
3164 } 3168 }
3165 3169
3170 if (version_channel.find("OpenSim") != std::string::npos)
3171 {
3172 gSavedSettings.setBOOL("LoggedIntoOpenSim", TRUE);
3173 }
3174 else
3175 {
3176 gSavedSettings.setBOOL("LoggedIntoOpenSim", FALSE);
3177 }
3178
3166 gLastVersionChannel = version_channel; 3179 gLastVersionChannel = version_channel;
3167} 3180}
3168 3181
diff --git a/linden/indra/newview/llvoavatar.cpp b/linden/indra/newview/llvoavatar.cpp
index 158977e..24272d8 100644
--- a/linden/indra/newview/llvoavatar.cpp
+++ b/linden/indra/newview/llvoavatar.cpp
@@ -3261,7 +3261,7 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last)
3261 if (title && title->getString() && title->getString()[0] != '\0') 3261 if (title && title->getString() && title->getString()[0] != '\0')
3262 { 3262 {
3263 line += title->getString(); 3263 line += title->getString();
3264 LLStringFn::replace_nonprintable(line,LL_UNKNOWN_CHAR); 3264 //LLStringFn::replace_nonprintable(line,LL_UNKNOWN_CHAR); IMP-136 -- MC
3265 line += "\n"; 3265 line += "\n";
3266 line += firstname->getString(); 3266 line += firstname->getString();
3267 } 3267 }
@@ -3321,7 +3321,7 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last)
3321 mNameMute = is_muted; 3321 mNameMute = is_muted;
3322 mNameAppearance = is_appearance; 3322 mNameAppearance = is_appearance;
3323 mTitle = title ? title->getString() : ""; 3323 mTitle = title ? title->getString() : "";
3324 LLStringFn::replace_nonprintable(mTitle,LL_UNKNOWN_CHAR); 3324 //LLStringFn::replace_nonprintable(mTitle,LL_UNKNOWN_CHAR); IMP-136 -- MC
3325 mNameString = utf8str_to_wstring(line); 3325 mNameString = utf8str_to_wstring(line);
3326 new_name = TRUE; 3326 new_name = TRUE;
3327 } 3327 }
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml b/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml
index bc18f44..a57c568 100644
--- a/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml
@@ -660,15 +660,15 @@
660 </text> 660 </text>
661 <spinner bottom_delta="-20" decimal_digits="3" follows="left|top" height="16" 661 <spinner bottom_delta="-20" decimal_digits="3" follows="left|top" height="16"
662 increment="0.01" initial_val="0" label="X" label_width="10" left="10" 662 increment="0.01" initial_val="0" label="X" label_width="10" left="10"
663 max_val="10" min_val="0.01" mouse_opaque="true" name="Scale X" 663 min_val="0.01" mouse_opaque="true" name="Scale X"
664 text_enabled_color="1, 1, 1, 1" width="96" /> 664 text_enabled_color="1, 1, 1, 1" width="96" />
665 <spinner bottom_delta="-18" decimal_digits="3" follows="left|top" height="16" 665 <spinner bottom_delta="-18" decimal_digits="3" follows="left|top" height="16"
666 increment="0.01" initial_val="0" label="Y" label_width="10" left="10" 666 increment="0.01" initial_val="0" label="Y" label_width="10" left="10"
667 max_val="10" min_val="0.01" mouse_opaque="true" name="Scale Y" 667 min_val="0.01" mouse_opaque="true" name="Scale Y"
668 text_enabled_color="1, 1, 1, 1" width="96" /> 668 text_enabled_color="1, 1, 1, 1" width="96" />
669 <spinner bottom_delta="-18" decimal_digits="3" follows="left|top" height="16" 669 <spinner bottom_delta="-18" decimal_digits="3" follows="left|top" height="16"
670 increment="0.01" initial_val="0" label="Z" label_width="10" left="10" 670 increment="0.01" initial_val="0" label="Z" label_width="10" left="10"
671 max_val="10" min_val="0.01" mouse_opaque="true" name="Scale Z" 671 min_val="0.01" mouse_opaque="true" name="Scale Z"
672 text_enabled_color="1, 1, 1, 1" width="96" /> 672 text_enabled_color="1, 1, 1, 1" width="96" />
673 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 673 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
674 bottom_delta="-16" drop_shadow_visible="true" follows="left|top" 674 bottom_delta="-16" drop_shadow_visible="true" follows="left|top"
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_audio.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_audio.xml
index 92978ab..c960d36 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_audio.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_audio.xml
@@ -15,7 +15,7 @@
15 Streaming Preferences: 15 Streaming Preferences:
16 </text> 16 </text>
17 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 17 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
18 bottom="-280" drop_shadow_visible="true" enabled="true" follows="left|top" 18 bottom="-300" drop_shadow_visible="true" enabled="true" follows="left|top"
19 font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" 19 font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10"
20 mouse_opaque="true" name="audio_prefs_text" v_pad="0" width="128"> 20 mouse_opaque="true" name="audio_prefs_text" v_pad="0" width="128">
21 Audio Preferences: 21 Audio Preferences:
@@ -28,6 +28,10 @@
28 label="Play Streaming Music When Available (uses more bandwidth)" 28 label="Play Streaming Music When Available (uses more bandwidth)"
29 left="142" mouse_opaque="true" name="streaming_music" radio_style="false" 29 left="142" mouse_opaque="true" name="streaming_music" radio_style="false"
30 width="339" /> 30 width="339" />
31 <check_box bottom_delta="-20" control_name="ShowStreamTitle" enabled="true"
32 follows="left|top" font="SansSerifSmall" height="16" initial_value="true"
33 label="Show stream info in chat" left="162" mouse_opaque="true"
34 name="show_stream_title" radio_style="false" width="338" />
31 <check_box bottom_delta="-20" control_name="AudioStreamingVideo" enabled="true" 35 <check_box bottom_delta="-20" control_name="AudioStreamingVideo" enabled="true"
32 follows="left|top" font="SansSerifSmall" height="16" initial_value="true" 36 follows="left|top" font="SansSerifSmall" height="16" initial_value="true"
33 label="Play Streaming Media When Available (uses more bandwidth)" 37 label="Play Streaming Media When Available (uses more bandwidth)"