decoder/Thread: reimplement HasRemoteTagScanner() using the InputPlugin list

This commit is contained in:
Max Kellermann 2018-10-25 09:09:21 +02:00
parent 3e78c9ab48
commit 8bb35e7bb6
3 changed files with 17 additions and 8 deletions

View File

@ -28,6 +28,7 @@
#include "DecoderAPI.hxx"
#include "input/InputStream.hxx"
#include "input/LocalOpen.hxx"
#include "input/Registry.hxx"
#include "DecoderList.hxx"
#include "system/Error.hxx"
#include "util/MimeType.hxx"
@ -432,14 +433,6 @@ try {
error_uri));
}
gcc_pure
static bool
HasRemoteTagScanner(const char *uri) noexcept
{
return StringStartsWith(uri, "tidal://") ||
StringStartsWith(uri, "qobuz://");
}
/**
* Try to guess whether tags attached to the given song are
* "volatile", e.g. if they have been received by a live stream, but

View File

@ -83,3 +83,14 @@ const InputPlugin *const input_plugins[] = {
};
bool input_plugins_enabled[ARRAY_SIZE(input_plugins) - 1];
bool
HasRemoteTagScanner(const char *uri) noexcept
{
input_plugins_for_each_enabled(plugin)
if (plugin->scan_tags != nullptr &&
plugin->SupportsUri(uri))
return true;
return false;
}

View File

@ -21,6 +21,7 @@
#define MPD_INPUT_REGISTRY_HXX
#include "check.h"
#include "util/Compiler.h"
/**
* NULL terminated list of all input plugins which were enabled at
@ -40,4 +41,8 @@ extern bool input_plugins_enabled[];
input_plugins_for_each(plugin) \
if (input_plugins_enabled[input_plugin_iterator - input_plugins])
gcc_pure
bool
HasRemoteTagScanner(const char *uri) noexcept;
#endif