summaryrefslogtreecommitdiff
path: root/indra/newview/llviewerparcelmedia.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llviewerparcelmedia.cpp')
-rw-r--r--indra/newview/llviewerparcelmedia.cpp934
1 files changed, 467 insertions, 467 deletions
diff --git a/indra/newview/llviewerparcelmedia.cpp b/indra/newview/llviewerparcelmedia.cpp
index 83b05e6b4d..bc9c2c7128 100644
--- a/indra/newview/llviewerparcelmedia.cpp
+++ b/indra/newview/llviewerparcelmedia.cpp
@@ -5,21 +5,21 @@
* $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
- *
+ *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
- *
+ *
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
+ *
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -49,9 +49,9 @@
LLViewerParcelMedia::LLViewerParcelMedia():
mMediaParcelLocalID(0)
{
- LLMessageSystem* msg = gMessageSystem;
- msg->setHandlerFunc("ParcelMediaCommandMessage", parcelMediaCommandMessageHandler );
- msg->setHandlerFunc("ParcelMediaUpdate", parcelMediaUpdateHandler );
+ LLMessageSystem* msg = gMessageSystem;
+ msg->setHandlerFunc("ParcelMediaCommandMessage", parcelMediaCommandMessageHandler );
+ msg->setHandlerFunc("ParcelMediaUpdate", parcelMediaUpdateHandler );
// LLViewerParcelMediaAutoPlay will regularly check and autoplay media,
// might be good idea to just integrate it into LLViewerParcelMedia
@@ -60,259 +60,259 @@ mMediaParcelLocalID(0)
LLViewerParcelMedia::~LLViewerParcelMedia()
{
- // This needs to be destroyed before global destructor time.
- mMediaImpl = NULL;
+ // This needs to be destroyed before global destructor time.
+ mMediaImpl = NULL;
}
//////////////////////////////////////////////////////////////////////////////////////////
void LLViewerParcelMedia::update(LLParcel* parcel)
{
- if (/*LLViewerMedia::hasMedia()*/ true)
- {
- // we have a player
- if (parcel)
- {
- if(!gAgent.getRegion())
- {
- mMediaRegionID = LLUUID() ;
- stop() ;
- LL_DEBUGS("Media") << "no agent region, bailing out." << LL_ENDL;
- return ;
- }
-
- // we're in a parcel
- S32 parcelid = parcel->getLocalID();
-
- LLUUID regionid = gAgent.getRegion()->getRegionID();
- bool location_changed = false;
- if (parcelid != mMediaParcelLocalID || regionid != mMediaRegionID)
- {
- LL_DEBUGS("Media") << "New parcel, parcel id = " << parcelid << ", region id = " << regionid << LL_ENDL;
- mMediaParcelLocalID = parcelid;
- mMediaRegionID = regionid;
- location_changed = true;
- }
-
- std::string mediaUrl = std::string ( parcel->getMediaURL () );
- std::string mediaCurrentUrl = std::string( parcel->getMediaCurrentURL());
-
- // if we have a current (link sharing) url, use it instead
- if (mediaCurrentUrl != "" && parcel->getMediaType() == HTTP_CONTENT_TEXT_HTML)
- {
- mediaUrl = mediaCurrentUrl;
- }
-
- LLStringUtil::trim(mediaUrl);
-
- // If no parcel media is playing, nothing left to do
- if(mMediaImpl.isNull())
-
- {
- // media will be autoplayed by LLViewerParcelMediaAutoPlay
- return;
- }
-
- // Media is playing...has something changed?
- else if (( mMediaImpl->getMediaURL() != mediaUrl )
- || ( mMediaImpl->getMediaTextureID() != parcel->getMediaID() )
- || ( mMediaImpl->getMimeType() != parcel->getMediaType() ))
- {
- // Only play if the media types are the same and parcel stays same.
- if(mMediaImpl->getMimeType() == parcel->getMediaType()
- && !location_changed)
- {
- play(parcel);
- }
-
- else
- {
- stop();
- }
- }
- }
- else
- {
- stop();
- }
- }
+ if (/*LLViewerMedia::hasMedia()*/ true)
+ {
+ // we have a player
+ if (parcel)
+ {
+ if(!gAgent.getRegion())
+ {
+ mMediaRegionID = LLUUID() ;
+ stop() ;
+ LL_DEBUGS("Media") << "no agent region, bailing out." << LL_ENDL;
+ return ;
+ }
+
+ // we're in a parcel
+ S32 parcelid = parcel->getLocalID();
+
+ LLUUID regionid = gAgent.getRegion()->getRegionID();
+ bool location_changed = false;
+ if (parcelid != mMediaParcelLocalID || regionid != mMediaRegionID)
+ {
+ LL_DEBUGS("Media") << "New parcel, parcel id = " << parcelid << ", region id = " << regionid << LL_ENDL;
+ mMediaParcelLocalID = parcelid;
+ mMediaRegionID = regionid;
+ location_changed = true;
+ }
+
+ std::string mediaUrl = std::string ( parcel->getMediaURL () );
+ std::string mediaCurrentUrl = std::string( parcel->getMediaCurrentURL());
+
+ // if we have a current (link sharing) url, use it instead
+ if (mediaCurrentUrl != "" && parcel->getMediaType() == HTTP_CONTENT_TEXT_HTML)
+ {
+ mediaUrl = mediaCurrentUrl;
+ }
+
+ LLStringUtil::trim(mediaUrl);
+
+ // If no parcel media is playing, nothing left to do
+ if(mMediaImpl.isNull())
+
+ {
+ // media will be autoplayed by LLViewerParcelMediaAutoPlay
+ return;
+ }
+
+ // Media is playing...has something changed?
+ else if (( mMediaImpl->getMediaURL() != mediaUrl )
+ || ( mMediaImpl->getMediaTextureID() != parcel->getMediaID() )
+ || ( mMediaImpl->getMimeType() != parcel->getMediaType() ))
+ {
+ // Only play if the media types are the same and parcel stays same.
+ if(mMediaImpl->getMimeType() == parcel->getMediaType()
+ && !location_changed)
+ {
+ play(parcel);
+ }
+
+ else
+ {
+ stop();
+ }
+ }
+ }
+ else
+ {
+ stop();
+ }
+ }
}
// static
void LLViewerParcelMedia::play(LLParcel* parcel)
{
- LL_DEBUGS() << "LLViewerParcelMedia::play" << LL_ENDL;
-
- if (!parcel) return;
-
- if (!gSavedSettings.getBOOL("AudioStreamingMedia"))
- return;
-
- std::string media_url = parcel->getMediaURL();
- std::string media_current_url = parcel->getMediaCurrentURL();
- std::string mime_type = parcel->getMediaType();
- LLUUID placeholder_texture_id = parcel->getMediaID();
- U8 media_auto_scale = parcel->getMediaAutoScale();
- U8 media_loop = parcel->getMediaLoop();
- S32 media_width = parcel->getMediaWidth();
- S32 media_height = parcel->getMediaHeight();
-
- if(mMediaImpl)
- {
- // If the url and mime type are the same, call play again
- if(mMediaImpl->getMediaURL() == media_url
- && mMediaImpl->getMimeType() == mime_type
- && mMediaImpl->getMediaTextureID() == placeholder_texture_id)
- {
- LL_DEBUGS("Media") << "playing with existing url " << media_url << LL_ENDL;
-
- mMediaImpl->play();
- }
- // Else if the texture id's are the same, navigate and rediscover type
- // MBW -- This causes other state from the previous parcel (texture size, autoscale, and looping) to get re-used incorrectly.
- // It's also not really necessary -- just creating a new instance is fine.
-// else if(mMediaImpl->getMediaTextureID() == placeholder_texture_id)
-// {
-// mMediaImpl->navigateTo(media_url, mime_type, true);
-// }
- else
- {
- // Since the texture id is different, we need to generate a new impl
-
- // Delete the old one first so they don't fight over the texture.
- mMediaImpl = NULL;
-
- // A new impl will be created below.
- }
- }
-
- // Don't ever try to play if the media type is set to "none/none"
- if(stricmp(mime_type.c_str(), LLMIMETypes::getDefaultMimeType().c_str()) != 0)
- {
- if(!mMediaImpl)
- {
- LL_DEBUGS("Media") << "new media impl with mime type " << mime_type << ", url " << media_url << LL_ENDL;
-
- // There is no media impl, make a new one
- mMediaImpl = LLViewerMedia::getInstance()->newMediaImpl(
- placeholder_texture_id,
- media_width,
- media_height,
- media_auto_scale,
- media_loop);
- mMediaImpl->setIsParcelMedia(true);
- mMediaImpl->navigateTo(media_url, mime_type, true);
- }
-
- //LLFirstUse::useMedia();
-
- LLViewerParcelMediaAutoPlay::playStarted();
- }
+ LL_DEBUGS() << "LLViewerParcelMedia::play" << LL_ENDL;
+
+ if (!parcel) return;
+
+ if (!gSavedSettings.getBOOL("AudioStreamingMedia"))
+ return;
+
+ std::string media_url = parcel->getMediaURL();
+ std::string media_current_url = parcel->getMediaCurrentURL();
+ std::string mime_type = parcel->getMediaType();
+ LLUUID placeholder_texture_id = parcel->getMediaID();
+ U8 media_auto_scale = parcel->getMediaAutoScale();
+ U8 media_loop = parcel->getMediaLoop();
+ S32 media_width = parcel->getMediaWidth();
+ S32 media_height = parcel->getMediaHeight();
+
+ if(mMediaImpl)
+ {
+ // If the url and mime type are the same, call play again
+ if(mMediaImpl->getMediaURL() == media_url
+ && mMediaImpl->getMimeType() == mime_type
+ && mMediaImpl->getMediaTextureID() == placeholder_texture_id)
+ {
+ LL_DEBUGS("Media") << "playing with existing url " << media_url << LL_ENDL;
+
+ mMediaImpl->play();
+ }
+ // Else if the texture id's are the same, navigate and rediscover type
+ // MBW -- This causes other state from the previous parcel (texture size, autoscale, and looping) to get re-used incorrectly.
+ // It's also not really necessary -- just creating a new instance is fine.
+// else if(mMediaImpl->getMediaTextureID() == placeholder_texture_id)
+// {
+// mMediaImpl->navigateTo(media_url, mime_type, true);
+// }
+ else
+ {
+ // Since the texture id is different, we need to generate a new impl
+
+ // Delete the old one first so they don't fight over the texture.
+ mMediaImpl = NULL;
+
+ // A new impl will be created below.
+ }
+ }
+
+ // Don't ever try to play if the media type is set to "none/none"
+ if(stricmp(mime_type.c_str(), LLMIMETypes::getDefaultMimeType().c_str()) != 0)
+ {
+ if(!mMediaImpl)
+ {
+ LL_DEBUGS("Media") << "new media impl with mime type " << mime_type << ", url " << media_url << LL_ENDL;
+
+ // There is no media impl, make a new one
+ mMediaImpl = LLViewerMedia::getInstance()->newMediaImpl(
+ placeholder_texture_id,
+ media_width,
+ media_height,
+ media_auto_scale,
+ media_loop);
+ mMediaImpl->setIsParcelMedia(true);
+ mMediaImpl->navigateTo(media_url, mime_type, true);
+ }
+
+ //LLFirstUse::useMedia();
+
+ LLViewerParcelMediaAutoPlay::playStarted();
+ }
}
// static
void LLViewerParcelMedia::stop()
{
- if(mMediaImpl.isNull())
- {
- return;
- }
-
- // We need to remove the media HUD if it is up.
- LLViewerMediaFocus::getInstance()->clearFocus();
-
- // This will unload & kill the media instance.
- mMediaImpl = NULL;
+ if(mMediaImpl.isNull())
+ {
+ return;
+ }
+
+ // We need to remove the media HUD if it is up.
+ LLViewerMediaFocus::getInstance()->clearFocus();
+
+ // This will unload & kill the media instance.
+ mMediaImpl = NULL;
}
// static
void LLViewerParcelMedia::pause()
{
- if(mMediaImpl.isNull())
- {
- return;
- }
- mMediaImpl->pause();
+ if(mMediaImpl.isNull())
+ {
+ return;
+ }
+ mMediaImpl->pause();
}
// static
void LLViewerParcelMedia::start()
{
- if(mMediaImpl.isNull())
- {
- return;
- }
- mMediaImpl->start();
+ if(mMediaImpl.isNull())
+ {
+ return;
+ }
+ mMediaImpl->start();
- //LLFirstUse::useMedia();
+ //LLFirstUse::useMedia();
- LLViewerParcelMediaAutoPlay::playStarted();
+ LLViewerParcelMediaAutoPlay::playStarted();
}
// static
void LLViewerParcelMedia::seek(F32 time)
{
- if(mMediaImpl.isNull())
- {
- return;
- }
- mMediaImpl->seek(time);
+ if(mMediaImpl.isNull())
+ {
+ return;
+ }
+ mMediaImpl->seek(time);
}
// static
void LLViewerParcelMedia::focus(bool focus)
{
- mMediaImpl->focus(focus);
+ mMediaImpl->focus(focus);
}
// static
LLPluginClassMediaOwner::EMediaStatus LLViewerParcelMedia::getStatus()
-{
- LLPluginClassMediaOwner::EMediaStatus result = LLPluginClassMediaOwner::MEDIA_NONE;
-
- if(mMediaImpl.notNull() && mMediaImpl->hasMedia())
- {
- result = mMediaImpl->getMediaPlugin()->getStatus();
- }
-
- return result;
+{
+ LLPluginClassMediaOwner::EMediaStatus result = LLPluginClassMediaOwner::MEDIA_NONE;
+
+ if(mMediaImpl.notNull() && mMediaImpl->hasMedia())
+ {
+ result = mMediaImpl->getMediaPlugin()->getStatus();
+ }
+
+ return result;
}
// static
std::string LLViewerParcelMedia::getMimeType()
{
- return mMediaImpl.notNull() ? mMediaImpl->getMimeType() : LLMIMETypes::getDefaultMimeType();
+ return mMediaImpl.notNull() ? mMediaImpl->getMimeType() : LLMIMETypes::getDefaultMimeType();
}
-//static
+//static
std::string LLViewerParcelMedia::getURL()
{
- std::string url;
- if(mMediaImpl.notNull())
- url = mMediaImpl->getMediaURL();
-
- if(stricmp(LLViewerParcelMgr::getInstance()->getAgentParcel()->getMediaType().c_str(), LLMIMETypes::getDefaultMimeType().c_str()) != 0)
- {
- if (url.empty())
- url = LLViewerParcelMgr::getInstance()->getAgentParcel()->getMediaCurrentURL();
-
- if (url.empty())
- url = LLViewerParcelMgr::getInstance()->getAgentParcel()->getMediaURL();
- }
-
- return url;
+ std::string url;
+ if(mMediaImpl.notNull())
+ url = mMediaImpl->getMediaURL();
+
+ if(stricmp(LLViewerParcelMgr::getInstance()->getAgentParcel()->getMediaType().c_str(), LLMIMETypes::getDefaultMimeType().c_str()) != 0)
+ {
+ if (url.empty())
+ url = LLViewerParcelMgr::getInstance()->getAgentParcel()->getMediaCurrentURL();
+
+ if (url.empty())
+ url = LLViewerParcelMgr::getInstance()->getAgentParcel()->getMediaURL();
+ }
+
+ return url;
}
-//static
+//static
std::string LLViewerParcelMedia::getName()
{
- if(mMediaImpl.notNull())
- return mMediaImpl->getName();
- return "";
+ if(mMediaImpl.notNull())
+ return mMediaImpl->getName();
+ return "";
}
viewer_media_t LLViewerParcelMedia::getParcelMedia()
{
- return mMediaImpl;
+ return mMediaImpl;
}
//////////////////////////////////////////////////////////////////////////////////////////
@@ -324,66 +324,66 @@ void LLViewerParcelMedia::parcelMediaCommandMessageHandler(LLMessageSystem *msg,
void LLViewerParcelMedia::processParcelMediaCommandMessage( LLMessageSystem *msg)
{
- // extract the agent id
- // LLUUID agent_id;
- // msg->getUUID( agent_id );
-
- U32 flags;
- U32 command;
- F32 time;
- msg->getU32( "CommandBlock", "Flags", flags );
- msg->getU32( "CommandBlock", "Command", command);
- msg->getF32( "CommandBlock", "Time", time );
-
- if (flags &( (1<<PARCEL_MEDIA_COMMAND_STOP)
- | (1<<PARCEL_MEDIA_COMMAND_PAUSE)
- | (1<<PARCEL_MEDIA_COMMAND_PLAY)
- | (1<<PARCEL_MEDIA_COMMAND_LOOP)
- | (1<<PARCEL_MEDIA_COMMAND_UNLOAD) ))
- {
- // stop
- if( command == PARCEL_MEDIA_COMMAND_STOP )
- {
- stop();
- }
- else
- // pause
- if( command == PARCEL_MEDIA_COMMAND_PAUSE )
- {
- pause();
- }
- else
- // play
- if(( command == PARCEL_MEDIA_COMMAND_PLAY ) ||
- ( command == PARCEL_MEDIA_COMMAND_LOOP ))
- {
- if (getStatus() == LLViewerMediaImpl::MEDIA_PAUSED)
- {
- start();
- }
- else
- {
- LLParcel *parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
- play(parcel);
- }
- }
- else
- // unload
- if( command == PARCEL_MEDIA_COMMAND_UNLOAD )
- {
- stop();
- }
- }
-
- if (flags & (1<<PARCEL_MEDIA_COMMAND_TIME))
- {
- if(mMediaImpl.isNull())
- {
- LLParcel *parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
- play(parcel);
- }
- seek(time);
- }
+ // extract the agent id
+ // LLUUID agent_id;
+ // msg->getUUID( agent_id );
+
+ U32 flags;
+ U32 command;
+ F32 time;
+ msg->getU32( "CommandBlock", "Flags", flags );
+ msg->getU32( "CommandBlock", "Command", command);
+ msg->getF32( "CommandBlock", "Time", time );
+
+ if (flags &( (1<<PARCEL_MEDIA_COMMAND_STOP)
+ | (1<<PARCEL_MEDIA_COMMAND_PAUSE)
+ | (1<<PARCEL_MEDIA_COMMAND_PLAY)
+ | (1<<PARCEL_MEDIA_COMMAND_LOOP)
+ | (1<<PARCEL_MEDIA_COMMAND_UNLOAD) ))
+ {
+ // stop
+ if( command == PARCEL_MEDIA_COMMAND_STOP )
+ {
+ stop();
+ }
+ else
+ // pause
+ if( command == PARCEL_MEDIA_COMMAND_PAUSE )
+ {
+ pause();
+ }
+ else
+ // play
+ if(( command == PARCEL_MEDIA_COMMAND_PLAY ) ||
+ ( command == PARCEL_MEDIA_COMMAND_LOOP ))
+ {
+ if (getStatus() == LLViewerMediaImpl::MEDIA_PAUSED)
+ {
+ start();
+ }
+ else
+ {
+ LLParcel *parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
+ play(parcel);
+ }
+ }
+ else
+ // unload
+ if( command == PARCEL_MEDIA_COMMAND_UNLOAD )
+ {
+ stop();
+ }
+ }
+
+ if (flags & (1<<PARCEL_MEDIA_COMMAND_TIME))
+ {
+ if(mMediaImpl.isNull())
+ {
+ LLParcel *parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
+ play(parcel);
+ }
+ seek(time);
+ }
}
//////////////////////////////////////////////////////////////////////////////////////////
@@ -395,235 +395,235 @@ void LLViewerParcelMedia::parcelMediaUpdateHandler(LLMessageSystem *msg, void **
void LLViewerParcelMedia::processParcelMediaUpdate( LLMessageSystem *msg)
{
- LLUUID media_id;
- std::string media_url;
- std::string media_type;
- S32 media_width = 0;
- S32 media_height = 0;
- U8 media_auto_scale = FALSE;
- U8 media_loop = FALSE;
-
- msg->getUUID( "DataBlock", "MediaID", media_id );
- char media_url_buffer[257];
- msg->getString( "DataBlock", "MediaURL", 255, media_url_buffer );
- media_url = media_url_buffer;
- msg->getU8("DataBlock", "MediaAutoScale", media_auto_scale);
-
- if (msg->has("DataBlockExtended")) // do we have the extended data?
- {
- char media_type_buffer[257];
- msg->getString("DataBlockExtended", "MediaType", 255, media_type_buffer);
- media_type = media_type_buffer;
- msg->getU8("DataBlockExtended", "MediaLoop", media_loop);
- msg->getS32("DataBlockExtended", "MediaWidth", media_width);
- msg->getS32("DataBlockExtended", "MediaHeight", media_height);
- }
-
- LLParcel *parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
- BOOL same = FALSE;
- if (parcel)
- {
- same = ((parcel->getMediaURL() == media_url) &&
- (parcel->getMediaType() == media_type) &&
- (parcel->getMediaID() == media_id) &&
- (parcel->getMediaWidth() == media_width) &&
- (parcel->getMediaHeight() == media_height) &&
- (parcel->getMediaAutoScale() == media_auto_scale) &&
- (parcel->getMediaLoop() == media_loop));
-
- if (!same)
- {
- // temporarily store these new values in the parcel
- parcel->setMediaURL(media_url);
- parcel->setMediaType(media_type);
- parcel->setMediaID(media_id);
- parcel->setMediaWidth(media_width);
- parcel->setMediaHeight(media_height);
- parcel->setMediaAutoScale(media_auto_scale);
- parcel->setMediaLoop(media_loop);
-
- play(parcel);
- }
- }
+ LLUUID media_id;
+ std::string media_url;
+ std::string media_type;
+ S32 media_width = 0;
+ S32 media_height = 0;
+ U8 media_auto_scale = FALSE;
+ U8 media_loop = FALSE;
+
+ msg->getUUID( "DataBlock", "MediaID", media_id );
+ char media_url_buffer[257];
+ msg->getString( "DataBlock", "MediaURL", 255, media_url_buffer );
+ media_url = media_url_buffer;
+ msg->getU8("DataBlock", "MediaAutoScale", media_auto_scale);
+
+ if (msg->has("DataBlockExtended")) // do we have the extended data?
+ {
+ char media_type_buffer[257];
+ msg->getString("DataBlockExtended", "MediaType", 255, media_type_buffer);
+ media_type = media_type_buffer;
+ msg->getU8("DataBlockExtended", "MediaLoop", media_loop);
+ msg->getS32("DataBlockExtended", "MediaWidth", media_width);
+ msg->getS32("DataBlockExtended", "MediaHeight", media_height);
+ }
+
+ LLParcel *parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
+ BOOL same = FALSE;
+ if (parcel)
+ {
+ same = ((parcel->getMediaURL() == media_url) &&
+ (parcel->getMediaType() == media_type) &&
+ (parcel->getMediaID() == media_id) &&
+ (parcel->getMediaWidth() == media_width) &&
+ (parcel->getMediaHeight() == media_height) &&
+ (parcel->getMediaAutoScale() == media_auto_scale) &&
+ (parcel->getMediaLoop() == media_loop));
+
+ if (!same)
+ {
+ // temporarily store these new values in the parcel
+ parcel->setMediaURL(media_url);
+ parcel->setMediaType(media_type);
+ parcel->setMediaID(media_id);
+ parcel->setMediaWidth(media_width);
+ parcel->setMediaHeight(media_height);
+ parcel->setMediaAutoScale(media_auto_scale);
+ parcel->setMediaLoop(media_loop);
+
+ play(parcel);
+ }
+ }
}
// Static
/////////////////////////////////////////////////////////////////////////////////////////
// *TODO: I can not find any active code where this method is called...
void LLViewerParcelMedia::sendMediaNavigateMessage(const std::string& url)
{
- std::string region_url = gAgent.getRegionCapability("ParcelNavigateMedia");
- if (!region_url.empty())
- {
- // send navigate event to sim for link sharing
- LLSD body;
- body["agent-id"] = gAgent.getID();
- body["local-id"] = LLViewerParcelMgr::getInstance()->getAgentParcel()->getLocalID();
- body["url"] = url;
+ std::string region_url = gAgent.getRegionCapability("ParcelNavigateMedia");
+ if (!region_url.empty())
+ {
+ // send navigate event to sim for link sharing
+ LLSD body;
+ body["agent-id"] = gAgent.getID();
+ body["local-id"] = LLViewerParcelMgr::getInstance()->getAgentParcel()->getLocalID();
+ body["url"] = url;
LLCoreHttpUtil::HttpCoroutineAdapter::messageHttpPost(region_url, body,
"Media Navigation sent to sim.", "Media Navigation failed to send to sim.");
- }
- else
- {
- LL_WARNS() << "can't get ParcelNavigateMedia capability" << LL_ENDL;
- }
+ }
+ else
+ {
+ LL_WARNS() << "can't get ParcelNavigateMedia capability" << LL_ENDL;
+ }
}
/////////////////////////////////////////////////////////////////////////////////////////
// inherited from LLViewerMediaObserver
-// virtual
+// virtual
void LLViewerParcelMedia::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event)
{
- switch(event)
- {
- case MEDIA_EVENT_DEBUG_MESSAGE:
- {
- // LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_DEBUG_MESSAGE " << LL_ENDL;
- };
- break;
-
- case MEDIA_EVENT_CONTENT_UPDATED:
- {
- // LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_CONTENT_UPDATED " << LL_ENDL;
- };
- break;
-
- case MEDIA_EVENT_TIME_DURATION_UPDATED:
- {
- // LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_TIME_DURATION_UPDATED, time is " << self->getCurrentTime() << " of " << self->getDuration() << LL_ENDL;
- };
- break;
-
- case MEDIA_EVENT_SIZE_CHANGED:
- {
- LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_SIZE_CHANGED " << LL_ENDL;
- };
- break;
-
- case MEDIA_EVENT_CURSOR_CHANGED:
- {
- LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_CURSOR_CHANGED, new cursor is " << self->getCursorName() << LL_ENDL;
- };
- break;
-
- case MEDIA_EVENT_NAVIGATE_BEGIN:
- {
- LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_NAVIGATE_BEGIN " << LL_ENDL;
- };
- break;
-
- case MEDIA_EVENT_NAVIGATE_COMPLETE:
- {
- LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_NAVIGATE_COMPLETE, result string is: " << self->getNavigateResultString() << LL_ENDL;
- };
- break;
-
- case MEDIA_EVENT_PROGRESS_UPDATED:
- {
- LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_PROGRESS_UPDATED, loading at " << self->getProgressPercent() << "%" << LL_ENDL;
- };
- break;
-
- case MEDIA_EVENT_STATUS_TEXT_CHANGED:
- {
- LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_STATUS_TEXT_CHANGED, new status text is: " << self->getStatusText() << LL_ENDL;
- };
- break;
-
- case MEDIA_EVENT_LOCATION_CHANGED:
- {
- LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_LOCATION_CHANGED, new uri is: " << self->getLocation() << LL_ENDL;
- };
- break;
-
- case MEDIA_EVENT_NAVIGATE_ERROR_PAGE:
- {
- LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_NAVIGATE_ERROR_PAGE" << LL_ENDL;
- };
- break;
-
- case MEDIA_EVENT_CLICK_LINK_HREF:
- {
- LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_CLICK_LINK_HREF, target is \"" << self->getClickTarget() << "\", uri is " << self->getClickURL() << LL_ENDL;
- };
- break;
-
- case MEDIA_EVENT_CLICK_LINK_NOFOLLOW:
- {
- LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_CLICK_LINK_NOFOLLOW, uri is " << self->getClickURL() << LL_ENDL;
- };
- break;
-
- case MEDIA_EVENT_PLUGIN_FAILED:
- {
- LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_PLUGIN_FAILED" << LL_ENDL;
- };
- break;
-
- case MEDIA_EVENT_PLUGIN_FAILED_LAUNCH:
- {
- LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_PLUGIN_FAILED_LAUNCH" << LL_ENDL;
- };
- break;
-
- case MEDIA_EVENT_NAME_CHANGED:
- {
- LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_NAME_CHANGED" << LL_ENDL;
- };
- break;
-
- case MEDIA_EVENT_CLOSE_REQUEST:
- {
- LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_CLOSE_REQUEST" << LL_ENDL;
- }
- break;
-
- case MEDIA_EVENT_PICK_FILE_REQUEST:
- {
- LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_PICK_FILE_REQUEST" << LL_ENDL;
- }
- break;
-
- case MEDIA_EVENT_FILE_DOWNLOAD:
- {
- LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_FILE_DOWNLOAD" << LL_ENDL;
- }
- break;
-
- case MEDIA_EVENT_GEOMETRY_CHANGE:
- {
- LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_GEOMETRY_CHANGE, uuid is " << self->getClickUUID() << LL_ENDL;
- }
- break;
-
- case MEDIA_EVENT_AUTH_REQUEST:
- {
- LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_AUTH_REQUEST, url " << self->getAuthURL() << ", realm " << self->getAuthRealm() << LL_ENDL;
- }
- break;
-
- case MEDIA_EVENT_LINK_HOVERED:
- {
- LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_LINK_HOVERED, hover text is: " << self->getHoverText() << LL_ENDL;
- };
- break;
- };
+ switch(event)
+ {
+ case MEDIA_EVENT_DEBUG_MESSAGE:
+ {
+ // LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_DEBUG_MESSAGE " << LL_ENDL;
+ };
+ break;
+
+ case MEDIA_EVENT_CONTENT_UPDATED:
+ {
+ // LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_CONTENT_UPDATED " << LL_ENDL;
+ };
+ break;
+
+ case MEDIA_EVENT_TIME_DURATION_UPDATED:
+ {
+ // LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_TIME_DURATION_UPDATED, time is " << self->getCurrentTime() << " of " << self->getDuration() << LL_ENDL;
+ };
+ break;
+
+ case MEDIA_EVENT_SIZE_CHANGED:
+ {
+ LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_SIZE_CHANGED " << LL_ENDL;
+ };
+ break;
+
+ case MEDIA_EVENT_CURSOR_CHANGED:
+ {
+ LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_CURSOR_CHANGED, new cursor is " << self->getCursorName() << LL_ENDL;
+ };
+ break;
+
+ case MEDIA_EVENT_NAVIGATE_BEGIN:
+ {
+ LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_NAVIGATE_BEGIN " << LL_ENDL;
+ };
+ break;
+
+ case MEDIA_EVENT_NAVIGATE_COMPLETE:
+ {
+ LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_NAVIGATE_COMPLETE, result string is: " << self->getNavigateResultString() << LL_ENDL;
+ };
+ break;
+
+ case MEDIA_EVENT_PROGRESS_UPDATED:
+ {
+ LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_PROGRESS_UPDATED, loading at " << self->getProgressPercent() << "%" << LL_ENDL;
+ };
+ break;
+
+ case MEDIA_EVENT_STATUS_TEXT_CHANGED:
+ {
+ LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_STATUS_TEXT_CHANGED, new status text is: " << self->getStatusText() << LL_ENDL;
+ };
+ break;
+
+ case MEDIA_EVENT_LOCATION_CHANGED:
+ {
+ LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_LOCATION_CHANGED, new uri is: " << self->getLocation() << LL_ENDL;
+ };
+ break;
+
+ case MEDIA_EVENT_NAVIGATE_ERROR_PAGE:
+ {
+ LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_NAVIGATE_ERROR_PAGE" << LL_ENDL;
+ };
+ break;
+
+ case MEDIA_EVENT_CLICK_LINK_HREF:
+ {
+ LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_CLICK_LINK_HREF, target is \"" << self->getClickTarget() << "\", uri is " << self->getClickURL() << LL_ENDL;
+ };
+ break;
+
+ case MEDIA_EVENT_CLICK_LINK_NOFOLLOW:
+ {
+ LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_CLICK_LINK_NOFOLLOW, uri is " << self->getClickURL() << LL_ENDL;
+ };
+ break;
+
+ case MEDIA_EVENT_PLUGIN_FAILED:
+ {
+ LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_PLUGIN_FAILED" << LL_ENDL;
+ };
+ break;
+
+ case MEDIA_EVENT_PLUGIN_FAILED_LAUNCH:
+ {
+ LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_PLUGIN_FAILED_LAUNCH" << LL_ENDL;
+ };
+ break;
+
+ case MEDIA_EVENT_NAME_CHANGED:
+ {
+ LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_NAME_CHANGED" << LL_ENDL;
+ };
+ break;
+
+ case MEDIA_EVENT_CLOSE_REQUEST:
+ {
+ LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_CLOSE_REQUEST" << LL_ENDL;
+ }
+ break;
+
+ case MEDIA_EVENT_PICK_FILE_REQUEST:
+ {
+ LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_PICK_FILE_REQUEST" << LL_ENDL;
+ }
+ break;
+
+ case MEDIA_EVENT_FILE_DOWNLOAD:
+ {
+ LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_FILE_DOWNLOAD" << LL_ENDL;
+ }
+ break;
+
+ case MEDIA_EVENT_GEOMETRY_CHANGE:
+ {
+ LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_GEOMETRY_CHANGE, uuid is " << self->getClickUUID() << LL_ENDL;
+ }
+ break;
+
+ case MEDIA_EVENT_AUTH_REQUEST:
+ {
+ LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_AUTH_REQUEST, url " << self->getAuthURL() << ", realm " << self->getAuthRealm() << LL_ENDL;
+ }
+ break;
+
+ case MEDIA_EVENT_LINK_HOVERED:
+ {
+ LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_LINK_HOVERED, hover text is: " << self->getHoverText() << LL_ENDL;
+ };
+ break;
+ };
}
// TODO: observer
/*
void LLViewerParcelMediaNavigationObserver::onNavigateComplete( const EventType& event_in )
{
- std::string url = event_in.getStringValue();
+ std::string url = event_in.getStringValue();
- if (mCurrentURL != url && ! mFromMessage)
- {
- LLViewerParcelMedia::sendMediaNavigateMessage(url);
- }
+ if (mCurrentURL != url && ! mFromMessage)
+ {
+ LLViewerParcelMedia::sendMediaNavigateMessage(url);
+ }
- mCurrentURL = url;
- mFromMessage = false;
+ mCurrentURL = url;
+ mFromMessage = false;
}
*/