//------------------------------------------------------------------------ void musicxmlfactory::maketuplet(int actual, int normal, const std::vector<Sxmlelement>& notes) { if (notes.empty()) return; Sxmlelement timemod = element(k_time_modification); timemod->push (element (k_actual_notes, actual)); timemod->push (element (k_normal_notes, normal)); for (unsigned int i=0; i < notes.size(); i++) notes[i]->push(timemod); Sxmlelement notations = getNotations (notes[0]); Sxmlelement tuplet = element (k_tuplet); tuplet->add (attribute ("type", "start")); notations->push (tuplet); notations = getNotations (notes[notes.size()-1]); tuplet = element (k_tuplet); tuplet->add (attribute ("type", "stop")); notations->push (tuplet); }
bool DOMDocumentTypeImpl::isEqualNode(const DOMNode* arg) const { if (isSameNode(arg)) { return true; } if (!fNode.isEqualNode(arg)) { return false; } DOMDocumentType* argDT = (DOMDocumentType*) arg; // check the string values if (!getPublicId()) { if (argDT->getPublicId()) { return false; } } else if (!XMLString::equals(getPublicId(), argDT->getPublicId())) { return false; } if (!getSystemId()) { if (argDT->getSystemId()) { return false; } } else if (!XMLString::equals(getSystemId(), argDT->getSystemId())) { return false; } if (!getInternalSubset()) { if (argDT->getInternalSubset()) { return false; } } else if (!XMLString::equals(getInternalSubset(), argDT->getInternalSubset())) { return false; } // check the notations if (getNotations()) { if (!argDT->getNotations()) return false; DOMNamedNodeMap* map1 = getNotations(); DOMNamedNodeMap* map2 = argDT->getNotations(); XMLSize_t len = map1->getLength(); if (len != map2->getLength()) { return false; } for (XMLSize_t i = 0; i < len; i++) { DOMNode* n1 = map1->item(i); DOMNode* n2 = map2->getNamedItem(n1->getNodeName()); if (!n2 || !n1->isEqualNode(n2)) { return false; } } } else { if (argDT->getNotations()) return false; } // check the entities if (getEntities()) { if (!argDT->getEntities()) return false; DOMNamedNodeMap* map1 = getEntities(); DOMNamedNodeMap* map2 = argDT->getEntities(); XMLSize_t len = map1->getLength(); if (len != map2->getLength()) { return false; } for (XMLSize_t i = 0; i < len; i++) { DOMNode* n1 = map1->item(i); DOMNode* n2 = map2->getNamedItem(n1->getNodeName()); if (!n2 || !n1->isEqualNode(n2)) { return false; } } } else { if (argDT->getEntities()) return false; } return fParent.isEqualNode(arg); }
//------------------------------------------------------------------------ void musicxmlfactory::addnotation (Sxmlelement elt, Sxmlelement notation) { Sxmlelement notations = getNotations (elt); notations->push (notation); }