From 7e07daf8cb8dd19f386e121cba989013ba86407c Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 3 Jan 2013 11:01:02 +0100 Subject: ls: convert to C++ --- src/ls.cxx | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 src/ls.cxx (limited to 'src/ls.cxx') diff --git a/src/ls.cxx b/src/ls.cxx new file mode 100644 index 000000000..00edb2bb5 --- /dev/null +++ b/src/ls.cxx @@ -0,0 +1,103 @@ +/* + * 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 "config.h" + +extern "C" { +#include "ls.h" +#include "uri.h" +#include "client.h" +} + +#include + +#include +#include + + +/** + * file:// is not included in remoteUrlPrefixes, the connection method + * is detected at runtime and displayed as a urlhandler if the client is + * connected by IPC socket. + */ +static const char *remoteUrlPrefixes[] = { +#if defined(ENABLE_CURL) || defined(ENABLE_SOUP) + "http://", +#endif +#ifdef ENABLE_MMS + "mms://", + "mmsh://", + "mmst://", + "mmsu://", +#endif +#ifdef HAVE_FFMPEG + "gopher://", + "rtp://", + "rtsp://", + "rtmp://", + "rtmpt://", + "rtmps://", +#endif +#ifdef ENABLE_CDIO_PARANOIA + "cdda://", +#endif +#ifdef ENABLE_DESPOTIFY + "spt://", +#endif + NULL +}; + +void print_supported_uri_schemes_to_fp(FILE *fp) +{ + const char **prefixes = remoteUrlPrefixes; + +#ifdef HAVE_UN + fprintf(fp, " file://"); +#endif + while (*prefixes) { + fprintf(fp, " %s", *prefixes); + prefixes++; + } + fprintf(fp,"\n"); +} + +void print_supported_uri_schemes(struct client *client) +{ + const char **prefixes = remoteUrlPrefixes; + + while (*prefixes) { + client_printf(client, "handler: %s\n", *prefixes); + prefixes++; + } +} + +bool uri_supported_scheme(const char *uri) +{ + const char **urlPrefixes = remoteUrlPrefixes; + + assert(uri_has_scheme(uri)); + + while (*urlPrefixes) { + if (g_str_has_prefix(uri, *urlPrefixes)) + return true; + urlPrefixes++; + } + + return false; +} -- cgit v1.2.3