void addTitleToScore(Score *score, const QString &string, int textCounter) { Text* text = new Text(score); if (textCounter == 1) text->setSubStyle(SubStyle::TITLE); else if (textCounter == 2) text->setSubStyle(SubStyle::COMPOSER); text->setPlainText(string.right(string.size() - TEXT_PREFIX.size())); MeasureBase* measure = score->first(); if (measure->type() != Element::Type::VBOX) { measure = new VBox(score); measure->setTick(0); measure->setNext(score->first()); score->measures()->add(measure); } measure->add(text); }
void addTitleToScore(Score *score, const QString &string, int textCounter) { Tid ssid = Tid::DEFAULT; if (textCounter == 1) ssid = Tid::TITLE; else if (textCounter == 2) ssid = Tid::COMPOSER; Text* text = new Text(score, ssid); text->setPlainText(string.right(string.size() - int(TEXT_PREFIX.size()))); MeasureBase* measure = score->first(); if (!measure->isVBox()) { measure = new VBox(score); measure->setTick(0); measure->setNext(score->first()); score->measures()->add(measure); } measure->add(text); }
void addTitle(Score *score, const QString &string, int *textCounter) { if (string.left(TEXT_PREFIX.size()) == QString::fromStdString(TEXT_PREFIX)) { ++*textCounter; Text* text = new Text(score); if (*textCounter == 1) text->setTextStyleType(TextStyleType::TITLE); else if (*textCounter == 2) text->setTextStyleType(TextStyleType::COMPOSER); text->setText(string.right(string.size() - TEXT_PREFIX.size())); MeasureBase* measure = score->first(); if (measure->type() != Element::Type::VBOX) { measure = new VBox(score); measure->setTick(0); measure->setNext(score->first()); score->measures()->add(measure); } measure->add(text); } }
void MTrack::processMeta(int tick, const MidiEvent& mm) { if (!staff) { qDebug("processMeta: no staff"); return; } const uchar* data = (uchar*)mm.edata(); int staffIdx = staff->idx(); Score* cs = staff->score(); switch (mm.metaType()) { case META_TEXT: case META_LYRIC: { QString s((char*)data); cs->addLyrics(tick, staffIdx, s); } break; case META_TRACK_NAME: name = (const char*)data; break; case META_TEMPO: { unsigned tempo = data[2] + (data[1] << 8) + (data[0] <<16); double t = 1000000.0 / double(tempo); cs->setTempo(tick, t); // TODO: create TempoText } break; case META_KEY_SIGNATURE: { int key = ((const char*)data)[0]; if (key < -7 || key > 7) { qDebug("ImportMidi: illegal key %d", key); break; } KeySigEvent ks; ks.setAccidentalType(key); (*staff->keymap())[tick] = ks; hasKey = true; } break; case META_COMPOSER: // mscore extension case META_POET: case META_TRANSLATOR: case META_SUBTITLE: case META_TITLE: { Text* text = new Text(cs); switch(mm.metaType()) { case META_COMPOSER: text->setTextStyleType(TEXT_STYLE_COMPOSER); break; case META_TRANSLATOR: text->setTextStyleType(TEXT_STYLE_TRANSLATOR); break; case META_POET: text->setTextStyleType(TEXT_STYLE_POET); break; case META_SUBTITLE: text->setTextStyleType(TEXT_STYLE_SUBTITLE); break; case META_TITLE: text->setTextStyleType(TEXT_STYLE_TITLE); break; } text->setText((const char*)(mm.edata())); MeasureBase* measure = cs->first(); if (measure->type() != Element::VBOX) { measure = new VBox(cs); measure->setTick(0); measure->setNext(cs->first()); cs->add(measure); } measure->add(text); } break; case META_COPYRIGHT: cs->setMetaTag("Copyright", QString((const char*)(mm.edata()))); break; case META_TIME_SIGNATURE: qDebug("midi: meta timesig: %d, division %d", tick, MScore::division); cs->sigmap()->add(tick, Fraction(data[0], 1 << data[1])); break; default: if (MScore::debugMode) qDebug("unknown meta type 0x%02x", mm.metaType()); break; } }