diff --git a/Makefile.am b/Makefile.am index f0c4fa61c..9b87c4a13 100644 --- a/Makefile.am +++ b/Makefile.am @@ -429,7 +429,7 @@ TAG_LIBS = \ $(ID3TAG_LIBS) libtag_a_SOURCES =\ - src/TagTable.hxx \ + src/tag/TagTable.cxx src/TagTable.hxx \ src/tag/ApeLoader.cxx src/tag/ApeLoader.hxx \ src/tag/ApeReplayGain.cxx src/tag/ApeReplayGain.hxx \ src/tag/ApeTag.cxx src/tag/ApeTag.hxx diff --git a/src/decoder/FlacMetadata.cxx b/src/decoder/FlacMetadata.cxx index f53c36b54..f3b5ba81c 100644 --- a/src/decoder/FlacMetadata.cxx +++ b/src/decoder/FlacMetadata.cxx @@ -28,7 +28,7 @@ #include #include -#include +#include static bool flac_find_float_comment(const FLAC__StreamMetadata *block, diff --git a/src/decoder/XiphTags.cxx b/src/decoder/XiphTags.cxx index b2aa6e82d..b9958a19a 100644 --- a/src/decoder/XiphTags.cxx +++ b/src/decoder/XiphTags.cxx @@ -24,5 +24,5 @@ const struct tag_table xiph_tags[] = { { "tracknumber", TAG_TRACK }, { "discnumber", TAG_DISC }, { "album artist", TAG_ALBUM_ARTIST }, - { NULL, TAG_NUM_OF_ITEM_TYPES } + { nullptr, TAG_NUM_OF_ITEM_TYPES } }; diff --git a/src/tag/ApeTag.cxx b/src/tag/ApeTag.cxx index 34c2b703b..acaeada25 100644 --- a/src/tag/ApeTag.cxx +++ b/src/tag/ApeTag.cxx @@ -24,6 +24,10 @@ #include "TagTable.hxx" #include "TagHandler.hxx" +#include + +#include + const struct tag_table ape_tags[] = { { "album artist", TAG_ALBUM_ARTIST }, { "year", TAG_DATE }, diff --git a/src/tag/TagTable.cxx b/src/tag/TagTable.cxx new file mode 100644 index 000000000..9c833d5a2 --- /dev/null +++ b/src/tag/TagTable.cxx @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2003-2013 The Music Player Daemon Project + * http://www.musicpd.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "TagTable.hxx" + +#include + +#include + +/** + * Looks up a string in a tag translation table (case sensitive). + * Returns TAG_NUM_OF_ITEM_TYPES if the specified name was not found + * in the table. + */ +tag_type +tag_table_lookup(const struct tag_table *table, const char *name) +{ + for (; table->name != nullptr; ++table) + if (strcmp(name, table->name) == 0) + return table->type; + + return TAG_NUM_OF_ITEM_TYPES; +} + +/** + * Looks up a string in a tag translation table (case insensitive). + * Returns TAG_NUM_OF_ITEM_TYPES if the specified name was not found + * in the table. + */ +tag_type +tag_table_lookup_i(const struct tag_table *table, const char *name) +{ + for (; table->name != nullptr; ++table) + if (g_ascii_strcasecmp(name, table->name) == 0) + return table->type; + + return TAG_NUM_OF_ITEM_TYPES; +} diff --git a/src/tag/TagTable.hxx b/src/tag/TagTable.hxx index 70c02e6e5..88bf5b028 100644 --- a/src/tag/TagTable.hxx +++ b/src/tag/TagTable.hxx @@ -23,10 +23,6 @@ #include "TagType.h" #include "gcc.h" -#include - -#include - struct tag_table { const char *name; @@ -39,15 +35,8 @@ struct tag_table { * in the table. */ gcc_pure -static inline enum tag_type -tag_table_lookup(const struct tag_table *table, const char *name) -{ - for (; table->name != nullptr; ++table) - if (strcmp(name, table->name) == 0) - return table->type; - - return TAG_NUM_OF_ITEM_TYPES; -} +tag_type +tag_table_lookup(const tag_table *table, const char *name); /** * Looks up a string in a tag translation table (case insensitive). @@ -55,14 +44,7 @@ tag_table_lookup(const struct tag_table *table, const char *name) * in the table. */ gcc_pure -static inline enum tag_type -tag_table_lookup_i(const struct tag_table *table, const char *name) -{ - for (; table->name != nullptr; ++table) - if (g_ascii_strcasecmp(name, table->name) == 0) - return table->type; - - return TAG_NUM_OF_ITEM_TYPES; -} +tag_type +tag_table_lookup_i(const tag_table *table, const char *name); #endif