diff options
author | Max Kellermann <max@duempel.org> | 2014-09-24 20:54:20 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2014-09-24 22:21:13 +0200 |
commit | 441f9cc2ee1e62be0d5869c247aecff78c2ca3c6 (patch) | |
tree | f3da3a635c38e2feaddde27d41fb80c4bab46ddd /src/tag | |
parent | 9f4fc8ad33470d2f82faafb96d5db41967faa151 (diff) | |
download | mpd-441f9cc2ee1e62be0d5869c247aecff78c2ca3c6.tar.gz mpd-441f9cc2ee1e62be0d5869c247aecff78c2ca3c6.tar.xz mpd-441f9cc2ee1e62be0d5869c247aecff78c2ca3c6.zip |
tag/ReplayGain: add VorbisComment parser
Move code from the Vorbis and FLAC decoder plugins.
Diffstat (limited to 'src/tag')
-rw-r--r-- | src/tag/ReplayGain.cxx | 16 | ||||
-rw-r--r-- | src/tag/ReplayGain.hxx | 3 |
2 files changed, 19 insertions, 0 deletions
diff --git a/src/tag/ReplayGain.cxx b/src/tag/ReplayGain.cxx index d2347dba5..83a48f243 100644 --- a/src/tag/ReplayGain.cxx +++ b/src/tag/ReplayGain.cxx @@ -19,6 +19,7 @@ #include "config.h" #include "ReplayGain.hxx" +#include "VorbisComment.hxx" #include "ReplayGainInfo.hxx" #include "util/ASCII.hxx" @@ -68,3 +69,18 @@ ParseReplayGainTag(ReplayGainInfo &info, const char *name, const char *value) return ParseReplayGainTagTemplate(info, NameValue{name, value}); } + +bool +ParseReplayGainVorbis(ReplayGainInfo &info, const char *entry) +{ + struct VorbisCommentEntry { + const char *entry; + + gcc_pure + const char *operator[](const char *n) const { + return vorbis_comment_value(entry, n); + } + }; + + return ParseReplayGainTagTemplate(info, VorbisCommentEntry{entry}); +} diff --git a/src/tag/ReplayGain.hxx b/src/tag/ReplayGain.hxx index 2e6cf799e..2bf5e0db1 100644 --- a/src/tag/ReplayGain.hxx +++ b/src/tag/ReplayGain.hxx @@ -27,4 +27,7 @@ struct ReplayGainInfo; bool ParseReplayGainTag(ReplayGainInfo &info, const char *name, const char *value); +bool +ParseReplayGainVorbis(ReplayGainInfo &info, const char *entry); + #endif |