comparison layer/FlexiNoteLayer.cpp @ 715:7169d08e9467 tonioni

Snapping to feature frame rightwards in flexi-note should snap to the end of a note as well as the start (should also snap to start of next one, but that doesn't seem to work either -- not enough points returned by getPoints). This should possibly happen in plain note and region layers too.
author Chris Cannam
date Fri, 10 Jan 2014 14:17:10 +0000
parents 797eb48f38c1
children 137d3ff48f73
comparison
equal deleted inserted replaced
714:797eb48f38c1 715:7169d08e9467
611 bool found = false; 611 bool found = false;
612 612
613 for (FlexiNoteModel::PointList::const_iterator i = points.begin(); 613 for (FlexiNoteModel::PointList::const_iterator i = points.begin();
614 i != points.end(); ++i) { 614 i != points.end(); ++i) {
615 615
616 cerr << "FlexiNoteModel: point at " << i->frame << endl;
617
616 if (snap == SnapRight) { 618 if (snap == SnapRight) {
617 619
618 if (i->frame > frame) { 620 if (i->frame > frame) {
619 snapped = i->frame; 621 snapped = i->frame;
622 found = true;
623 break;
624 } else if (i->frame + i->duration >= frame) {
625 snapped = i->frame + i->duration;
620 found = true; 626 found = true;
621 break; 627 break;
622 } 628 }
623 629
624 } else if (snap == SnapLeft) { 630 } else if (snap == SnapLeft) {
651 found = true; 657 found = true;
652 break; 658 break;
653 } 659 }
654 } 660 }
655 } 661 }
662
663 cerr << "snapToFeatureFrame: frame " << frame << " -> snapped " << snapped << ", found = " << found << endl;
656 664
657 frame = snapped; 665 frame = snapped;
658 return found; 666 return found;
659 } 667 }
660 668