/* RESTS should have a third parameter OFFSET. At present we in effect assume OFFSET+LENGTH to be a multiple of METERDENOM. */ Char *rests(Char *Result, short len, short meterdenom, boolean blind) { Char r[256], bl[256]; Char STR1[256]; if (blind) strcpy(bl, "b"); else *bl = '\0'; if (len == 0) return strcpy(Result, ""); else { if (len == meterdenom * 128) { sprintf(Result, "r9%s ", bl); return Result; } else { if (dotted(len)) { rests(r, len - len / 3, meterdenom, false); r[2] = 'd'; sprintf(Result, "%s%s ", r, bl); return Result; } else if (len >= 64 / meterdenom) { sprintf(Result, "%sr%c%s ", rests(STR1, len - 64 / meterdenom, meterdenom, blind), durations[whole + logTwo(meterdenom) - 1], bl); return Result; } else return (rests(Result, len, meterdenom * 2, blind)); } } }
Static void supplyRests(voice_index voice) { Char STR2[4]; Char STR3[256]; if (bar_of_line == 1 && pedanticWarnings()) { printf("Bar %d Voice %d", bar_no, voice); warning(" Filling missing voice with rests", !print); } if (pickup > 0) put(rests(STR3, pickup, meterdenom, visible), nospace); sprintf(STR2, "%s ", pause); put(STR2, putspace); }
Local void processMBR(struct LOC_musicParagraph *LINK) { short s, bars_of_rest; Char mbr[256]; short FORLIM; Char STR1[256]; Char STR3[256]; strcpy(mbr, multi_bar_rest); predelete(mbr, 2); getNum(mbr, &bars_of_rest); bar_no += bars_of_rest; FORLIM = nstaves; for (s = 1; s <= FORLIM; s++) { if (pickup > 0) put(rests(STR1, pickup, meterdenom, visible), nospace); sprintf(STR3, "rm%s /", toString(STR1, bars_of_rest)); putLine(STR3); } putLine(""); }
void TestTfpconverter::parse() { QFETCH(QString, fileName); QFile file(fileName); QVERIFY(file.open(QIODevice::ReadOnly | QIODevice::Text)); QTextStream ts(&file); ts.setCodec("UTF-8"); QString html = ts.readAll(); THtmlParser parser; parser.parse(html); QString result = parser.toString(); QFile res("result.phtm"); res.open(QIODevice::WriteOnly | QIODevice::Truncate); QTextStream rests(&res); rests.setCodec("UTF-8"); rests << result; res.close(); QCOMPARE(html, result); }