// public void LLPanelLandAudio::refresh() { LLParcel *parcel = mParcel->getParcel(); if (!parcel) { clearCtrls(); } else { // something selected, hooray! // Display options BOOL can_change_media = LLViewerParcelMgr::isParcelModifiableByAgent(parcel, GP_LAND_CHANGE_MEDIA); mCheckSoundLocal->set( parcel->getSoundLocal() ); mCheckSoundLocal->setEnabled( can_change_media ); mMusicUrlCheck->set( parcel->getObscureMusic() ); mMusicUrlCheck->setEnabled( can_change_media ); bool allow_voice = parcel->getParcelFlagAllowVoice(); LLViewerRegion* region = LLViewerParcelMgr::getInstance()->getSelectionRegion(); if (region && region->isVoiceEnabled()) { mCheckEstateDisabledVoice->setVisible(false); mCheckParcelEnableVoice->setVisible(true); mCheckParcelEnableVoice->setEnabled( can_change_media ); mCheckParcelEnableVoice->set(allow_voice); mCheckParcelVoiceLocal->setEnabled( can_change_media && allow_voice ); } else { // Voice disabled at estate level, overrides parcel settings // Replace the parcel voice checkbox with a disabled one // labelled with an explanatory message mCheckEstateDisabledVoice->setVisible(true); mCheckParcelEnableVoice->setVisible(false); mCheckParcelEnableVoice->setEnabled(false); mCheckParcelVoiceLocal->setEnabled(false); } mCheckParcelEnableVoice->set(allow_voice); mCheckParcelVoiceLocal->set(!parcel->getParcelFlagUseEstateVoiceChannel()); // don't display urls if you're not able to change it // much requested change in forums so people can't 'steal' urls // NOTE: bug#2009 means this is still vunerable - however, bug // should be closed since this bug opens up major security issues elsewhere. bool obscure_music = ! can_change_media && parcel->getObscureMusic(); mMusicURLEdit->setDrawAsterixes(obscure_music); mMusicURLEdit->setText(parcel->getMusicURL()); mMusicURLEdit->setEnabled( can_change_media ); } }
// public void LLPanelLandAudio::refresh() { LLParcel *parcel = mParcel->getParcel(); if (!parcel) { clearCtrls(); } else { // something selected, hooray! // Display options BOOL can_change_media = LLViewerParcelMgr::isParcelModifiableByAgent(parcel, GP_LAND_CHANGE_MEDIA); mCheckSoundLocal->set( parcel->getSoundLocal() ); mCheckSoundLocal->setEnabled( can_change_media ); bool allow_voice = parcel->getParcelFlagAllowVoice(); LLViewerRegion* region = LLViewerParcelMgr::getInstance()->getSelectionRegion(); if (region && region->isVoiceEnabled()) { mCheckEstateDisabledVoice->setVisible(false); mCheckParcelEnableVoice->setVisible(true); mCheckParcelEnableVoice->setEnabled( can_change_media ); mCheckParcelEnableVoice->set(allow_voice); mCheckParcelVoiceLocal->setEnabled( can_change_media && allow_voice ); } else { // Voice disabled at estate level, overrides parcel settings // Replace the parcel voice checkbox with a disabled one // labelled with an explanatory message mCheckEstateDisabledVoice->setVisible(true); mCheckParcelEnableVoice->setVisible(false); mCheckParcelEnableVoice->setEnabled(false); mCheckParcelVoiceLocal->setEnabled(false); } mCheckParcelEnableVoice->set(allow_voice); mCheckParcelVoiceLocal->set(!parcel->getParcelFlagUseEstateVoiceChannel()); mMusicURLEdit->setText(parcel->getMusicURL()); mMusicURLEdit->setEnabled( can_change_media ); BOOL can_change_av_sounds = LLViewerParcelMgr::isParcelModifiableByAgent(parcel, GP_LAND_OPTIONS) && parcel->getHaveNewParcelLimitData(); mCheckAVSoundAny->set(parcel->getAllowAnyAVSounds()); mCheckAVSoundAny->setEnabled(can_change_av_sounds); mCheckAVSoundGroup->set(parcel->getAllowGroupAVSounds() || parcel->getAllowAnyAVSounds()); // On if "Everyone" is on mCheckAVSoundGroup->setEnabled(can_change_av_sounds && !parcel->getAllowAnyAVSounds()); // Enabled if "Everyone" is off } }
void LLOverlayBar::onPlayButtonPressed( const LLMediaRemoteCtrlObserver::EventType& eventIn ) { LLUICtrl* control = eventIn.getControl (); LLParcel* parcel = gParcelMgr->getAgentParcel(); if ( control == mMusicRemote ) { if (gAudiop) { if ( parcel ) { // this doesn't work properly when crossing parcel boundaries - even when the // stream is stopped, it doesn't return the right thing - commenting out for now. //if ( gAudiop->isInternetStreamPlaying() == 0 ) //{ const char* music_url = parcel->getMusicURL(); gAudiop->startInternetStream(music_url); mMusicRemote->setTransportState ( LLMediaRemoteCtrl::Play, FALSE ); //} } }; // CP: this is the old way of doing things (click play each time on a parcel to start stream) //if (gAudiop) //{ // if (gAudiop->isInternetStreamPlaying() > 0) // { // gAudiop->pauseInternetStream ( 0 ); // } // else // { // if (parcel) // { // const char* music_url = parcel->getMusicURL(); // gAudiop->startInternetStream(music_url); // } // } //}; //mMusicRemote->setTransportState ( LLMediaRemoteCtrl::Stop, FALSE ); } else if ( control == mMediaRemote ) { LLParcel* parcel = gParcelMgr->getAgentParcel(); if (parcel) { LLString path( "" ); LLMediaEngine::getInstance ()->convertImageAndLoadUrl( true, false, path ); mMediaRemote->setTransportState ( LLMediaRemoteCtrl::Play, TRUE ); } }; }
void LLViewerAudio::onTeleportFailed() { if (gAudiop) { LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); if (parcel) { mNextStreamURI = parcel->getMusicURL(); } } }
void LLViewerAudio::onTeleportFinished(const LLVector3d& pos, const bool& local) { // Calling audio_update_volume makes sure that the music stream is properly set to be restored to // its previous value audio_update_volume(false); if (gAudiop && local && mWasPlaying) { LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); if (parcel) { mNextStreamURI = parcel->getMusicURL(); llinfos << "Intraparcel teleport -- setting music stream to " << mNextStreamURI << llendl; } } mWasPlaying = false; }
// public void LLPanelLandAudio::refresh() { LLParcel *parcel = mParcel->getParcel(); if (!parcel) { clearCtrls(); } else { // something selected, hooray! // Display options BOOL can_change_media = LLViewerParcelMgr::isParcelModifiableByAgent(parcel, GP_LAND_CHANGE_MEDIA); mMusicURLEdit->setText(parcel->getMusicURL()); mMusicURLEdit->setEnabled( can_change_media ); mMusicUrlCheck->set( parcel->getObscureMusic() ); mMusicUrlCheck->setEnabled( can_change_media ); bool obscure_music = ! can_change_media && parcel->getObscureMusic(); mMusicURLEdit->setDrawAsterixes( obscure_music ); mCheckSoundLocal->set( parcel->getSoundLocal() ); mCheckSoundLocal->setEnabled( can_change_media ); if(parcel->getParcelFlagAllowVoice()) { if(parcel->getParcelFlagUseEstateVoiceChannel()) mRadioVoiceChat->setSelectedIndex(kRadioVoiceChatEstate); else mRadioVoiceChat->setSelectedIndex(kRadioVoiceChatPrivate); } else { mRadioVoiceChat->setSelectedIndex(kRadioVoiceChatDisable); } LLViewerRegion* region = LLViewerParcelMgr::getInstance()->getSelectionRegion(); mRadioVoiceChat->setEnabled( region && region->isVoiceEnabled() && can_change_media ); } }
//static void LLOverlayBar::toggleMusicPlay(void*) { if (!gOverlayBar) { return; } if (gOverlayBar->mMusicState != PLAYING) { gOverlayBar->mMusicState = PLAYING; // desired state if (gAudiop) { LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); if ( parcel ) { // this doesn't work properly when crossing parcel boundaries - even when the // stream is stopped, it doesn't return the right thing - commenting out for now. // if ( gAudiop->isInternetStreamPlaying() == 0 ) { gAudiop->startInternetStream(parcel->getMusicURL()); } } } } //else //{ // gOverlayBar->mMusicState = PAUSED; // desired state // if (gAudiop) // { // gAudiop->pauseInternetStream(1); // } //} else { gOverlayBar->mMusicState = STOPPED; // desired state if (gAudiop) { gAudiop->stopInternetStream(); } } }
void LLMediaRemoteCtrl::enableMediaButtons() { // Media bool play_media_enabled = false; bool stop_media_enabled = false; bool play_music_enabled = false; bool stop_music_enabled = false; bool music_show_pause = false; bool media_show_pause = false; static LLCachedControl<LLColor4U> sIconDisabledColor(gColors, "IconDisabledColor"); LLColor4 music_icon_color = (LLColor4)sIconDisabledColor; LLColor4 media_icon_color = (LLColor4)sIconDisabledColor; std::string media_type = "none/none"; // Put this in xui file std::string media_url = mControls->getString("default_tooltip_label"); LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); if (gSavedSettings.getBOOL("AudioStreamingVideo")) { if ( parcel && !parcel->getMediaURL().empty()) { // Set the tooltip // Put this text into xui file media_url = parcel->getMediaURL(); media_type = parcel->getMediaType(); play_media_enabled = true; media_icon_color = LLUI::sColorsGroup->getColor( "IconEnabledColor" ); LLViewerMediaImpl::EMediaStatus status = LLViewerParcelMedia::getStatus(); switch(status) { case LLViewerMediaImpl::MEDIA_NONE: media_show_pause = false; stop_media_enabled = false; break; case LLViewerMediaImpl::MEDIA_LOADING: case LLViewerMediaImpl::MEDIA_LOADED: case LLViewerMediaImpl::MEDIA_PLAYING: // HACK: only show the pause button for movie types media_show_pause = LLMIMETypes::widgetType(parcel->getMediaType()) == "movie" ? true : false; stop_media_enabled = true; play_media_enabled = false; break; case LLViewerMediaImpl::MEDIA_PAUSED: media_show_pause = false; stop_media_enabled = true; break; default: // inherit defaults above break; } } } if (gSavedSettings.getBOOL("AudioStreamingMusic") && gAudiop) { if ( parcel && !parcel->getMusicURL().empty()) { play_music_enabled = true; music_icon_color = LLUI::sColorsGroup->getColor( "IconEnabledColor" ); if (gOverlayBar->musicPlaying()) { music_show_pause = true; stop_music_enabled = true; } else { music_show_pause = false; stop_music_enabled = false; } } // Don't test the mime-type: this is not updated in a consistent basis. The existence of a valid gAudiop is enough guarantee. } const std::string media_icon_name = LLMIMETypes::findIcon(media_type); LLButton* music_play_btn = getChild<LLButton>("music_play"); LLButton* music_stop_btn = getChild<LLButton>("music_stop"); LLButton* music_pause_btn = getChild<LLButton>("music_pause"); LLButton* media_play_btn = getChild<LLButton>("media_play"); LLButton* media_stop_btn = getChild<LLButton>("media_stop"); LLButton* media_pause_btn = getChild<LLButton>("media_pause"); LLIconCtrl* media_icon = getChild<LLIconCtrl>("media_icon"); music_play_btn->setEnabled(play_music_enabled); music_stop_btn->setEnabled(stop_music_enabled); music_pause_btn->setEnabled(music_show_pause); music_pause_btn->setVisible(music_show_pause); music_play_btn->setVisible(! music_show_pause); childSetColor("music_icon", music_icon_color); if(!media_icon_name.empty()) { media_icon->setImage(media_icon_name); } media_play_btn->setEnabled(play_media_enabled); media_stop_btn->setEnabled(stop_media_enabled); media_pause_btn->setEnabled(media_show_pause); media_pause_btn->setVisible(media_show_pause); media_play_btn->setVisible(! media_show_pause); childSetColor("media_icon", media_icon_color); setToolTip(media_url); }
void LLMediaRemoteCtrl::enableMediaButtons() { // Media bool play_media_enabled = false; bool stop_media_enabled = false; bool play_music_enabled = false; bool stop_music_enabled = false; bool music_show_pause = false; bool media_show_pause = false; LLColor4 music_icon_color = LLUI::sColorsGroup->getColor( "IconDisabledColor" ); LLColor4 media_icon_color = LLUI::sColorsGroup->getColor( "IconDisabledColor" ); std::string media_type = "none/none"; // Put this in xui file std::string media_url = mControls->getString("default_tooltip_label"); LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); if (gSavedSettings.getBOOL("AudioStreamingVideo")) { if ( parcel && !parcel->getMediaURL().empty()) { // Set the tooltip // Put this text into xui file media_url = parcel->getMediaURL(); media_type = parcel->getMediaType(); play_media_enabled = true; media_icon_color = LLUI::sColorsGroup->getColor( "IconEnabledColor" ); LLViewerMediaImpl::EMediaStatus status = LLViewerParcelMedia::getStatus(); switch(status) { case LLViewerMediaImpl::MEDIA_NONE: media_show_pause = false; stop_media_enabled = false; break; case LLViewerMediaImpl::MEDIA_LOADING: case LLViewerMediaImpl::MEDIA_LOADED: case LLViewerMediaImpl::MEDIA_PLAYING: // HACK: only show the pause button for movie types media_show_pause = LLMIMETypes::widgetType(parcel->getMediaType()) == "movie" ? true : false; stop_media_enabled = true; play_media_enabled = false; break; case LLViewerMediaImpl::MEDIA_PAUSED: media_show_pause = false; stop_media_enabled = true; break; default: // inherit defaults above break; } } } if (gSavedSettings.getBOOL("AudioStreamingMusic") && gAudiop) { if ( parcel && !parcel->getMusicURL().empty()) { play_music_enabled = true; music_icon_color = LLUI::sColorsGroup->getColor( "IconEnabledColor" ); if (gOverlayBar->musicPlaying()) { music_show_pause = true; stop_music_enabled = true; } else { music_show_pause = false; stop_music_enabled = false; } } // Don't test the mime-type: this is not updated in a consistent basis. The existence of a valid gAudiop is enough guarantee. } const std::string media_icon_name = LLMIMETypes::findIcon(media_type); LLButton* music_play_btn = getChild<LLButton>("music_play"); LLButton* music_stop_btn = getChild<LLButton>("music_stop"); LLButton* music_pause_btn = getChild<LLButton>("music_pause"); LLButton* media_play_btn = getChild<LLButton>("media_play"); LLButton* media_stop_btn = getChild<LLButton>("media_stop"); LLButton* media_pause_btn = getChild<LLButton>("media_pause"); LLIconCtrl* media_icon = getChild<LLIconCtrl>("media_icon"); music_play_btn->setEnabled(play_music_enabled); music_stop_btn->setEnabled(stop_music_enabled); music_pause_btn->setEnabled(music_show_pause); music_pause_btn->setVisible(music_show_pause); music_play_btn->setVisible(! music_show_pause); if(music_show_pause) { LLStreamingAudioInterface *stream = gAudiop ? gAudiop->getStreamingAudioImpl() : NULL; if(stream && stream->getMetaData()) { std::string info_text = "Loading..."; const LLSD& metadata = *(stream->getMetaData()); LLSD artist = metadata.get("ARTIST"); LLSD title = metadata.get("TITLE"); if(artist.isDefined() && title.isDefined()) info_text = artist.asString() + " -- " + title.asString(); else if(title.isDefined()) info_text = std::string("Title: ") + title.asString(); else if(artist.isDefined()) info_text = std::string("Artist: ") + artist.asString(); music_pause_btn->setToolTip(info_text); } else music_pause_btn->setToolTip(mCachedPauseTip); } childSetColor("music_icon", music_icon_color); if(!media_icon_name.empty()) { media_icon->setImage(media_icon_name); } media_play_btn->setEnabled(play_media_enabled); media_stop_btn->setEnabled(stop_media_enabled); media_pause_btn->setEnabled(media_show_pause); media_pause_btn->setVisible(media_show_pause); media_play_btn->setVisible(! media_show_pause); childSetColor("media_icon", media_icon_color); setToolTip(media_url); }
void LLMediaRemoteCtrl::enableMediaButtons() { // Media bool play_media_enabled = false; bool stop_media_enabled = false; bool play_music_enabled = false; bool stop_music_enabled = false; bool music_show_pause = false; bool media_show_pause = false; LLColor4 music_icon_color = LLUI::sColorsGroup->getColor( "IconDisabledColor" ); LLColor4 media_icon_color = LLUI::sColorsGroup->getColor( "IconDisabledColor" ); std::string media_type = "none/none"; // Put this in xui file std::string media_url = mControls->getString("default_tooltip_label"); LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); if (gSavedSettings.getBOOL("AudioStreamingMedia")) { if ( parcel && !parcel->getMediaURL().empty()) { // Set the tooltip // Put this text into xui file media_url = parcel->getMediaURL(); media_type = parcel->getMediaType(); play_media_enabled = true; media_icon_color = LLUI::sColorsGroup->getColor( "IconEnabledColor" ); LLViewerMediaImpl::EMediaStatus status = LLViewerParcelMedia::getStatus(); switch(status) { case LLViewerMediaImpl::MEDIA_NONE: media_show_pause = false; stop_media_enabled = false; break; case LLViewerMediaImpl::MEDIA_LOADING: case LLViewerMediaImpl::MEDIA_LOADED: case LLViewerMediaImpl::MEDIA_PLAYING: // HACK: only show the pause button for movie types media_show_pause = LLMIMETypes::widgetType(parcel->getMediaType()) == "movie" ? true : false; stop_media_enabled = true; play_media_enabled = false; break; case LLViewerMediaImpl::MEDIA_PAUSED: media_show_pause = false; stop_media_enabled = true; break; default: // inherit defaults above break; } } } if (gSavedSettings.getBOOL("AudioStreamingMusic") && gAudiop) { if ( parcel && !parcel->getMusicURL().empty()) { play_music_enabled = true; music_icon_color = LLUI::sColorsGroup->getColor( "IconEnabledColor" ); if (gOverlayBar->musicPlaying()) { music_show_pause = true; stop_music_enabled = true; } else { music_show_pause = false; stop_music_enabled = false; } } // Don't test the mime-type: this is not updated in a consistent basis. The existence of a valid gAudiop is enough guarantee. } const std::string media_icon_name = LLMIMETypes::findIcon(media_type); LLButton* music_play_btn = mMusicPlayBtn; LLButton* music_stop_btn = mMusicStopBtn; LLButton* music_pause_btn = mMusicPauseBtn; LLButton* media_play_btn = mMediaPlayBtn; LLButton* media_stop_btn = mMediaStopBtn; LLButton* media_pause_btn = mMediaPauseBtn; LLIconCtrl* media_icon = mMediaIcon; music_play_btn->setEnabled(play_music_enabled); music_stop_btn->setEnabled(stop_music_enabled); music_pause_btn->setEnabled(music_show_pause); music_pause_btn->setVisible(music_show_pause); music_play_btn->setVisible(! music_show_pause); if(music_show_pause) { LLStreamingAudioInterface *stream = gAudiop ? gAudiop->getStreamingAudioImpl() : NULL; if(stream && stream->getMetaData()) { std::string info_text = "Loading..."; const LLSD& metadata = *(stream->getMetaData()); LLSD artist = metadata.get("ARTIST"); LLSD title = metadata.get("TITLE"); if(artist.isDefined() && title.isDefined()) info_text = artist.asString() + " -- " + title.asString(); else if(title.isDefined()) info_text = getString("Title") + ": " + title.asString(); else if(artist.isDefined()) info_text = getString("Artist") + ": " + artist.asString(); if(music_pause_btn->getToolTip() != info_text) //Has info_text changed since last call? { music_pause_btn->setToolTip(info_text); static LLCachedControl<bool> announce_stream_metadata("AnnounceStreamMetadata"); if(announce_stream_metadata && info_text != sLastTooltip && info_text != "Loading...") //Are we announcing? Don't annoounce what we've last announced. Don't announce Loading. { sLastTooltip = info_text; LLChat chat; chat.mText = getString("Now_playing") + " " + info_text; chat.mSourceType = CHAT_SOURCE_SYSTEM; LLFloaterChat::addChat(chat); } } } else music_pause_btn->setToolTip(mCachedPauseTip); } mMusicIcon->setColor(music_icon_color); if(!media_icon_name.empty()) { media_icon->setImage(media_icon_name); } media_play_btn->setEnabled(play_media_enabled); media_stop_btn->setEnabled(stop_media_enabled); media_pause_btn->setEnabled(media_show_pause); media_pause_btn->setVisible(media_show_pause); media_play_btn->setVisible(! media_show_pause); mMediaIcon->setColor(media_icon_color); setToolTip(media_url); }
void LLMediaRemoteCtrl::enableMediaButtons() { // Media bool play_media_enabled = false; bool stop_media_enabled = false; bool play_music_enabled = false; bool stop_music_enabled = false; bool music_show_pause = false; bool media_show_pause = false; LLColor4 music_icon_color = LLUI::sColorsGroup->getColor( "IconDisabledColor" ); LLColor4 media_icon_color = LLUI::sColorsGroup->getColor( "IconDisabledColor" ); std::string media_type = "none/none"; // Put this in xui file std::string media_url = mControls->getString("default_tooltip_label"); LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); if (gSavedSettings.getBOOL("AudioStreamingVideo")) { if ( parcel && parcel->getMediaURL()[0]) { // Set the tooltip // Put this text into xui file media_url = parcel->getObscureMedia() ? mControls->getString("media_hidden_label") : parcel->getMediaURL(); media_type = parcel->getMediaType(); play_media_enabled = true; media_icon_color = LLUI::sColorsGroup->getColor( "IconEnabledColor" ); LLMediaBase::EStatus status = LLViewerParcelMedia::getStatus(); switch(status) { case LLMediaBase::STATUS_STOPPED: case LLMediaBase::STATUS_UNKNOWN: media_show_pause = false; stop_media_enabled = false; break; case LLMediaBase::STATUS_STARTED: case LLMediaBase::STATUS_NAVIGATING: case LLMediaBase::STATUS_RESETTING: // HACK: only show the pause button for movie types media_show_pause = LLMIMETypes::widgetType(parcel->getMediaType()) == "movie" ? true : false; stop_media_enabled = true; play_media_enabled = false; break; case LLMediaBase::STATUS_PAUSED: media_show_pause = false; stop_media_enabled = true; break; default: // inherit defaults above break; } } } if (gSavedSettings.getBOOL("AudioStreamingMusic") && gAudiop) { if ( parcel && parcel->getMusicURL()[0]) { play_music_enabled = true; music_icon_color = LLUI::sColorsGroup->getColor( "IconEnabledColor" ); if (gOverlayBar->musicPlaying()) { music_show_pause = true; stop_music_enabled = true; } else { music_show_pause = false; stop_music_enabled = false; } } // if no mime type has been set disable play if( LLViewerMedia::getMimeType().empty() || LLViewerMedia::getMimeType() == "none/none") { play_media_enabled = false; stop_media_enabled = false; } } const std::string media_icon_name = LLMIMETypes::findIcon(media_type); LLButton* music_play_btn = getChild<LLButton>("music_play"); LLButton* music_stop_btn = getChild<LLButton>("music_stop"); LLButton* music_pause_btn = getChild<LLButton>("music_pause"); LLButton* media_play_btn = getChild<LLButton>("media_play"); LLButton* media_stop_btn = getChild<LLButton>("media_stop"); LLButton* media_pause_btn = getChild<LLButton>("media_pause"); LLIconCtrl* media_icon = getChild<LLIconCtrl>("media_icon"); music_play_btn->setEnabled(play_music_enabled); music_stop_btn->setEnabled(stop_music_enabled); music_pause_btn->setEnabled(music_show_pause); music_pause_btn->setVisible(music_show_pause); music_play_btn->setVisible(! music_show_pause); childSetColor("music_icon", music_icon_color); if(!media_icon_name.empty()) { media_icon->setImage(media_icon_name); } media_play_btn->setEnabled(play_media_enabled); media_stop_btn->setEnabled(stop_media_enabled); media_pause_btn->setEnabled(media_show_pause); media_pause_btn->setVisible(media_show_pause); media_play_btn->setVisible(! media_show_pause); childSetColor("media_icon", media_icon_color); setToolTip(media_url); }
// Per-frame updates of visibility void LLOverlayBar::refresh() { BOOL im_received = gIMView->getIMReceived(); childSetVisible("IM Received", im_received); childSetEnabled("IM Received", im_received); BOOL busy = gAgent.getBusy(); childSetVisible("Set Not Busy", busy); childSetEnabled("Set Not Busy", busy); BOOL controls_grabbed = gAgent.anyControlGrabbed(); childSetVisible("Release Keys", controls_grabbed); childSetEnabled("Release Keys", controls_grabbed); BOOL mouselook_grabbed; mouselook_grabbed = gAgent.isControlGrabbed(CONTROL_ML_LBUTTON_DOWN_INDEX) || gAgent.isControlGrabbed(CONTROL_ML_LBUTTON_UP_INDEX); childSetVisible("Mouselook", mouselook_grabbed); childSetEnabled("Mouselook", mouselook_grabbed); BOOL sitting = FALSE; if (gAgent.getAvatarObject()) { sitting = gAgent.getAvatarObject()->mIsSitting; childSetVisible("Stand Up", sitting); childSetEnabled("Stand Up", sitting); } if ( gAudiop ) { LLParcel* parcel = gParcelMgr->getAgentParcel(); if (!parcel || !parcel->getMusicURL() || !parcel->getMusicURL()[0] || !gSavedSettings.getBOOL("AudioStreamingMusic")) { mMusicRemote->setVisible(FALSE); mMusicRemote->setEnabled(FALSE); } else { mMusicRemote->setVisible(TRUE); mMusicRemote->setEnabled(TRUE); } } // if there is a url and a texture and media is enabled and available and media streaming is on... (phew!) if ( LLMediaEngine::getInstance () && LLMediaEngine::getInstance ()->getUrl ().length () && LLMediaEngine::getInstance ()->getImageUUID ().notNull () && LLMediaEngine::getInstance ()->isEnabled () && LLMediaEngine::getInstance ()->isAvailable () && gSavedSettings.getBOOL ( "AudioStreamingVideo" ) ) { // display remote control mMediaRemote->setVisible ( TRUE ); mMediaRemote->setEnabled ( TRUE ); if ( LLMediaEngine::getInstance ()->getMediaRenderer () ) { if ( LLMediaEngine::getInstance ()->getMediaRenderer ()->isPlaying () || LLMediaEngine::getInstance ()->getMediaRenderer ()->isLooping () ) { mMediaRemote->setTransportState ( LLMediaRemoteCtrl::Pause, TRUE ); } else if ( LLMediaEngine::getInstance ()->getMediaRenderer ()->isPaused () ) { mMediaRemote->setTransportState ( LLMediaRemoteCtrl::Play, TRUE ); } else { mMediaRemote->setTransportState ( LLMediaRemoteCtrl::Stop, TRUE ); }; }; } else { mMediaRemote->setVisible ( FALSE ); mMediaRemote->setEnabled ( FALSE ); mMediaRemote->setTransportState ( LLMediaRemoteCtrl::Stop, TRUE ); }; BOOL any_button = (childIsVisible("IM Received") || childIsVisible("Set Not Busy") || childIsVisible("Release Keys") || childIsVisible("Mouselook") || childIsVisible("Stand Up") || mMusicRemote->getVisible() || mMediaRemote->getVisible() ); // turn off the whole bar in mouselook if (gAgent.cameraMouselook()) { setVisible(FALSE); } else { setVisible(any_button); }; }