aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2013-01-21 18:24:26 +0100
committerMax Kellermann <max@duempel.org>2013-01-21 19:01:10 +0100
commit9ec069104f82184fbdc33bb82ead393441a41728 (patch)
treed887d486682b9f3916f84032d08812954d6b9aeb
parent7d21d60dbaefa90a2d52636766f7d060cb1cf481 (diff)
downloadmpd-9ec069104f82184fbdc33bb82ead393441a41728.tar.gz
mpd-9ec069104f82184fbdc33bb82ead393441a41728.tar.xz
mpd-9ec069104f82184fbdc33bb82ead393441a41728.zip
input,playlist/despotify: convert to C++
-rw-r--r--Makefile.am28
-rw-r--r--src/DespotifyUtils.cxx (renamed from src/despotify_utils.c)16
-rw-r--r--src/DespotifyUtils.hxx (renamed from src/despotify_utils.h)2
-rw-r--r--src/InputRegistry.cxx2
-rw-r--r--src/input/DespotifyInputPlugin.cxx (renamed from src/input/despotify_input_plugin.c)28
-rw-r--r--src/input/DespotifyInputPlugin.hxx (renamed from src/input/despotify_input_plugin.h)6
-rw-r--r--src/playlist/DespotifyPlaylistPlugin.cxx (renamed from src/playlist/despotify_playlist_plugin.c)44
-rw-r--r--src/playlist/DespotifyPlaylistPlugin.hxx (renamed from src/playlist/despotify_playlist_plugin.h)6
-rw-r--r--src/playlist_list.c2
9 files changed, 73 insertions, 61 deletions
diff --git a/Makefile.am b/Makefile.am
index 4356c5b76..92e6e05bb 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -79,8 +79,6 @@ mpd_headers = \
src/decoder/pcm_decoder_plugin.h \
src/input_plugin.h \
src/input_stream.h \
- src/input/despotify_input_plugin.h \
- src/despotify_utils.h \
src/text_input_stream.h \
src/icy_server.h \
src/ls.h \
@@ -106,7 +104,6 @@ mpd_headers = \
src/playlist/asx_playlist_plugin.h \
src/playlist/rss_playlist_plugin.h \
src/playlist/lastfm_playlist_plugin.h \
- src/playlist/despotify_playlist_plugin.h \
src/playlist/cue_playlist_plugin.h \
src/poison.h \
src/riff.h \
@@ -311,7 +308,7 @@ endif
if ENABLE_DESPOTIFY
src_mpd_SOURCES += \
- src/despotify_utils.c
+ src/DespotifyUtils.cxx src/DespotifyUtils.hxx
endif
if ENABLE_INOTIFY
@@ -756,7 +753,9 @@ libinput_a_SOURCES += \
endif
if ENABLE_DESPOTIFY
-libinput_a_SOURCES += src/input/despotify_input_plugin.c
+libinput_a_SOURCES += \
+ src/input/DespotifyInputPlugin.cxx \
+ src/input/DespotifyInputPlugin.hxx
endif
@@ -938,7 +937,9 @@ libplaylist_plugins_a_SOURCES += src/playlist/lastfm_playlist_plugin.c
endif
if ENABLE_DESPOTIFY
-libplaylist_plugins_a_SOURCES += src/playlist/despotify_playlist_plugin.c
+libplaylist_plugins_a_SOURCES += \
+ src/playlist/DespotifyPlaylistPlugin.cxx \
+ src/playlist/DespotifyPlaylistPlugin.hxx
endif
if ENABLE_SOUNDCLOUD
@@ -1189,16 +1190,11 @@ test_run_filter_SOURCES = test/run_filter.c \
src/AudioCompress/compress.c
if ENABLE_DESPOTIFY
-test_read_tags_SOURCES += \
- src/despotify_utils.c
-test_run_input_SOURCES += \
- src/despotify_utils.c
-test_dump_text_file_SOURCES += \
- src/despotify_utils.c
-test_dump_playlist_SOURCES += \
- src/despotify_utils.c
-test_run_decoder_SOURCES += \
- src/despotify_utils.c
+test_read_tags_SOURCES += src/DespotifyUtils.cxx
+test_run_input_SOURCES += src/DespotifyUtils.cxx
+test_dump_text_file_SOURCES += src/DespotifyUtils.cxx
+test_dump_playlist_SOURCES += src/DespotifyUtils.cxx
+test_run_decoder_SOURCES += src/DespotifyUtils.cxx
endif
if ENABLE_ENCODER
diff --git a/src/despotify_utils.c b/src/DespotifyUtils.cxx
index 9f23c6336..c9a1edf0c 100644
--- a/src/despotify_utils.c
+++ b/src/DespotifyUtils.cxx
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2003-2011 The Music Player Daemon Project
+ * 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
@@ -17,12 +17,15 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#include "despotify_utils.h"
+#include "DespotifyUtils.hxx"
#include "tag.h"
#include "conf.h"
#include <glib.h>
+
+extern "C" {
#include <despotify.h>
+}
static struct despotify_session *g_session;
static void (*registered_callbacks[8])(struct despotify_session *,
@@ -116,24 +119,25 @@ struct despotify_session *mpd_despotify_get_session(void)
if (user == NULL || passwd == NULL) {
g_debug("disabling despotify because account is not configured");
- return NULL;
+ return nullptr;
}
+
if (!despotify_init()) {
g_debug("Can't initialize despotify\n");
- return false;
+ return nullptr;
}
g_session = despotify_init_client(callback, NULL,
high_bitrate, true);
if (!g_session) {
g_debug("Can't initialize despotify client\n");
- return false;
+ return nullptr;
}
if (!despotify_authenticate(g_session, user, passwd)) {
g_debug("Can't authenticate despotify session\n");
despotify_exit(g_session);
- return false;
+ return nullptr;
}
return g_session;
diff --git a/src/despotify_utils.h b/src/DespotifyUtils.hxx
index ab2968ab0..7e35edc3c 100644
--- a/src/despotify_utils.h
+++ b/src/DespotifyUtils.hxx
@@ -20,8 +20,6 @@
#ifndef MPD_DESPOTIFY_H
#define MPD_DESPOTIFY_H
-#include <stdbool.h>
-
struct despotify_session;
struct ds_track;
diff --git a/src/InputRegistry.cxx b/src/InputRegistry.cxx
index 6c0898477..fa468724b 100644
--- a/src/InputRegistry.cxx
+++ b/src/InputRegistry.cxx
@@ -46,7 +46,7 @@
#endif
#ifdef ENABLE_DESPOTIFY
-#include "input/despotify_input_plugin.h"
+#include "input/DespotifyInputPlugin.hxx"
#endif
#include <glib.h>
diff --git a/src/input/despotify_input_plugin.c b/src/input/DespotifyInputPlugin.cxx
index 200a0afd6..b42979e3b 100644
--- a/src/input/despotify_input_plugin.c
+++ b/src/input/DespotifyInputPlugin.cxx
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011 The Music Player Daemon Project
+ * Copyright (C) 2011-2013 The Music Player Daemon Project
* http://www.musicpd.org
*
* This program is free software; you can redistribute it and/or modify
@@ -18,18 +18,21 @@
*/
#include "config.h"
-#include "input/despotify_input_plugin.h"
+#include "DespotifyInputPlugin.hxx"
+#include "DespotifyUtils.hxx"
#include "input_internal.h"
#include "input_plugin.h"
#include "tag.h"
-#include "despotify_utils.h"
+
+extern "C" {
+#include <despotify.h>
+}
#include <glib.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
-#include <despotify.h>
#include <stdio.h>
@@ -220,11 +223,16 @@ input_despotify_tag(struct input_stream *is)
}
const struct input_plugin input_plugin_despotify = {
- .name = "spt",
- .open = input_despotify_open,
- .close = input_despotify_close,
- .read = input_despotify_read,
- .eof = input_despotify_eof,
- .seek = input_despotify_seek,
+ "spt",
+ nullptr,
+ nullptr,
+ input_despotify_open,
+ input_despotify_close,
+ nullptr,
+ nullptr,
.tag = input_despotify_tag,
+ nullptr,
+ input_despotify_read,
+ input_despotify_eof,
+ input_despotify_seek,
};
diff --git a/src/input/despotify_input_plugin.h b/src/input/DespotifyInputPlugin.hxx
index 4c070d882..00d699408 100644
--- a/src/input/despotify_input_plugin.h
+++ b/src/input/DespotifyInputPlugin.hxx
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011 The Music Player Daemon Project
+ * Copyright (C) 2011-2013 The Music Player Daemon Project
* http://www.musicpd.org
*
* This program is free software; you can redistribute it and/or modify
@@ -17,8 +17,8 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#ifndef INPUT_DESPOTIFY_H
-#define INPUT_DESPOTIFY_H
+#ifndef INPUT_DESPOTIFY_HXX
+#define INPUT_DESPOTIFY_HXX
extern const struct input_plugin input_plugin_despotify;
diff --git a/src/playlist/despotify_playlist_plugin.c b/src/playlist/DespotifyPlaylistPlugin.cxx
index 30b852c73..049c9499c 100644
--- a/src/playlist/despotify_playlist_plugin.c
+++ b/src/playlist/DespotifyPlaylistPlugin.cxx
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011 The Music Player Daemon Project
+ * Copyright (C) 2011-2013 The Music Player Daemon Project
* http://www.musicpd.org
*
* This program is free software; you can redistribute it and/or modify
@@ -18,7 +18,8 @@
*/
#include "config.h"
-#include "playlist/despotify_playlist_plugin.h"
+#include "DespotifyPlaylistPlugin.hxx"
+#include "DespotifyUtils.hxx"
#include "playlist_plugin.h"
#include "playlist_list.h"
#include "conf.h"
@@ -26,14 +27,16 @@
#include "tag.h"
#include "song.h"
#include "input_stream.h"
-#include "despotify_utils.h"
+
+extern "C" {
+#include <despotify.h>
+}
#include <glib.h>
#include <assert.h>
#include <string.h>
#include <stdlib.h>
-#include <despotify.h>
struct despotify_playlist {
struct playlist_provider base;
@@ -131,7 +134,7 @@ despotify_playlist_open_uri(const char *url, G_GNUC_UNUSED GMutex *mutex,
ctx = g_new(struct despotify_playlist, 1);
- ctx->list = NULL;
+ ctx->list = nullptr;
ctx->session = session;
playlist_provider_init(&ctx->base, &despotify_playlist_plugin);
@@ -159,7 +162,7 @@ clean_playlist:
g_slist_free(ctx->list);
clean_none:
- return NULL;
+ return nullptr;
}
static void
@@ -175,7 +178,7 @@ despotify_playlist_close(struct playlist_provider *_playlist)
{
struct despotify_playlist *ctx = (struct despotify_playlist *)_playlist;
- g_slist_foreach(ctx->list, track_free_callback, NULL);
+ g_slist_foreach(ctx->list, track_free_callback, nullptr);
g_slist_free(ctx->list);
g_free(ctx);
@@ -186,13 +189,12 @@ static struct song *
despotify_playlist_read(struct playlist_provider *_playlist)
{
struct despotify_playlist *ctx = (struct despotify_playlist *)_playlist;
- struct song *out;
if (!ctx->list)
- return NULL;
+ return nullptr;
/* Remove the current track */
- out = ctx->list->data;
+ song *out = (song *)ctx->list->data;
ctx->list = g_slist_remove(ctx->list, out);
return out;
@@ -200,18 +202,22 @@ despotify_playlist_read(struct playlist_provider *_playlist)
static const char *const despotify_schemes[] = {
- "spt",
- NULL
+ "spt",
+ nullptr
};
const struct playlist_plugin despotify_playlist_plugin = {
- .name = "despotify",
+ "despotify",
+
+ despotify_playlist_init,
+ despotify_playlist_finish,
- .init = despotify_playlist_init,
- .finish = despotify_playlist_finish,
- .open_uri = despotify_playlist_open_uri,
- .read = despotify_playlist_read,
- .close = despotify_playlist_close,
+ despotify_playlist_open_uri,
+ nullptr,
+ despotify_playlist_close,
+ despotify_playlist_read,
- .schemes = despotify_schemes,
+ despotify_schemes,
+ nullptr,
+ nullptr,
};
diff --git a/src/playlist/despotify_playlist_plugin.h b/src/playlist/DespotifyPlaylistPlugin.hxx
index f8ee20de0..c1e5b7f39 100644
--- a/src/playlist/despotify_playlist_plugin.h
+++ b/src/playlist/DespotifyPlaylistPlugin.hxx
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011 The Music Player Daemon Project
+ * Copyright (C) 2011-2013 The Music Player Daemon Project
* http://www.musicpd.org
*
* This program is free software; you can redistribute it and/or modify
@@ -17,8 +17,8 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#ifndef MPD_PLAYLIST_DESPOTIFY_PLAYLIST_PLUGIN_H
-#define MPD_PLAYLIST_DESPOTIFY_PLAYLIST_PLUGIN_H
+#ifndef MPD_PLAYLIST_DESPOTIFY_PLAYLIST_PLUGIN_HXX
+#define MPD_PLAYLIST_DESPOTIFY_PLAYLIST_PLUGIN_HXX
extern const struct playlist_plugin despotify_playlist_plugin;
diff --git a/src/playlist_list.c b/src/playlist_list.c
index 68d24fe49..9ba78f38c 100644
--- a/src/playlist_list.c
+++ b/src/playlist_list.c
@@ -24,7 +24,7 @@
#include "playlist/m3u_playlist_plugin.h"
#include "playlist/xspf_playlist_plugin.h"
#include "playlist/lastfm_playlist_plugin.h"
-#include "playlist/despotify_playlist_plugin.h"
+#include "playlist/DespotifyPlaylistPlugin.hxx"
#include "playlist/soundcloud_playlist_plugin.h"
#include "playlist/pls_playlist_plugin.h"
#include "playlist/asx_playlist_plugin.h"