decoder/mad: move parse_id3_mixramp() to tag/Id3MixRamp.cxx

This commit is contained in:
Max Kellermann
2021-12-01 17:03:31 +01:00
parent 20bf1d68e6
commit bf287fefb5
4 changed files with 82 additions and 30 deletions

View File

@@ -23,6 +23,7 @@
#include "input/InputStream.hxx"
#include "tag/Id3Scan.hxx"
#include "tag/Id3ReplayGain.hxx"
#include "tag/Id3MixRamp.hxx"
#include "tag/Handler.hxx"
#include "tag/ReplayGain.hxx"
#include "tag/MixRampParser.hxx"
@@ -268,35 +269,6 @@ MadDecoder::FillBuffer() noexcept
return true;
}
#ifdef ENABLE_ID3TAG
gcc_pure
static MixRampInfo
parse_id3_mixramp(struct id3_tag *tag) noexcept
{
MixRampInfo result;
struct id3_frame *frame;
for (unsigned i = 0; (frame = id3_tag_findframe(tag, "TXXX", i)); i++) {
if (frame->nfields < 3)
continue;
char *const key = (char *)
id3_ucs4_latin1duplicate(id3_field_getstring
(&frame->fields[1]));
char *const value = (char *)
id3_ucs4_latin1duplicate(id3_field_getstring
(&frame->fields[2]));
ParseMixRampTag(result, key, value);
free(key);
free(value);
}
return result;
}
#endif
inline void
MadDecoder::ParseId3(size_t tagsize, Tag *mpd_tag) noexcept
{
@@ -338,7 +310,7 @@ MadDecoder::ParseId3(size_t tagsize, Tag *mpd_tag) noexcept
found_replay_gain = true;
}
client->SubmitMixRamp(parse_id3_mixramp(id3_tag.get()));
client->SubmitMixRamp(Id3ToMixRampInfo(id3_tag.get()));
}
#else /* !ENABLE_ID3TAG */