Пример #1
0
void PosLen::read(Xml& xml, const char* name)
{
    sn = -1;
    for (;;)
    {
        Xml::Token token = xml.parse();
        const QString& tag = xml.s1();
        switch (token)
        {
        case Xml::Error:
        case Xml::End:
            return;

        case Xml::TagStart:
            xml.unknown(name);
            break;

        case Xml::Attribut:
            if (tag == "tick")
            {
                setType(TICKS);
                setTick(xml.s2().toInt());
            }
            else if (tag == "sample")
            {
                setType(FRAMES);
                setFrame(xml.s2().toInt());
            }
            else if (tag == "len")
            {
                int n = xml.s2().toInt();
                switch (type())
                {
                case TICKS:
                    setLenTick(n);
                    break;
                case FRAMES:
                    setLenFrame(n);
                    break;
                }
            }
            else
                xml.unknown(name);
            break;

        case Xml::TagEnd:
            if (tag == name)
                return;
        default:
            break;
        }
    }
}
Пример #2
0
void PosLen::read(XmlReader& e)
      {
      QString s;
      if (e.hasAttribute("tick")) {
            setType(TICKS);
            setTick(e.intAttribute("tick"));
            }
      if (e.hasAttribute("sample")) {
            setType(FRAMES);
            setFrame(e.intAttribute("sample"));
            }
      if (e.hasAttribute("len")) {
            int n = e.intAttribute("len");
            if (type() == TICKS)
                  setLenTick(n);
            else
                  setLenFrame(n);
            }
      }
Пример #3
0
void PosLen::read(QDomNode node)
      {
      const QDomElement& e = node.toElement();
      QString s;
      if (e.hasAttribute("tick")) {
            setType(TICKS);
            setTick(e.attribute("tick").toInt());
            }
      if (e.hasAttribute("sample")) {
            setType(FRAMES);
            setFrame(e.attribute("sample").toInt());
            }
      if (e.hasAttribute("len")) {
            int n = e.attribute("len").toInt();
            if (type() == TICKS)
                  setLenTick(n);
            else
                  setLenFrame(n);
            }
      }
Пример #4
0
void PosLen::read(QDomNode node)
      {
      QDomElement e = node.toElement();
      QString s;
      s = e.attribute("tick");
      if (!s.isEmpty()) {
            setType(TICKS);
            setTick(s.toInt());
            }
      s = e.attribute("sample");
      if (!s.isEmpty()) {
            setType(FRAMES);
            setFrame(s.toInt());
            }
      s = e.attribute("len");
      if (!s.isEmpty()) {
            int n = s.toInt();
            if (type() == TICKS)
                  setLenTick(n);
            else
                  setLenFrame(n);
            }
      }