diff --git a/livesupport/modules/storage/src/TestStorageClientTest.cxx b/livesupport/modules/storage/src/TestStorageClientTest.cxx index 31f484dfa..5e022d092 100644 --- a/livesupport/modules/storage/src/TestStorageClientTest.cxx +++ b/livesupport/modules/storage/src/TestStorageClientTest.cxx @@ -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); diff --git a/livesupport/modules/storage/src/WebStorageClient.cxx b/livesupport/modules/storage/src/WebStorageClient.cxx index 74d3ecd64..11a7214eb 100644 --- a/livesupport/modules/storage/src/WebStorageClient.cxx +++ b/livesupport/modules/storage/src/WebStorageClient.cxx @@ -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::Ref sessionId, while (it != oldPlaylist->end()) { Ptr::Ref plElement = it->second; - Ptr::Ref fadeInfo = plElement->getFadeInfo(); - - Ptr::Ref - relativeOffset = plElement->getRelativeOffset(); - - long offsetMilliseconds = relativeOffset->total_milliseconds(); - std::stringstream offsetStringStream; - offsetStringStream << offsetMilliseconds / 1000l - << '.' - << offsetMilliseconds % 1000 - << 's'; + Ptr::Ref relativeOffset + = plElement->getRelativeOffset(); + Ptr::Ref fadeInfo = plElement->getFadeInfo(); Ptr::Ref playable; switch (plElement->getType()) { @@ -1239,12 +1232,83 @@ WebStorageClient :: acquirePlaylist(Ptr::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::Ref fadeIn = fadeInfo->getFadeIn(); + Ptr::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::Ref playlength = playable->getPlaylength(); + Ptr::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;