setTrack()/setYear() accepts 0 to remove the tag as per

documentation/functionality across other tpyes (mp3/flac/...); m4a do not honour
this and instead sets the underlying value to 0.

This commit fixes this issue (#911)
This commit is contained in:
whatdoineed2do/Ray 2019-07-13 16:00:58 +01:00
parent ba7adc2bc2
commit 850a3565a4

View File

@ -805,13 +805,23 @@ MP4::Tag::setGenre(const String &value)
void
MP4::Tag::setYear(unsigned int value)
{
d->items["\251day"] = StringList(String::number(value));
if (value == 0) {
d->items.erase("\251day");
}
else {
d->items["\251day"] = StringList(String::number(value));
}
}
void
MP4::Tag::setTrack(unsigned int value)
{
d->items["trkn"] = MP4::Item(value, 0);
if (value == 0) {
d->items.erase("trkn");
}
else {
d->items["trkn"] = MP4::Item(value, 0);
}
}
bool MP4::Tag::isEmpty() const