diff options
Diffstat (limited to '')
-rw-r--r-- | linden/indra/newview/lloverlaybar.cpp | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/linden/indra/newview/lloverlaybar.cpp b/linden/indra/newview/lloverlaybar.cpp index 91ac440..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" |
@@ -62,6 +63,7 @@ | |||
62 | #include "llvoavatar.h" | 63 | #include "llvoavatar.h" |
63 | #include "llvoiceremotectrl.h" | 64 | #include "llvoiceremotectrl.h" |
64 | #include "llwebbrowserctrl.h" | 65 | #include "llwebbrowserctrl.h" |
66 | #include "llwindlightremotectrl.h" | ||
65 | #include "llselectmgr.h" | 67 | #include "llselectmgr.h" |
66 | 68 | ||
67 | // | 69 | // |
@@ -72,6 +74,53 @@ LLOverlayBar *gOverlayBar = NULL; | |||
72 | 74 | ||
73 | extern S32 MENU_BAR_HEIGHT; | 75 | extern S32 MENU_BAR_HEIGHT; |
74 | 76 | ||
77 | |||
78 | class LLTitleObserver | ||
79 | : public LLMediaObserver | ||
80 | { | ||
81 | public: | ||
82 | void init(std::string url); | ||
83 | /*virtual*/ void onMediaTitleChange(const EventType& event_in); | ||
84 | private: | ||
85 | LLMediaBase* mMediaSource; | ||
86 | }; | ||
87 | |||
88 | static LLTitleObserver sTitleObserver; | ||
89 | |||
90 | static LLRegisterWidget<LLMediaRemoteCtrl> r("media_remote"); | ||
91 | |||
92 | void 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 | ||
109 | void 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 | |||
75 | // | 124 | // |
76 | // Functions | 125 | // Functions |
77 | // | 126 | // |
@@ -92,6 +141,13 @@ void* LLOverlayBar::createVoiceRemote(void* userdata) | |||
92 | return self->mVoiceRemote; | 141 | return self->mVoiceRemote; |
93 | } | 142 | } |
94 | 143 | ||
144 | void* LLOverlayBar::createWindlightRemote(void* userdata) | ||
145 | { | ||
146 | LLOverlayBar *self = (LLOverlayBar*)userdata; | ||
147 | self->mWindlightRemote = new LLWindlightRemoteCtrl(); | ||
148 | return self->mWindlightRemote; | ||
149 | } | ||
150 | |||
95 | void* LLOverlayBar::createChatBar(void* userdata) | 151 | void* LLOverlayBar::createChatBar(void* userdata) |
96 | { | 152 | { |
97 | gChatBar = new LLChatBar(); | 153 | gChatBar = new LLChatBar(); |
@@ -102,6 +158,7 @@ LLOverlayBar::LLOverlayBar() | |||
102 | : LLPanel(), | 158 | : LLPanel(), |
103 | mMediaRemote(NULL), | 159 | mMediaRemote(NULL), |
104 | mVoiceRemote(NULL), | 160 | mVoiceRemote(NULL), |
161 | mWindlightRemote(NULL), | ||
105 | mMusicState(STOPPED), | 162 | mMusicState(STOPPED), |
106 | mOriginalIMLabel("") | 163 | mOriginalIMLabel("") |
107 | { | 164 | { |
@@ -113,6 +170,7 @@ LLOverlayBar::LLOverlayBar() | |||
113 | LLCallbackMap::map_t factory_map; | 170 | LLCallbackMap::map_t factory_map; |
114 | factory_map["media_remote"] = LLCallbackMap(LLOverlayBar::createMediaRemote, this); | 171 | factory_map["media_remote"] = LLCallbackMap(LLOverlayBar::createMediaRemote, this); |
115 | factory_map["voice_remote"] = LLCallbackMap(LLOverlayBar::createVoiceRemote, this); | 172 | factory_map["voice_remote"] = LLCallbackMap(LLOverlayBar::createVoiceRemote, this); |
173 | factory_map["windlight_remote"] = LLCallbackMap(LLOverlayBar::createWindlightRemote, this); | ||
116 | factory_map["chat_bar"] = LLCallbackMap(LLOverlayBar::createChatBar, this); | 174 | factory_map["chat_bar"] = LLCallbackMap(LLOverlayBar::createChatBar, this); |
117 | 175 | ||
118 | LLUICtrlFactory::getInstance()->buildPanel(this, "panel_overlaybar.xml", &factory_map); | 176 | LLUICtrlFactory::getInstance()->buildPanel(this, "panel_overlaybar.xml", &factory_map); |
@@ -272,6 +330,7 @@ void LLOverlayBar::refresh() | |||
272 | } | 330 | } |
273 | 331 | ||
274 | 332 | ||
333 | moveChildToBackOfTabGroup(mWindlightRemote); | ||
275 | moveChildToBackOfTabGroup(mMediaRemote); | 334 | moveChildToBackOfTabGroup(mMediaRemote); |
276 | moveChildToBackOfTabGroup(mVoiceRemote); | 335 | moveChildToBackOfTabGroup(mVoiceRemote); |
277 | 336 | ||
@@ -280,6 +339,7 @@ void LLOverlayBar::refresh() | |||
280 | { | 339 | { |
281 | childSetVisible("media_remote_container", FALSE); | 340 | childSetVisible("media_remote_container", FALSE); |
282 | childSetVisible("voice_remote_container", FALSE); | 341 | childSetVisible("voice_remote_container", FALSE); |
342 | childSetVisible("windlight_remote_container", FALSE); | ||
283 | childSetVisible("state_buttons", FALSE); | 343 | childSetVisible("state_buttons", FALSE); |
284 | } | 344 | } |
285 | else | 345 | else |
@@ -287,6 +347,7 @@ void LLOverlayBar::refresh() | |||
287 | // update "remotes" | 347 | // update "remotes" |
288 | childSetVisible("media_remote_container", TRUE); | 348 | childSetVisible("media_remote_container", TRUE); |
289 | childSetVisible("voice_remote_container", LLVoiceClient::voiceEnabled()); | 349 | childSetVisible("voice_remote_container", LLVoiceClient::voiceEnabled()); |
350 | childSetVisible("windlight_remote_container", gSavedSettings.getBOOL("EnableWindlightRemote")); | ||
290 | childSetVisible("state_buttons", TRUE); | 351 | childSetVisible("state_buttons", TRUE); |
291 | } | 352 | } |
292 | 353 | ||
@@ -416,6 +477,7 @@ void LLOverlayBar::toggleMusicPlay(void*) | |||
416 | // if ( gAudiop->isInternetStreamPlaying() == 0 ) | 477 | // if ( gAudiop->isInternetStreamPlaying() == 0 ) |
417 | { | 478 | { |
418 | gAudiop->startInternetStream(parcel->getMusicURL()); | 479 | gAudiop->startInternetStream(parcel->getMusicURL()); |
480 | sTitleObserver.init(parcel->getMusicURL()); | ||
419 | } | 481 | } |
420 | } | 482 | } |
421 | } | 483 | } |