added <animate> tag generation to acquirePlaylist. may god be with us.

This commit is contained in:
fgerlits 2005-07-01 18:43:19 +00:00
parent 713d54c3ba
commit 8c195b9436
2 changed files with 83 additions and 17 deletions

View file

@ -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);

View file

@ -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,18 +1205,10 @@ WebStorageClient :: acquirePlaylist(Ptr<SessionId>::Ref sessionId,
while (it != oldPlaylist->end()) {
Ptr<PlaylistElement>::Ref plElement = it->second;
Ptr<time_duration>::Ref relativeOffset
= plElement->getRelativeOffset();
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<Playable>::Ref playable;
switch (plElement->getType()) {
case PlaylistElement::AudioClipType :
@ -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;