void MP4::Tag::parseByte(const MP4::Atom *atom) { ByteVectorList data = parseData(atom); if(!data.isEmpty()) { addItem(atom->name, static_cast<unsigned char>(data[0].at(0))); } }
void MP4::Tag::parseLongLong(const MP4::Atom *atom) { ByteVectorList data = parseData(atom); if(!data.isEmpty()) { addItem(atom->name, data[0].toLongLong()); } }
void MP4::Tag::parseInt(const MP4::Atom *atom) { ByteVectorList data = parseData(atom); if(!data.isEmpty()) { addItem(atom->name, (int)data[0].toShort()); } }
void MP4::Tag::parseBool(const MP4::Atom *atom) { ByteVectorList data = parseData(atom); if(!data.isEmpty()) { bool value = data[0].size() ? data[0][0] != '\0' : false; addItem(atom->name, value); } }
void MP4::Tag::parseIntPair(const MP4::Atom *atom) { ByteVectorList data = parseData(atom); if(!data.isEmpty()) { const int a = data[0].toShort(2U); const int b = data[0].toShort(4U); addItem(atom->name, MP4::Item(a, b)); } }
void MP4::Tag::parseGnre(const MP4::Atom *atom) { ByteVectorList data = parseData(atom); if(!data.isEmpty()) { int idx = (int)data[0].toShort(); if(idx > 0) { addItem("\251gen", StringList(ID3v1::genre(idx - 1))); } } }
void MP4::Tag::parseText(const MP4::Atom *atom, int expectedFlags) { ByteVectorList data = parseData(atom, expectedFlags); if(!data.isEmpty()) { StringList value; for(ByteVectorList::ConstIterator it = data.begin(); it != data.end(); ++it) { value.append(String(*it, String::UTF8)); } addItem(atom->name, value); } }