added <animate> tag generation to acquirePlaylist. may god be with us.
This commit is contained in:
parent
713d54c3ba
commit
8c195b9436
2 changed files with 83 additions and 17 deletions
|
@ -22,7 +22,7 @@
|
|||
|
||||
|
||||
Author : $Author: fgerlits $
|
||||
Version : $Revision: 1.28 $
|
||||
Version : $Revision: 1.29 $
|
||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storage/src/TestStorageClientTest.cxx,v $
|
||||
|
||||
------------------------------------------------------------------------------*/
|
||||
|
@ -344,6 +344,8 @@ TestStorageClientTest :: acquirePlaylistTest(void)
|
|||
ifs1.close();
|
||||
CPPUNIT_FAIL("temp file not created correctly");
|
||||
}
|
||||
// std::cerr << "url:\n" << *playlist->getUri() << "\n";
|
||||
// sleep(30);
|
||||
ifs1.close();
|
||||
|
||||
string savedTempFilePath = playlist->getUri()->substr(7);
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
|
||||
|
||||
Author : $Author: fgerlits $
|
||||
Version : $Revision: 1.44 $
|
||||
Version : $Revision: 1.45 $
|
||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storage/src/WebStorageClient.cxx,v $
|
||||
|
||||
------------------------------------------------------------------------------*/
|
||||
|
@ -55,6 +55,7 @@
|
|||
#include "LiveSupport/Core/XmlRpcInvalidArgumentException.h"
|
||||
#include "LiveSupport/Core/XmlRpcIOException.h"
|
||||
#include "LiveSupport/Core/XmlRpcInvalidDataException.h"
|
||||
#include "LiveSupport/Core/TimeConversion.h"
|
||||
#include "WebStorageClient.h"
|
||||
|
||||
using namespace boost::posix_time;
|
||||
|
@ -1204,17 +1205,9 @@ WebStorageClient :: acquirePlaylist(Ptr<SessionId>::Ref sessionId,
|
|||
|
||||
while (it != oldPlaylist->end()) {
|
||||
Ptr<PlaylistElement>::Ref plElement = it->second;
|
||||
Ptr<FadeInfo>::Ref fadeInfo = plElement->getFadeInfo();
|
||||
|
||||
Ptr<time_duration>::Ref
|
||||
relativeOffset = plElement->getRelativeOffset();
|
||||
|
||||
long offsetMilliseconds = relativeOffset->total_milliseconds();
|
||||
std::stringstream offsetStringStream;
|
||||
offsetStringStream << offsetMilliseconds / 1000l
|
||||
<< '.'
|
||||
<< offsetMilliseconds % 1000
|
||||
<< 's';
|
||||
Ptr<time_duration>::Ref relativeOffset
|
||||
= plElement->getRelativeOffset();
|
||||
Ptr<FadeInfo>::Ref fadeInfo = plElement->getFadeInfo();
|
||||
|
||||
Ptr<Playable>::Ref playable;
|
||||
switch (plElement->getType()) {
|
||||
|
@ -1239,12 +1232,83 @@ WebStorageClient :: acquirePlaylist(Ptr<SessionId>::Ref sessionId,
|
|||
= smilParNode->add_child(smilPlayableNodeName);
|
||||
smilPlayableNode->set_attribute(
|
||||
smilPlayableUriAttrName,
|
||||
*(playable->getUri()) );
|
||||
*playable->getUri() );
|
||||
smilPlayableNode->set_attribute(
|
||||
smilRelativeOffsetAttrName,
|
||||
offsetStringStream.str() );
|
||||
++it;
|
||||
*TimeConversion::timeDurationToSmilString(
|
||||
relativeOffset ));
|
||||
|
||||
if (fadeInfo) {
|
||||
Ptr<time_duration>::Ref fadeIn = fadeInfo->getFadeIn();
|
||||
Ptr<time_duration>::Ref fadeOut = fadeInfo->getFadeOut();
|
||||
|
||||
if (fadeIn) {
|
||||
xmlpp::Element* smilFadeInNode
|
||||
= smilPlayableNode->add_child(
|
||||
smilAnimateNodeName);
|
||||
smilFadeInNode->set_attribute(
|
||||
smilAnimateNameAttrName,
|
||||
smilAnimateNameAttrValue );
|
||||
smilFadeInNode->set_attribute(
|
||||
smilAnimateFromAttrName,
|
||||
"0%" );
|
||||
smilFadeInNode->set_attribute(
|
||||
smilAnimateToAttrName,
|
||||
"100%" );
|
||||
smilFadeInNode->set_attribute(
|
||||
smilAnimateCalcModeAttrName,
|
||||
smilAnimateCalcModeAttrValue );
|
||||
smilFadeInNode->set_attribute(
|
||||
smilAnimateBeginAttrName,
|
||||
"0s" );
|
||||
smilFadeInNode->set_attribute(
|
||||
smilAnimateEndAttrName,
|
||||
*TimeConversion::timeDurationToSmilString(
|
||||
fadeIn ));
|
||||
smilFadeInNode->set_attribute(
|
||||
smilAnimateCalcModeAttrName,
|
||||
smilAnimateCalcModeAttrValue );
|
||||
smilFadeInNode->set_attribute(
|
||||
smilAnimateFillAttrName,
|
||||
smilAnimateFillAttrValue );
|
||||
}
|
||||
|
||||
if (fadeOut) {
|
||||
xmlpp::Element* smilFadeOutNode
|
||||
= smilPlayableNode->add_child(
|
||||
smilAnimateNodeName);
|
||||
smilFadeOutNode->set_attribute(
|
||||
smilAnimateNameAttrName,
|
||||
smilAnimateNameAttrValue );
|
||||
smilFadeOutNode->set_attribute(
|
||||
smilAnimateFromAttrName,
|
||||
"100%" );
|
||||
smilFadeOutNode->set_attribute(
|
||||
smilAnimateToAttrName,
|
||||
"0%" );
|
||||
smilFadeOutNode->set_attribute(
|
||||
smilAnimateCalcModeAttrName,
|
||||
smilAnimateCalcModeAttrValue );
|
||||
Ptr<time_duration>::Ref playlength = playable->getPlaylength();
|
||||
Ptr<time_duration>::Ref fadeBegin(new time_duration(
|
||||
*playlength - *fadeOut ));
|
||||
smilFadeOutNode->set_attribute(
|
||||
smilAnimateBeginAttrName,
|
||||
*TimeConversion::timeDurationToSmilString(
|
||||
fadeBegin ));
|
||||
smilFadeOutNode->set_attribute(
|
||||
smilAnimateEndAttrName,
|
||||
*TimeConversion::timeDurationToSmilString(
|
||||
playlength ));
|
||||
smilFadeOutNode->set_attribute(
|
||||
smilAnimateCalcModeAttrName,
|
||||
smilAnimateCalcModeAttrValue );
|
||||
smilFadeOutNode->set_attribute(
|
||||
smilAnimateFillAttrName,
|
||||
smilAnimateFillAttrValue );
|
||||
}
|
||||
}
|
||||
++it;
|
||||
}
|
||||
|
||||
std::stringstream fileName;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue