From c05bca6f2ce3efc57f903577697717f5ee1784cf Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 6 Jul 2018 22:46:03 +0200 Subject: tag/Handler: implement FullTagHandler::OnAudioFormat() --- src/tag/Handler.cxx | 6 ++++++ src/tag/Handler.hxx | 16 ++++++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) (limited to 'src/tag') diff --git a/src/tag/Handler.cxx b/src/tag/Handler.cxx index 78b81763d..7c2a50309 100644 --- a/src/tag/Handler.cxx +++ b/src/tag/Handler.cxx @@ -57,3 +57,9 @@ FullTagHandler::OnPair(const char *name, gcc_unused const char *value) noexcept tag.SetHasPlaylist(true); } +void +FullTagHandler::OnAudioFormat(AudioFormat af) noexcept +{ + if (audio_format != nullptr) + *audio_format = af; +} diff --git a/src/tag/Handler.hxx b/src/tag/Handler.hxx index 6b0342d80..04c501101 100644 --- a/src/tag/Handler.hxx +++ b/src/tag/Handler.hxx @@ -140,15 +140,23 @@ public: * attribute. */ class FullTagHandler : public AddTagHandler { + AudioFormat *const audio_format; + protected: - FullTagHandler(unsigned _want_mask, TagBuilder &_builder) noexcept - :AddTagHandler(WANT_PAIR|_want_mask, _builder) {} + FullTagHandler(unsigned _want_mask, TagBuilder &_builder, + AudioFormat *_audio_format) noexcept + :AddTagHandler(WANT_PAIR|_want_mask + |(_audio_format ? WANT_AUDIO_FORMAT : 0), + _builder), + audio_format(_audio_format) {} public: - explicit FullTagHandler(TagBuilder &_builder) noexcept - :FullTagHandler(0, _builder) {} + explicit FullTagHandler(TagBuilder &_builder, + AudioFormat *_audio_format=nullptr) noexcept + :FullTagHandler(0, _builder, _audio_format) {} void OnPair(const char *key, const char *value) noexcept override; + void OnAudioFormat(AudioFormat af) noexcept override; }; #endif -- cgit v1.2.3