void ASF::File::FilePrivate::MetadataLibraryObject::parse(ASF::File *file, unsigned int /*size*/) { file->d->metadataLibraryObject = this; int count = readWORD(file); while(count--) { ASF::Attribute attribute; String name = attribute.parse(*file, 2); file->d->tag->addAttribute(name, attribute); } }
void ASF::File::MetadataObject::parse(ASF::File *file, uint /*size*/) { file->d->metadataObject = this; int count = file->readWORD(); while(count--) { ASF::Attribute attribute; String name = attribute.parse(*file, 1); file->d->tag->addAttribute(name, attribute); } }
void ASF::File::FilePrivate::ExtendedContentDescriptionObject::parse(ASF::File *file, unsigned int /*size*/) { file->d->extendedContentDescriptionObject = this; int count = readWORD(file); while(count--) { ASF::Attribute attribute; String name = attribute.parse(*file); file->d->tag->addAttribute(name, attribute); } }
unsigned int ASF::Tag::track() const { if(d->attributeListMap.contains("WM/TrackNumber")) { const ASF::Attribute attr = d->attributeListMap["WM/TrackNumber"][0]; if(attr.type() == ASF::Attribute::DWordType) return attr.toUInt(); else return attr.toString().toInt(); } if(d->attributeListMap.contains("WM/Track")) return d->attributeListMap["WM/Track"][0].toUInt(); return 0; }