Improve code in Mp4Tag::setValues()

This commit is contained in:
Martchus 2021-01-30 19:21:18 +01:00
parent 42eac2074d
commit 49154905b1
1 changed files with 4 additions and 6 deletions

View File

@ -263,7 +263,7 @@ bool Mp4Tag::setValue(KnownField field, const TagValue &value)
bool Mp4Tag::setValues(KnownField field, const std::vector<TagValue> &values) bool Mp4Tag::setValues(KnownField field, const std::vector<TagValue> &values)
{ {
const Mp4ExtendedFieldId extendedId(field); const auto extendedId = Mp4ExtendedFieldId(field);
if (extendedId) { if (extendedId) {
auto valuesIterator = values.cbegin(); auto valuesIterator = values.cbegin();
auto range = fields().equal_range(Mp4TagAtomIds::Extended); auto range = fields().equal_range(Mp4TagAtomIds::Extended);
@ -284,13 +284,11 @@ bool Mp4Tag::setValues(KnownField field, const std::vector<TagValue> &values)
} }
} }
for (; valuesIterator != values.cend(); ++valuesIterator) { for (; valuesIterator != values.cend(); ++valuesIterator) {
Mp4TagField tagField(Mp4TagAtomIds::Extended, *valuesIterator); fields().emplace(std::piecewise_construct, std::forward_as_tuple(Mp4TagAtomIds::Extended),
tagField.setMean(extendedId.mean); std::forward_as_tuple(extendedId.mean, extendedId.name, *valuesIterator));
tagField.setName(extendedId.name);
fields().insert(std::make_pair(Mp4TagAtomIds::Extended, move(tagField)));
} }
for (; range.first != range.second; ++range.first) { for (; range.first != range.second; ++range.first) {
range.first->second.setValue(TagValue()); range.first->second.clearValue();
} }
} }
return FieldMapBasedTag<Mp4Tag>::setValues(field, values); return FieldMapBasedTag<Mp4Tag>::setValues(field, values);