input/Plugin: add attribute prefixes
This commit is contained in:
@@ -409,8 +409,14 @@ alsa_input_open(const char *uri, Mutex &mutex)
|
||||
mutex);
|
||||
}
|
||||
|
||||
static constexpr const char *alsa_prefixes[] = {
|
||||
"alsa://",
|
||||
nullptr
|
||||
};
|
||||
|
||||
const struct InputPlugin input_plugin_alsa = {
|
||||
"alsa",
|
||||
alsa_prefixes,
|
||||
alsa_input_init,
|
||||
nullptr,
|
||||
alsa_input_open,
|
||||
|
||||
@@ -357,8 +357,14 @@ CdioParanoiaInputStream::IsEOF() noexcept
|
||||
return lsn_from + lsn_relofs > lsn_to;
|
||||
}
|
||||
|
||||
static constexpr const char *cdio_paranoia_prefixes[] = {
|
||||
"cdda://",
|
||||
nullptr
|
||||
};
|
||||
|
||||
const InputPlugin input_plugin_cdio_paranoia = {
|
||||
"cdio_paranoia",
|
||||
cdio_paranoia_prefixes,
|
||||
input_cdio_init,
|
||||
nullptr,
|
||||
input_cdio_open,
|
||||
|
||||
@@ -473,8 +473,15 @@ input_curl_open(const char *url, Mutex &mutex)
|
||||
return CurlInputStream::Open(url, {}, mutex);
|
||||
}
|
||||
|
||||
static constexpr const char *curl_prefixes[] = {
|
||||
"http://",
|
||||
"https://",
|
||||
nullptr
|
||||
};
|
||||
|
||||
const struct InputPlugin input_plugin_curl = {
|
||||
"curl",
|
||||
curl_prefixes,
|
||||
input_curl_init,
|
||||
input_curl_finish,
|
||||
input_curl_open,
|
||||
|
||||
@@ -85,14 +85,6 @@ static InputStreamPtr
|
||||
input_ffmpeg_open(const char *uri,
|
||||
Mutex &mutex)
|
||||
{
|
||||
if (!StringStartsWithCaseASCII(uri, "gopher://") &&
|
||||
!StringStartsWithCaseASCII(uri, "rtp://") &&
|
||||
!StringStartsWithCaseASCII(uri, "rtsp://") &&
|
||||
!StringStartsWithCaseASCII(uri, "rtmp://") &&
|
||||
!StringStartsWithCaseASCII(uri, "rtmpt://") &&
|
||||
!StringStartsWithCaseASCII(uri, "rtmps://"))
|
||||
return nullptr;
|
||||
|
||||
AVIOContext *h;
|
||||
auto result = avio_open(&h, uri, AVIO_FLAG_READ);
|
||||
if (result != 0)
|
||||
@@ -146,8 +138,19 @@ FfmpegInputStream::Seek(offset_type new_offset)
|
||||
eof = false;
|
||||
}
|
||||
|
||||
static constexpr const char *ffmpeg_prefixes[] = {
|
||||
"gopher://",
|
||||
"rtp://",
|
||||
"rtsp://",
|
||||
"rtmp://",
|
||||
"rtmpt://",
|
||||
"rtmps://",
|
||||
nullptr
|
||||
};
|
||||
|
||||
const InputPlugin input_plugin_ffmpeg = {
|
||||
"ffmpeg",
|
||||
ffmpeg_prefixes,
|
||||
input_ffmpeg_init,
|
||||
nullptr,
|
||||
input_ffmpeg_open,
|
||||
|
||||
@@ -72,12 +72,6 @@ static InputStreamPtr
|
||||
input_mms_open(const char *url,
|
||||
Mutex &mutex)
|
||||
{
|
||||
if (!StringStartsWithCaseASCII(url, "mms://") &&
|
||||
!StringStartsWithCaseASCII(url, "mmsh://") &&
|
||||
!StringStartsWithCaseASCII(url, "mmst://") &&
|
||||
!StringStartsWithCaseASCII(url, "mmsu://"))
|
||||
return nullptr;
|
||||
|
||||
auto m = std::make_unique<MmsInputStream>(url, mutex);
|
||||
m->Start();
|
||||
return m;
|
||||
@@ -103,8 +97,17 @@ MmsInputStream::ThreadRead(void *ptr, size_t read_size)
|
||||
return (size_t)nbytes;
|
||||
}
|
||||
|
||||
static constexpr const char *mms_prefixes[] = {
|
||||
"mms://",
|
||||
"mmsh://",
|
||||
"mmst://",
|
||||
"mmsu://",
|
||||
nullptr
|
||||
};
|
||||
|
||||
const InputPlugin input_plugin_mms = {
|
||||
"mms",
|
||||
mms_prefixes,
|
||||
nullptr,
|
||||
nullptr,
|
||||
input_mms_open,
|
||||
|
||||
@@ -217,16 +217,19 @@ static InputStreamPtr
|
||||
input_nfs_open(const char *uri,
|
||||
Mutex &mutex)
|
||||
{
|
||||
if (!StringStartsWithCaseASCII(uri, "nfs://"))
|
||||
return nullptr;
|
||||
|
||||
auto is = std::make_unique<NfsInputStream>(uri, mutex);
|
||||
is->Open();
|
||||
return is;
|
||||
}
|
||||
|
||||
static constexpr const char *nfs_prefixes[] = {
|
||||
"nfs://",
|
||||
nullptr
|
||||
};
|
||||
|
||||
const InputPlugin input_plugin_nfs = {
|
||||
"nfs",
|
||||
nfs_prefixes,
|
||||
input_nfs_init,
|
||||
input_nfs_finish,
|
||||
input_nfs_open,
|
||||
|
||||
@@ -209,8 +209,14 @@ ScanQobuzTags(const char *uri, RemoteTagHandler &handler)
|
||||
handler);
|
||||
}
|
||||
|
||||
static constexpr const char *qobuz_prefixes[] = {
|
||||
"qobuz://",
|
||||
nullptr
|
||||
};
|
||||
|
||||
const InputPlugin qobuz_input_plugin = {
|
||||
"qobuz",
|
||||
qobuz_prefixes,
|
||||
InitQobuzInput,
|
||||
FinishQobuzInput,
|
||||
OpenQobuzInput,
|
||||
|
||||
@@ -87,9 +87,6 @@ static InputStreamPtr
|
||||
input_smbclient_open(const char *uri,
|
||||
Mutex &mutex)
|
||||
{
|
||||
if (!StringStartsWithCaseASCII(uri, "smb://"))
|
||||
return nullptr;
|
||||
|
||||
const std::lock_guard<Mutex> protect(smbclient_mutex);
|
||||
|
||||
SMBCCTX *ctx = smbc_new_context();
|
||||
@@ -158,8 +155,14 @@ SmbclientInputStream::Seek(offset_type new_offset)
|
||||
offset = result;
|
||||
}
|
||||
|
||||
static constexpr const char *smbclient_prefixes[] = {
|
||||
"smb://",
|
||||
nullptr
|
||||
};
|
||||
|
||||
const InputPlugin input_plugin_smbclient = {
|
||||
"smbclient",
|
||||
smbclient_prefixes,
|
||||
input_smbclient_init,
|
||||
nullptr,
|
||||
input_smbclient_open,
|
||||
|
||||
@@ -239,8 +239,14 @@ ScanTidalTags(const char *uri, RemoteTagHandler &handler)
|
||||
track_id, handler);
|
||||
}
|
||||
|
||||
static constexpr const char *tidal_prefixes[] = {
|
||||
"tidal://",
|
||||
nullptr
|
||||
};
|
||||
|
||||
const InputPlugin tidal_input_plugin = {
|
||||
"tidal",
|
||||
tidal_prefixes,
|
||||
InitTidalInput,
|
||||
FinishTidalInput,
|
||||
OpenTidalInput,
|
||||
|
||||
Reference in New Issue
Block a user