diff options
author | Max Kellermann <max@musicpd.org> | 2018-07-06 22:46:03 +0200 |
---|---|---|
committer | Max Kellermann <max@musicpd.org> | 2018-07-06 22:46:03 +0200 |
commit | c05bca6f2ce3efc57f903577697717f5ee1784cf (patch) | |
tree | 006c6795a65cb92389444146f73b09f629d304f5 /src/tag | |
parent | 73c95d1fb2fd239fd172dbd170123ab85a511ae0 (diff) |
tag/Handler: implement FullTagHandler::OnAudioFormat()
Diffstat (limited to 'src/tag')
-rw-r--r-- | src/tag/Handler.cxx | 6 | ||||
-rw-r--r-- | src/tag/Handler.hxx | 16 |
2 files changed, 18 insertions, 4 deletions
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 |