You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
823 B
C++

#include "AbstractNamedTag.h"
#include <QtEndian>
#include <QtCore/QDataStream>
AbstractNamedTag::AbstractNamedTag (const quint8 id) : AbstractTag(id) {}
void AbstractNamedTag::readFromData (QDataStream &data) {
quint16 size;
data >> size;
size = qFromBigEndian(size);
char *rawName = new char[size];
if (data.readRawData(rawName, size) == -1) {
return;
}
m_name = QString::fromUtf8(rawName);
readPayloadFromData(data);
}
void AbstractNamedTag::writeToData (QDataStream &data) const {
const QByteArray rawName = m_name.toUtf8();
data << qToBigEndian(rawName.size()) << rawName.constData();
writePayloadToData(data);
}
const QString &AbstractNamedTag::name () const {
return m_name;
}
void AbstractNamedTag::setName (const QString &name) {
m_name = name;
}