Changeset View
Changeset View
Standalone View
Standalone View
src/timeline/transitionhandler.cpp
Context not available. | |||||
537 | } | 537 | } | ||
---|---|---|---|---|---|
538 | type = mlt_service_identify(nextservice); | 538 | type = mlt_service_identify(nextservice); | ||
539 | } | 539 | } | ||
540 | // Search for visible tracks and arrange them on a 2x2 grid. | ||||
541 | // If there are more than 4 visible tracks, the extra | ||||
542 | // tracks will be displayed without rescaling on top of the grid. | ||||
543 | // The user has to manually hide them. | ||||
540 | for (int i = 1, screen = 0; i < tracks && screen < 4; ++i) { | 544 | for (int i = 1, screen = 0; i < tracks && screen < 4; ++i) { | ||
541 | Mlt::Producer trackProducer(m_tractor->track(i)); | 545 | Mlt::Producer trackProducer(m_tractor->track(i)); | ||
542 | if (QString(trackProducer.get("hide")).toInt() != 1) { | 546 | // A track is in hidden state in "hide" has the bit 0x01 set. | ||
547 | // See Track::setInfo (in track.cpp) for details | ||||
548 | const int trackVisibilityFlags = QString(trackProducer.get("hide")).toInt(); | ||||
549 | const bool trackVisible = ( (trackVisibilityFlags & 1) == 0 ); | ||||
550 | if (trackVisible) { | ||||
543 | Mlt::Transition transition(*m_tractor->profile(), "composite"); | 551 | Mlt::Transition transition(*m_tractor->profile(), "composite"); | ||
544 | transition.set("mlt_service", "composite"); | 552 | transition.set("mlt_service", "composite"); | ||
545 | transition.set("a_track", 0); | 553 | transition.set("a_track", 0); | ||
Context not available. |