本文整理汇总了C++中LLParcel::getMusicURL方法的典型用法代码示例。如果您正苦于以下问题:C++ LLParcel::getMusicURL方法的具体用法?C++ LLParcel::getMusicURL怎么用?C++ LLParcel::getMusicURL使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LLParcel
的用法示例。
在下文中一共展示了LLParcel::getMusicURL方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: refresh
// 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 );
}
}
示例2: refresh
// 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
}
}
示例3: onPlayButtonPressed
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 );
}
};
}
示例4: onTeleportFailed
void LLViewerAudio::onTeleportFailed()
{
if (gAudiop)
{
LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
if (parcel)
{
mNextStreamURI = parcel->getMusicURL();
}
}
}
示例5: onTeleportFinished
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;
}
示例6: refresh
// 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 );
}
}
示例7: toggleMusicPlay
//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();
}
}
}
示例8: enableMediaButtons
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);
//.........这里部分代码省略.........
示例9: enableMediaButtons
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())
//.........这里部分代码省略.........
示例10: enableMediaButtons
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())
//.........这里部分代码省略.........
示例11: enableMediaButtons
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);
//.........这里部分代码省略.........
示例12: refresh
// 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())
//.........这里部分代码省略.........