diff options
author | Max Kellermann <max@duempel.org> | 2009-01-14 23:15:14 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2009-01-14 23:15:14 +0100 |
commit | 69b033757f422d6472315f7892c303f92da495b6 (patch) | |
tree | 184807bcd0aeb04c3ddf6ec6b64dd41de940c8b0 | |
parent | 25cf3333551c59ae518b1ecc4e68197ff1766670 (diff) | |
download | mpd-69b033757f422d6472315f7892c303f92da495b6.tar.gz mpd-69b033757f422d6472315f7892c303f92da495b6.tar.xz mpd-69b033757f422d6472315f7892c303f92da495b6.zip |
oggvorbis: moved code to vorbis_copy_comment()
-rw-r--r-- | src/decoder/oggvorbis_plugin.c | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/src/decoder/oggvorbis_plugin.c b/src/decoder/oggvorbis_plugin.c index 772526225..c1fb799f0 100644 --- a/src/decoder/oggvorbis_plugin.c +++ b/src/decoder/oggvorbis_plugin.c @@ -141,10 +141,29 @@ vorbis_comments_to_replay_gain(char **comments) static const char *VORBIS_COMMENT_TRACK_KEY = "tracknumber"; static const char *VORBIS_COMMENT_DISC_KEY = "discnumber"; +/** + * Check if the comment's name equals the passed name, and if so, copy + * the comment value into the tag. + */ +static bool +vorbis_copy_comment(struct tag *tag, const char *comment, + const char *name, enum tag_type tag_type) +{ + const char *value; + + value = vorbis_comment_value(comment, name); + if (value != NULL) { + tag_add_item(tag, tag_type, value); + return true; + } + + return false; +} + static bool vorbis_parse_comment(struct tag *tag, char *comment, enum tag_type tag_type) { - const char *needle, *value; + const char *needle; assert(tag != NULL); @@ -159,14 +178,7 @@ vorbis_parse_comment(struct tag *tag, char *comment, enum tag_type tag_type) needle = mpdTagItemKeys[tag_type]; } - value = vorbis_comment_value(comment, needle); - if (value != NULL) { - tag_add_item(tag, tag_type, value); - - return true; - } - - return false; + return vorbis_copy_comment(tag, comment, needle, tag_type); } static struct tag * |