This commit is contained in:
fgerlits 2005-08-17 14:42:44 +00:00
parent e674ac5ce5
commit 4fdb46e098

View file

@ -22,7 +22,7 @@
Author : $Author: fgerlits $ Author : $Author: fgerlits $
Version : $Revision: 1.27 $ Version : $Revision: 1.28 $
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/gLiveSupport/src/SimplePlaylistManagementWindow.cxx,v $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/gLiveSupport/src/SimplePlaylistManagementWindow.cxx,v $
------------------------------------------------------------------------------*/ ------------------------------------------------------------------------------*/
@ -664,17 +664,36 @@ SimplePlaylistManagementWindow :: swapPlaylistElements(
firstElement->setRelativeOffset(secondStart); firstElement->setRelativeOffset(secondStart);
secondElement->setRelativeOffset(firstStart); secondElement->setRelativeOffset(firstStart);
// move fades around if they seem to be simple crossfades // read the fade infos
Ptr<time_duration>::Ref beginFade = firstElement->getFadeInfo() bool hasFadeInfo = false;
->getFadeIn(); Ptr<FadeInfo>::Ref firstFadeInfo = firstElement->getFadeInfo();
Ptr<time_duration>::Ref midFade1 = firstElement->getFadeInfo() Ptr<FadeInfo>::Ref secondFadeInfo = secondElement->getFadeInfo();
->getFadeOut(); Ptr<time_duration>::Ref beginFade,
Ptr<time_duration>::Ref midFade2 = secondElement->getFadeInfo() midFade1,
->getFadeIn(); midFade2,
Ptr<time_duration>::Ref endFade = secondElement->getFadeInfo() endFade;
->getFadeOut();
if (*midFade1 == *midFade2) { if (firstFadeInfo) {
hasFadeInfo = true;
beginFade = firstFadeInfo->getFadeIn();
midFade1 = firstFadeInfo->getFadeOut();
} else {
beginFade.reset(new time_duration(0,0,0,0));
midFade1 .reset(new time_duration(0,0,0,0));
}
if (secondFadeInfo) {
hasFadeInfo = true;
midFade2 = secondFadeInfo->getFadeIn();
endFade = secondFadeInfo->getFadeOut();
} else if (hasFadeInfo) {
midFade2.reset(new time_duration(0,0,0,0));
endFade .reset(new time_duration(0,0,0,0));
}
// move fades around if they seem to be simple crossfades
// otherwise, just leave them as they are
if (hasFadeInfo && *midFade1 == *midFade2) {
Ptr<FadeInfo>::Ref firstFadeInfo (new FadeInfo(beginFade, midFade1)); Ptr<FadeInfo>::Ref firstFadeInfo (new FadeInfo(beginFade, midFade1));
Ptr<FadeInfo>::Ref secondFadeInfo(new FadeInfo(midFade1, endFade )); Ptr<FadeInfo>::Ref secondFadeInfo(new FadeInfo(midFade1, endFade ));