本文整理汇总了C++中settings::start_note方法的典型用法代码示例。如果您正苦于以下问题:C++ settings::start_note方法的具体用法?C++ settings::start_note怎么用?C++ settings::start_note使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类settings
的用法示例。
在下文中一共展示了settings::start_note方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
note_sequence(settings &set) {
if (set.note_mode() == settings::note_mode_list) {
impl_.reset(new detail::listed_sqeuence(
set.concert_pitch(),
set.note_list().begin(), set.note_list().end(),
set.note_list().size()));
}
else {
assert(set.note_mode() == settings::note_mode_start);
trc("using a start note and distance");
int start_offset = parse_note(set.start_note().c_str());
int stop_offset;
if (! set.end_note().empty()) {
stop_offset = parse_note(set.end_note().c_str());
}
else if (set.num_notes() >= 0) {
stop_offset = start_offset + set.num_notes() * set.note_distance();
}
else {
stop_offset = start_offset + 12;
}
int step = set.note_distance();
if (start_offset > stop_offset && step > 0) {
std::cerr << "warning: making the step negative since the end note is lower than the start note." << std::endl;
step = -step;
}
else if (start_offset < stop_offset && step < 0) {
std::cerr << "warning: making the step positive since the end note is higher than the start note." << std::endl;
step = -step;
}
trc("start: " << start_offset);
trc("stop: " << stop_offset);
trc("step: " << step);
impl_.reset(
new detail::generated_sequence(
set.concert_pitch(), start_offset, stop_offset, step
)
);
trc("done");
assert(impl_.get());
}
}