QByteArray MSG::makeCmd(){
	QByteArray res;
	QString msg;
	QString log;
	QByteArray data;
	switch(m_type){
		case MSG_TXT:
			// MSG [email protected] xxxxxx 126\r\nMIME-Version: 1.0\r\nContent-Type: text/plain; charset=UTF-8\r\nX-MMS-IM-Format: FN=Helvetica; EF=; CO=000000; CS=0; PF=22\r\n\r\nhola
			msg = "MIME-Version: 1.0\r\nContent-Type: text/plain; charset=UTF-8\r\nX-MMS-IM-Format: FN=" + m_font + "; EF=" + m_bold + m_italic + m_underline + "; CO=" + m_color + "; CS=0; PF=22\r\n\r\n" + m_msg;
			res.append(beginCmd() + " A " + QString::number(msg.size()) + "\r\n" + msg + endCmd());
			return res;
			break;
		case MSG_IDENTIFICATION:
			//MSG 536 U 96\r\nMIME-Version: 1.0\r\nContent-Type: text/x-clientcaps\r\n\r\nClient-Name: aMSN 0.98b\r\nChat-Logging: Y\r\n
			if (m_clientIsLogging)
				log = "Y";
			else
				log = "N";
			msg = "MIME-Version: 1.0\r\nContent-Type: text/x-clientcaps\r\n\r\nClient-Name: " + m_clientName + " " + m_clientVersion + "\r\nChat-Logging: " + log + "\r\n";
			res.append(beginCmd() + " U " + QString::number(msg.size()) + "\r\n" + msg + endCmd());
			return res;
			break;
		case MSG_ISTYPING:
			msg = "MIME-Version: 1.0\r\nContent-Type: text/x-msmsgscontrol\r\nTypingUser: "******"\r\n\r\n";
			res.append(beginCmd() + " U " + QString::number(msg.size()) + "\r\n" + msg + endCmd());
			return res;
			break;
		default:
			break;
		}
}
Пример #2
0
void Score::cmdJoinMeasure(Measure* m1, Measure* m2)
      {
      startCmd();

      deselectAll();

      ScoreRange range;
      range.read(m1->first(), m2->last());

      int tick1 = m1->tick();
      int tick2 = m2->endTick();
      for (auto i : _spanner.findContained(tick1, tick2))
            undo(new RemoveElement(i.value));
      undoRemoveMeasures(m1, m2);
      Measure* m = new Measure(this);
      m->setEndBarLineType(m2->endBarLineType(), m2->endBarLineGenerated(),
         m2->endBarLineVisible(), m2->endBarLineColor());

      m->setTick(m1->tick());
      m->setTimesig(m1->timesig());
      Fraction f;
      for (Measure* mm = m1; mm; mm = mm->nextMeasure())  {
            f += mm->len();
            if (mm == m2)
                  break;
            }
      m->setLen(f);
      m->setNext(m2->next());
      m->setPrev(m2->next() ? m2->next()->prev() : last());
      undo(new InsertMeasures(m, m));

      range.write(this, m1->tick());

      endCmd();
      }
Пример #3
0
void Score::cmdSplitMeasure(ChordRest* cr)
      {
      Segment* segment = cr->segment();
      Measure* measure = segment->measure();

      ScoreRange range;
      range.read(measure->first(), measure->last());

      startCmd();
      deleteItem(measure);

      // create empty measures:
      Measure* m2 = static_cast<Measure*>(insertMeasure(Element::Type::MEASURE, measure->next(), true));
      Measure* m1 = static_cast<Measure*>(insertMeasure(Element::Type::MEASURE, m2, true));

      int tick = segment->tick();
      m1->setTick(measure->tick());
      m2->setTick(tick);
      int ticks1 = segment->tick() - measure->tick();
      int ticks2 = measure->ticks() - ticks1;
      m1->setTimesig(measure->timesig());
      m2->setTimesig(measure->timesig());
      m1->adjustToLen(Fraction::fromTicks(ticks1));
      m2->adjustToLen(Fraction::fromTicks(ticks2));
      range.write(this, m1->tick());

      endCmd();
      }
QByteArray ANS::makeCmd(){
	//ANS trid your_passport ticket sessid\r\n
	QByteArray res;
	res += beginCmd();
	res += " " + m_passport  + " " +  m_ticket + " " + m_sessId;
	res += endCmd();
	return res;
}
Пример #5
0
void Score::write(Xml& xml, bool selectionOnly)
{
    // if we have multi measure rests and some parts are hidden,
    // then some layout information is missing:
    // relayout with all parts set visible

    QList<Part*> hiddenParts;
    bool unhide = false;
    if (styleB(StyleIdx::createMultiMeasureRests)) {
        for (Part* part : _parts) {
            if (!part->show()) {
                if (!unhide) {
                    startCmd();
                    unhide = true;
                }
                part->undoChangeProperty(P_ID::VISIBLE, true);
                hiddenParts.append(part);
            }
        }
    }
    if (unhide) {
        doLayout();
        for (Part* p : hiddenParts)
            p->setShow(false);
    }

    xml.stag("Score");
    switch(_layoutMode) {
    case LayoutMode::PAGE:
    case LayoutMode::FLOAT:
    case LayoutMode::SYSTEM:
        break;
    case LayoutMode::LINE:
        xml.tag("layoutMode", "line");
        break;
    }

#ifdef OMR
    if (_omr && xml.writeOmr)
        _omr->write(xml);
#endif
    if (_showOmr && xml.writeOmr)
        xml.tag("showOmr", _showOmr);
    if (_audio && xml.writeOmr) {
        xml.tag("playMode", int(_playMode));
        _audio->write(xml);
    }

    for (int i = 0; i < 32; ++i) {
        if (!_layerTags[i].isEmpty()) {
            xml.tag(QString("LayerTag id=\"%1\" tag=\"%2\"").arg(i).arg(_layerTags[i]),
                    _layerTagComments[i]);
        }
    }
    int n = _layer.size();
    for (int i = 1; i < n; ++i) {       // dont save default variant
        const Layer& l = _layer[i];
        xml.tagE(QString("Layer name=\"%1\" mask=\"%2\"").arg(l.name).arg(l.tags));
    }
    xml.tag("currentLayer", _currentLayer);

    if (!MScore::testMode)
        _synthesizerState.write(xml);

    if (pageNumberOffset())
        xml.tag("page-offset", pageNumberOffset());
    xml.tag("Division", MScore::division);
    xml.curTrack = -1;

    _style.save(xml, true);      // save only differences to buildin style

    xml.tag("showInvisible", _showInvisible);
    xml.tag("showUnprintable", _showUnprintable);
    xml.tag("showFrames", _showFrames);
    xml.tag("showMargins", _showPageborders);

    QMapIterator<QString, QString> i(_metaTags);
    while (i.hasNext()) {
        i.next();
        if ((!MScore::testMode  && !MScore::saveTemplateMode) || (i.key() != "platform" && i.key() != "creationDate"))
            xml.tag(QString("metaTag name=\"%1\"").arg(i.key().toHtmlEscaped()), i.value());
    }

    if (!selectionOnly) {
        xml.stag("PageList");
        foreach(Page* page, _pages)
            page->write(xml);
        xml.etag();
    }

    xml.curTrack = 0;
    int staffStart;
    int staffEnd;
    MeasureBase* measureStart;
    MeasureBase* measureEnd;

    if (selectionOnly) {
        staffStart   = _selection.staffStart();
        staffEnd     = _selection.staffEnd();
        // make sure we select full parts
        Staff* sStaff = staff(staffStart);
        Part* sPart = sStaff->part();
        Staff* eStaff = staff(staffEnd - 1);
        Part* ePart = eStaff->part();
        staffStart = staffIdx(sPart);
        staffEnd = staffIdx(ePart) + ePart->nstaves();
        measureStart = _selection.startSegment()->measure();
        if (_selection.endSegment())
            measureEnd   = _selection.endSegment()->measure()->next();
        else
            measureEnd   = 0;
    }
    else {
        staffStart   = 0;
        staffEnd     = nstaves();
        measureStart = first();
        measureEnd   = 0;
    }

    foreach(const Part* part, _parts) {
        if (!selectionOnly || ((staffIdx(part) >= staffStart) && (staffEnd >= staffIdx(part) + part->nstaves())))
            part->write(xml);
    }

    xml.curTrack = 0;
    xml.trackDiff = -staffStart * VOICES;
    if (measureStart) {
        for (int staffIdx = staffStart; staffIdx < staffEnd; ++staffIdx) {
            xml.stag(QString("Staff id=\"%1\"").arg(staffIdx + 1 - staffStart));
            xml.curTick  = measureStart->tick();
            xml.tickDiff = xml.curTick;
            xml.curTrack = staffIdx * VOICES;
            bool writeSystemElements = staffIdx == staffStart;
            for (MeasureBase* m = measureStart; m != measureEnd; m = m->next())
                writeMeasure(xml, m, staffIdx, writeSystemElements);
            xml.etag();
        }
    }
    xml.curTrack = -1;
    if (!selectionOnly) {
        for (const Excerpt* excerpt : _excerpts) {
            if (excerpt->partScore() != this)
                excerpt->partScore()->write(xml, false);       // recursion
        }
    }
    if (parentScore())
        xml.tag("name", name());
    xml.etag();

    if (unhide) {
        endCmd();
        undo()->undo();
        endUndoRedo();
    }
}
Пример #6
0
void Score::cmdSplitMeasure(ChordRest* cr)
      {
      startCmd();
      splitMeasure(cr->segment());
      endCmd();
      }
QByteArray USRchat::makeCmd(){
	//USR 1 [email protected] 17262740.1050826919.32308\r\n
	QByteArray res;
	res.append(beginCmd() + " " + m_passport + " " + m_ticket + endCmd());
	return res;
}
QByteArray BYE::makeCmd(){
	//BYE [email protected]\r\n
	QByteArray res;
	res.append(beginCmd() + " " + m_passport + endCmd());
	return res;
}
QByteArray CAL::makeCmd(){
	//CAL 1 [email protected]\r\n
	QByteArray res;
	res.append(beginCmd() + " " + m_passport + endCmd());
	return res;
}