本文整理汇总了C++中Staff类的典型用法代码示例。如果您正苦于以下问题:C++ Staff类的具体用法?C++ Staff怎么用?C++ Staff使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Staff类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: spatium
void BarLine::drawDots(QPainter* painter, qreal x) const
{
qreal _spatium = spatium();
if (parent() == 0) { // for use in palette
drawSymbol(SymId::repeatDot, painter, QPointF(x, 2.0 * _spatium));
drawSymbol(SymId::repeatDot, painter, QPointF(x, 3.0 * _spatium));
}
else if (parent()->type() == Element::Type::SEGMENT) {
System* s = static_cast<Segment*>(parent())->measure()->system();
int staffIdx1 = staffIdx();
int staffIdx2 = staffIdx1 + _span - 1;
int sp = _span;
if (staffIdx2 >= score()->nstaves()) {
qDebug("BarLine: bad _span %d", _span);
staffIdx2 = score()->nstaves() - 1;
sp = staffIdx2 - staffIdx1 + 1;
}
qreal dy = s->staff(staffIdx1)->y();
for (int i = 0; i < sp; ++i) {
Staff* staff = score()->staff(staffIdx1 + i);
StaffType* st = staff->staffType();
qreal doty1 = (st->doty1() + .5) * _spatium;
qreal doty2 = (st->doty2() + .5) * _spatium;
qreal staffy = s->staff(staffIdx1 + i)->y() - dy;
drawSymbol(SymId::repeatDot, painter, QPointF(x, staffy + doty1));
drawSymbol(SymId::repeatDot, painter, QPointF(x, staffy + doty2));
}
}
}
示例2: TestHR
int TestHR() {
Staff *hr = new HR(1, "123123");
cout << "get1:" << hr->calculateSalary() << endl;
cout << "get2:" << hr->calculateSomeThing() << endl;
system("pause");
return 0;
}
示例3: renderKeyboardPreview
void NoteEntryAction::renderKeyboardPreview(QPainter& painter, const MusicCursor& cursor)
{
Staff* staff = cursor.staff();
Part* part = staff->part();
Sheet* sheet = part->sheet();
Bar* bar = sheet->bar(cursor.bar());
QPointF p = bar->position() + QPointF(0, staff->top());
Voice* voice = cursor.staff()->part()->voice(cursor.voice());
VoiceBar* vb = voice->bar(bar);
if (cursor.element() >= vb->elementCount()) {
// cursor is past last element in bar, position of cursor is
// halfway between last element and end of bar
if (vb->elementCount() == 0) {
// unless entire voicebar is still empty
p.rx() += 15.0;
} else {
VoiceElement* ve = vb->element(vb->elementCount()-1);
p.rx() += (ve->x() + bar->size()) / 2;
}
} else {
// cursor is on an element, get the position of that element
p.rx() += vb->element(cursor.element())->x();
}
p.ry() += (cursor.staff()->lineCount() - 1)* cursor.staff()->lineSpacing();
p.ry() -= cursor.staff()->lineSpacing() * cursor.line() / 2;
m_tool->shape()->renderer()->renderNote(painter, m_duration < QuarterNote ? QuarterNote : m_duration, p, 0, Qt::magenta);
}
示例4: toBarLine
void InspectorBarLine::manageSpanData()
{
#if 0
BarLine* bl = toBarLine(inspector->element());
// determine MIN and MAX for SPANFROM and SPANTO
Staff* staffFrom = bl->staff();
Staff* staffTo = bl->score()->staff(bl->staffIdx() + bl->span() - 1);
int staffFromLines= (staffFrom ? staffFrom->lines(bl->tick()) : 5);
int staffToLines = (staffTo ? staffTo->lines(bl->tick()) : 5);
// From: min = minimum possible according to number of staff lines
// max = if same as To, at least 1sp (2 units) above To; if not, max possible according to num.of lines
int min = staffFromLines == 1 ? BARLINE_SPAN_1LINESTAFF_FROM : MIN_BARLINE_SPAN_FROMTO;
int max = bl->span() < 2 ? bl->spanTo() - MIN_BARLINE_FROMTO_DIST
: (staffFromLines == 1 ? BARLINE_SPAN_1LINESTAFF_TO : (staffFromLines-1) * 2 + 2);
b.spanFrom->setMinimum(min);
b.spanFrom->setMaximum(max);
// To: min = if same as From, at least 1sp (2 units) below From; if not, min possible according to num.of lines
// max = max possible according to number of staff lines
min = bl->span() < 2 ? bl->spanFrom() + MIN_BARLINE_FROMTO_DIST
: (staffToLines == 1 ? BARLINE_SPAN_1LINESTAFF_FROM : MIN_BARLINE_SPAN_FROMTO);
max = staffToLines == 1 ? BARLINE_SPAN_1LINESTAFF_TO : (staffToLines-1) * 2 + 2;
b.spanTo->setMinimum(min);
b.spanTo->setMaximum(max);
// determine MAX for SPAN
max = bl->score()->nstaves() - bl->staffIdx();
b.span->setMaximum(max);
#endif
}
示例5: spatium
void Ambitus::draw(QPainter* p) const
{
qreal _spatium = spatium();
qreal lw = lineWidth().val() * _spatium;
p->setPen(QPen(curColor(), lw, Qt::SolidLine, Qt::RoundCap));
drawSymbol(noteHead(), p, _topPos);
drawSymbol(noteHead(), p, _bottomPos);
if (_hasLine)
p->drawLine(_line);
// draw ledger lines (if not in a palette)
if (segment() && track() > -1) {
int tick = segment()->tick();
Staff* stf = score()->staff(staffIdx());
qreal lineDist = stf->lineDistance(tick);
int numOfLines = stf->lines(tick);
qreal step = lineDist * _spatium;
qreal stepTolerance = step * 0.1;
qreal ledgerOffset = score()->styleS(Sid::ledgerLineLength).val() * 0.5 * _spatium;
p->setPen(QPen(curColor(), score()->styleS(Sid::ledgerLineWidth).val() * _spatium,
Qt::SolidLine, Qt::RoundCap) );
if (_topPos.y()-stepTolerance <= -step) {
qreal xMin = _topPos.x() - ledgerOffset;
qreal xMax = _topPos.x() + headWidth() + ledgerOffset;
for (qreal y = -step; y >= _topPos.y()-stepTolerance; y -= step)
p->drawLine(QPointF(xMin, y), QPointF(xMax, y));
}
if (_bottomPos.y()+stepTolerance >= numOfLines * step) {
qreal xMin = _bottomPos.x() - ledgerOffset;
qreal xMax = _bottomPos.x() + headWidth() + ledgerOffset;
for (qreal y = numOfLines*step; y <= _bottomPos.y()+stepTolerance; y += step)
p->drawLine(QPointF(xMin, y), QPointF(xMax, y));
}
}
}
示例6: staff
void Stem::draw(QPainter* painter) const
{
bool useTab = false;
Staff* st = staff();
if (st && st->isTabStaff()) { // stems used in palette do not have a staff
if (st->staffType()->slashStyle())
return;
useTab = true;
}
qreal lw = point(score()->styleS(ST_stemWidth));
painter->setPen(QPen(curColor(), lw, Qt::SolidLine, Qt::RoundCap));
painter->drawLine(line);
// NOT THE BEST PLACE FOR THIS?
// with tablatures, dots are not drawn near 'notes', but near stems
// TODO: adjust bounding rectangle in layout()
if (useTab) {
int nDots = chord()->dots();
if (nDots > 0) {
qreal sp = spatium();
qreal y = stemLen() - ( ((StaffTypeTablature*)st->staffType())->stemsDown() ?
(STAFFTYPE_TAB_DEFAULTSTEMLEN_DN - 0.75) * sp : 0.0 );
symbols[score()->symIdx()][dotSym].draw(painter, magS(),
QPointF(STAFFTYPE_TAB_DEFAULTDOTDIST_X * sp, y), nDots);
}
}
}
示例7: if
std::vector<Staff *> TimePointInterface::GetTstampStaves(Measure *measure)
{
std::vector<Staff *> staves;
std::vector<int>::iterator iter;
std::vector<int> staffList;
if (this->HasStaff()) {
staffList = this->GetStaff();
}
else if (m_start) {
Staff *staff = dynamic_cast<Staff *>(m_start->GetFirstParent(STAFF));
if (staff) staffList.push_back(staff->GetN());
}
for (iter = staffList.begin(); iter != staffList.end(); iter++) {
AttCommonNComparison comparison(STAFF, *iter);
Staff *staff = dynamic_cast<Staff *>(measure->FindChildByAttComparison(&comparison, 1));
if (!staff) {
// LogDebug("Staff with @n '%d' not found in measure '%s'", *iter, measure->GetUuid().c_str());
continue;
}
staves.push_back(staff);
}
if (staves.empty())
LogDebug("Empty @staff array");
return staves;
}
示例8: assert
void Measure::AddChild(Object *child)
{
if (child->IsControlElement()) {
assert(dynamic_cast<ControlElement *>(child));
}
else if (child->IsEditorialElement()) {
assert(dynamic_cast<EditorialElement *>(child));
}
else if (child->Is(STAFF)) {
Staff *staff = dynamic_cast<Staff *>(child);
assert(staff);
if (staff && (staff->GetN() < 1)) {
// This is not 100% safe if we have a <app> and <rdg> with more than
// one staff as a previous child.
staff->SetN(this->GetChildCount());
}
}
else {
LogError("Adding '%s' to a '%s'", child->GetClassName().c_str(), this->GetClassName().c_str());
assert(false);
}
child->SetParent(this);
m_children.push_back(child);
Modify();
}
示例9: staff
bool Arpeggio::edit(MuseScoreView*, int curGrip, int key, Qt::KeyboardModifiers modifiers, const QString&)
{
if (curGrip != 1 || !(modifiers & Qt::ShiftModifier))
return false;
if (key == Qt::Key_Down) {
Staff* s = staff();
Part* part = s->part();
int n = part->nstaves();
int ridx = part->staves()->indexOf(s);
if (ridx >= 0) {
if (_span + ridx < n)
++_span;
}
}
else if (key == Qt::Key_Up) {
if (_span > 1)
--_span;
}
else
return false;
layout();
Chord* c = chord();
rxpos() = -(width() + spatium() * .5);
c->layoutArpeggio2();
return true;
}
示例10: magS
void BarLine::drawDots(QPainter* painter, qreal x) const
{
const Sym& dotsym = symbols[score()->symIdx()][dotSym];
qreal mags = magS();
qreal _spatium = spatium();
if (parent() == 0) { // for use in palette
dotsym.draw(painter, mags, QPointF(x, 1.5 * _spatium));
dotsym.draw(painter, mags, QPointF(x, 2.5 * _spatium));
}
else if (parent()->type() == SEGMENT) {
System* s = static_cast<Segment*>(parent())->measure()->system();
int staffIdx1 = staffIdx();
int staffIdx2 = staffIdx1 + _span - 1;
int sp = _span;
if (staffIdx2 >= score()->nstaves()) {
qDebug("BarLine: bad _span %d", _span);
staffIdx2 = score()->nstaves() - 1;
sp = staffIdx2 - staffIdx1 + 1;
}
qreal dy = s->staff(staffIdx1)->y();
for (int i = 0; i < sp; ++i) {
Staff* staff = score()->staff(staffIdx1 + i);
StaffType* st = staff->staffType();
qreal doty1 = st->doty1() * _spatium;
qreal doty2 = st->doty2() * _spatium;
qreal staffy = s->staff(staffIdx1 + i)->y() - dy;
dotsym.draw(painter, mags, QPointF(x, staffy + doty1));
dotsym.draw(painter, mags, QPointF(x, staffy + doty2));
}
}
}
示例11: importBww
Score::FileError importBww(MasterScore* score, const QString& path)
{
qDebug("Score::importBww(%s)", qPrintable(path));
QFile fp(path);
if(!fp.exists())
return Score::FileError::FILE_NOT_FOUND;
if (!fp.open(QIODevice::ReadOnly))
return Score::FileError::FILE_OPEN_ERROR;
QString id("importBww");
Part* part = new Part(score);
part->setId(id);
score->appendPart(part);
Staff* staff = new Staff(score);
staff->setPart(part);
part->staves()->push_back(staff);
score->staves().push_back(staff);
Bww::Lexer lex(&fp);
Bww::MsScWriter wrt;
wrt.setScore(score);
score->style()->set(StyleIdx::measureSpacing, 1.0);
Bww::Parser p(lex, wrt);
p.parse();
score->setSaved(false);
score->setCreated(true);
score->connectTies();
qDebug("Score::importBww() done");
return Score::FileError::FILE_NO_ERROR; // OK
}
示例12: TestCasePositionArray
/// Tests the Position Functions
/// @return True if all tests were executed, false if not
bool StaffTestSuite::TestCasePositionArray()
{
//------Last Checked------//
// - Jan 25, 2005
Staff staff;
staff.m_positionArray[0].Add(new Position);
staff.m_positionArray[1].Add(new Position);
wxUint32 i = 0;
for (; i <= NUM_STAFF_VOICES; i++)
{
wxUint32 j = 0;
for (; j < 2; j++)
{
TEST(wxString::Format(wxT("IsValidPositionIndex - %d, %d"), i, j),
(staff.IsValidPositionIndex(i, j) == ((i < NUM_STAFF_VOICES) && (j == 0)))
);
bool valid = ((i < NUM_STAFF_VOICES) && (j == 0));
bool validPointer = (staff.GetPosition(i, j) != NULL);
TEST(wxString::Format(wxT("GetPosition - %d, %d"), i, j),
(valid == validPointer)
);
}
}
return (true);
}
示例13: tag
bool Part::readProperties(XmlReader& e)
{
const QStringRef& tag(e.name());
if (tag == "Staff") {
Staff* staff = new Staff(score());
staff->setPart(this);
score()->staves().push_back(staff);
_staves.push_back(staff);
staff->read(e);
}
else if (tag == "Instrument") {
Instrument* instr = new Instrument;
instr->read(e, this);
setInstrument(instr, -1);
}
else if (tag == "name")
instrument()->setLongName(e.readElementText());
else if (tag == "shortName")
instrument()->setShortName(e.readElementText());
else if (tag == "trackName")
_partName = e.readElementText();
else if (tag == "show")
_show = e.readInt();
else
return false;
return true;
}
示例14: while
void Part::read(XmlReader& e)
{
while (e.readNextStartElement()) {
const QStringRef& tag(e.name());
if (tag == "Staff") {
Staff* staff = new Staff(_score);
staff->setPart(this);
_score->staves().push_back(staff);
_staves.push_back(staff);
staff->read(e);
}
else if (tag == "Instrument") {
Instrument* instr = new Instrument;
instr->read(e);
setInstrument(instr, -1);
}
else if (tag == "name")
instrument()->setLongName(e.readElementText());
else if (tag == "shortName")
instrument()->setShortName(e.readElementText());
else if (tag == "trackName")
_partName = e.readElementText();
else if (tag == "show")
_show = e.readInt();
else
e.unknown();
}
if (_partName.isEmpty())
_partName = instrument()->trackName();
}
示例15: while
void Part::read(XmlReader* r)
{
int rstaff = 0;
QString val;
while (r->readElement()) {
MString8 tag(r->tag());
if (tag == "Staff") {
Staff* staff = new Staff(_score, this, rstaff);
_score->staves().push_back(staff);
_staves.push_back(staff);
staff->read(r);
++rstaff;
}
else if (tag == "Instrument")
instr(0)->read(r);
else if (r->readString("name", &val)) {
; // instr(0)->longName() = QTextDocumentFragment::fromHtml(val);
}
else if (r->readString("shortName", &val)) {
; // instr(0)->shortName() = QTextDocumentFragment::fromHtml(val);
}
else if (r->readString("trackName", &_trackName))
;
else if (r->readBool("show", &_show))
_show = val.toInt();
else
r->unknown();
}
}