summaryrefslogtreecommitdiff
path: root/indra/newview/llviewermedia.cpp
diff options
context:
space:
mode:
authorKent Quirk <q@lindenlab.com>2010-06-17 11:37:21 -0400
committerKent Quirk <q@lindenlab.com>2010-06-17 11:37:21 -0400
commitb770415b6a2f52946eafb99800af7409b900cd8e (patch)
tree11c6e9bdeee80d486445ea301e97742c00cdff7a /indra/newview/llviewermedia.cpp
parentbe72a10a89f98a5c7c372ecee3d839be2031b80a (diff)
parent7cc006347822a70f36175dc2627814a0eaeb9c0a (diff)
Merge (and resolve conflict) from q/viewer-release
Diffstat (limited to 'indra/newview/llviewermedia.cpp')
-rw-r--r--indra/newview/llviewermedia.cpp36
1 files changed, 21 insertions, 15 deletions
diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp
index 14e58f4167..d7190f26a3 100644
--- a/indra/newview/llviewermedia.cpp
+++ b/indra/newview/llviewermedia.cpp
@@ -1776,29 +1776,22 @@ void LLViewerMediaImpl::loadURI()
llinfos << "Asking media source to load URI: " << uri << llendl;
mMediaSource->loadURI( uri );
-
+
+ // A non-zero mPreviousMediaTime means that either this media was previously unloaded by the priority code while playing/paused,
+ // or a seek happened before the media loaded. In either case, seek to the saved time.
+ if(mPreviousMediaTime != 0.0f)
+ {
+ seek(mPreviousMediaTime);
+ }
+
if(mPreviousMediaState == MEDIA_PLAYING)
{
// This media was playing before this instance was unloaded.
-
- if(mPreviousMediaTime != 0.0f)
- {
- // Seek back to where we left off, if possible.
- seek(mPreviousMediaTime);
- }
-
start();
}
else if(mPreviousMediaState == MEDIA_PAUSED)
{
// This media was paused before this instance was unloaded.
-
- if(mPreviousMediaTime != 0.0f)
- {
- // Seek back to where we left off, if possible.
- seek(mPreviousMediaTime);
- }
-
pause();
}
else
@@ -1857,6 +1850,10 @@ void LLViewerMediaImpl::pause()
{
mMediaSource->pause();
}
+ else
+ {
+ mPreviousMediaState = MEDIA_PAUSED;
+ }
}
//////////////////////////////////////////////////////////////////////////////////////////
@@ -1866,6 +1863,10 @@ void LLViewerMediaImpl::start()
{
mMediaSource->start();
}
+ else
+ {
+ mPreviousMediaState = MEDIA_PLAYING;
+ }
}
//////////////////////////////////////////////////////////////////////////////////////////
@@ -1875,6 +1876,11 @@ void LLViewerMediaImpl::seek(F32 time)
{
mMediaSource->seek(time);
}
+ else
+ {
+ // Save the seek time to be set when the media is loaded.
+ mPreviousMediaTime = time;
+ }
}
//////////////////////////////////////////////////////////////////////////////////////////