fixed bug #1394
This commit is contained in:
parent
e674ac5ce5
commit
4fdb46e098
1 changed files with 30 additions and 11 deletions
|
@ -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 ));
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue