diff options
author | Max Kellermann <max@duempel.org> | 2013-12-29 16:18:33 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2013-12-29 16:59:57 +0100 |
commit | df4db509047766235063f98f0ddd61cbf221fea5 (patch) | |
tree | 15c755558141ec7e0d5945cd8506bf8345c3e2d6 /src/DecoderList.cxx | |
parent | decc4002a02d07c12b360929dc62b5ffcae37582 (diff) | |
download | mpd-df4db509047766235063f98f0ddd61cbf221fea5.tar.gz mpd-df4db509047766235063f98f0ddd61cbf221fea5.tar.xz mpd-df4db509047766235063f98f0ddd61cbf221fea5.zip |
DecoderList: add function decoder_plugins_supports_suffix()
Replaces decoder_plugin_from_suffix().
Diffstat (limited to '')
-rw-r--r-- | src/DecoderList.cxx | 45 |
1 files changed, 8 insertions, 37 deletions
diff --git a/src/DecoderList.cxx b/src/DecoderList.cxx index dbad3dd57..b077da035 100644 --- a/src/DecoderList.cxx +++ b/src/DecoderList.cxx @@ -118,43 +118,6 @@ static constexpr unsigned num_decoder_plugins = /** which plugins have been initialized successfully? */ bool decoder_plugins_enabled[num_decoder_plugins]; -static unsigned -decoder_plugin_index(const struct DecoderPlugin *plugin) -{ - unsigned i = 0; - - while (decoder_plugins[i] != plugin) - ++i; - - return i; -} - -static unsigned -decoder_plugin_next_index(const struct DecoderPlugin *plugin) -{ - return plugin == 0 - ? 0 /* start with first plugin */ - : decoder_plugin_index(plugin) + 1; -} - -const struct DecoderPlugin * -decoder_plugin_from_suffix(const char *suffix, - const struct DecoderPlugin *plugin) -{ - if (suffix == nullptr) - return nullptr; - - for (unsigned i = decoder_plugin_next_index(plugin); - decoder_plugins[i] != nullptr; ++i) { - plugin = decoder_plugins[i]; - if (decoder_plugins_enabled[i] && - plugin->SupportsSuffix(suffix)) - return plugin; - } - - return nullptr; -} - const struct DecoderPlugin * decoder_plugin_from_name(const char *name) { @@ -213,3 +176,11 @@ void decoder_plugin_deinit_all(void) plugin.Finish(); }); } + +bool +decoder_plugins_supports_suffix(const char *suffix) +{ + return decoder_plugins_try([suffix](const DecoderPlugin &plugin){ + return plugin.SupportsSuffix(suffix); + }); +} |