本文整理汇总了C++中Composition::getBarRangeForTime方法的典型用法代码示例。如果您正苦于以下问题:C++ Composition::getBarRangeForTime方法的具体用法?C++ Composition::getBarRangeForTime怎么用?C++ Composition::getBarRangeForTime使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Composition
的用法示例。
在下文中一共展示了Composition::getBarRangeForTime方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Note
timeT
MatrixPercussionInsertionCommand::getEndTime(Segment &segment,
timeT time,
Event &event)
{
timeT endTime =
time + Note(Note::Semibreve,
0).getDuration();
timeT barEndTime = segment.getBarEndForTime(time);
timeT segmentEndTime = segment.getEndMarkerTime();
if (barEndTime > endTime)
endTime = barEndTime;
if (endTime > segmentEndTime)
endTime = segmentEndTime;
int pitch = 0;
if (event.has(PITCH)) {
pitch = event.get<Int>(PITCH);
}
for (Segment::iterator i = segment.findTime(time);
segment.isBeforeEndMarker(i); ++i) {
if ((*i)->has(PITCH) &&
(*i)->get
<Int>(PITCH) == pitch) {
if ((*i)->getAbsoluteTime() > time &&
(*i)->isa(Note::EventType)) {
endTime = (*i)->getAbsoluteTime();
}
}
}
Composition *comp = segment.getComposition();
std::pair<timeT, timeT> barRange =
comp->getBarRangeForTime(time);
timeT barDuration = barRange.second - barRange.first;
if (endTime > time + barDuration) {
endTime = time + barDuration;
}
return endTime;
}