aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2009-01-23 16:34:27 +0100
committerMax Kellermann <max@duempel.org>2009-01-23 16:34:27 +0100
commit8afe24c1de70b69df58f1724ad5fd02c7af63ecb (patch)
tree056b1a0ad070e278bf053fc03ab8bfb44a885337
parented25bdf55aad2f39a5a80845fca1325c558fd8db (diff)
downloadmpd-8afe24c1de70b69df58f1724ad5fd02c7af63ecb.tar.gz
mpd-8afe24c1de70b69df58f1724ad5fd02c7af63ecb.tar.xz
mpd-8afe24c1de70b69df58f1724ad5fd02c7af63ecb.zip
playlist: moved PlaylistInfo() to playlist_print.c
PlaylistInfo() (notice the capital 'P') sends a stored playlist to the client. Move it to a separate library, where all the code which glues the playlist and the MPD protocol together will live.
Diffstat (limited to '')
-rw-r--r--src/Makefile.am2
-rw-r--r--src/command.c1
-rw-r--r--src/playlist.c30
-rw-r--r--src/playlist.h2
-rw-r--r--src/playlist_print.c53
-rw-r--r--src/playlist_print.h30
6 files changed, 86 insertions, 32 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 104d64264..f5738bdf4 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -91,6 +91,7 @@ mpd_headers = \
player_thread.h \
player_control.h \
playlist.h \
+ playlist_print.h \
playlist_save.h \
queue.h \
queue_print.h \
@@ -176,6 +177,7 @@ mpd_SOURCES = \
player_thread.c \
player_control.c \
playlist.c \
+ playlist_print.c \
playlist_save.c \
queue.c \
queue_print.c \
diff --git a/src/command.c b/src/command.c
index 27d34c0a3..224c2e0f4 100644
--- a/src/command.c
+++ b/src/command.c
@@ -19,6 +19,7 @@
#include "command.h"
#include "player_control.h"
#include "playlist.h"
+#include "playlist_print.h"
#include "ls.h"
#include "directory.h"
#include "directory_print.h"
diff --git a/src/playlist.c b/src/playlist.c
index 5945d088b..a1743d1ed 100644
--- a/src/playlist.c
+++ b/src/playlist.c
@@ -24,8 +24,6 @@
#include "ls.h"
#include "tag.h"
#include "song.h"
-#include "song_print.h"
-#include "client.h"
#include "conf.h"
#include "database.h"
#include "mapper.h"
@@ -1217,34 +1215,6 @@ unsigned getPlaylistSongId(unsigned song)
return queue_position_to_id(&playlist.queue, song);
}
-int PlaylistInfo(struct client *client, const char *utf8file, int detail)
-{
- GPtrArray *list;
-
- if (!(list = spl_load(utf8file)))
- return -1;
-
- for (unsigned i = 0; i < list->len; ++i) {
- const char *temp = g_ptr_array_index(list, i);
- int wrote = 0;
-
- if (detail) {
- struct song *song = db_get_song(temp);
- if (song) {
- song_print_info(client, song);
- wrote = 1;
- }
- }
-
- if (!wrote) {
- client_printf(client, SONG_FILE "%s\n", temp);
- }
- }
-
- spl_free(list);
- return 0;
-}
-
enum playlist_result loadPlaylist(const char *utf8file)
{
GPtrArray *list;
diff --git a/src/playlist.h b/src/playlist.h
index c1c651a77..eaaba9647 100644
--- a/src/playlist.h
+++ b/src/playlist.h
@@ -174,8 +174,6 @@ int playlistChanges(struct client *client, uint32_t version);
int playlistChangesPosId(struct client *client, uint32_t version);
-int PlaylistInfo(struct client *client, const char *utf8file, int detail);
-
void
searchForSongsInPlaylist(struct client *client,
unsigned numItems, const LocateTagItem *items);
diff --git a/src/playlist_print.c b/src/playlist_print.c
new file mode 100644
index 000000000..df2c7d08c
--- /dev/null
+++ b/src/playlist_print.c
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2003-2009 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include "playlist_print.h"
+#include "stored_playlist.h"
+#include "song_print.h"
+#include "song.h"
+#include "database.h"
+#include "client.h"
+
+int
+PlaylistInfo(struct client *client, const char *utf8file, int detail)
+{
+ GPtrArray *list;
+
+ if (!(list = spl_load(utf8file)))
+ return -1;
+
+ for (unsigned i = 0; i < list->len; ++i) {
+ const char *temp = g_ptr_array_index(list, i);
+ int wrote = 0;
+
+ if (detail) {
+ struct song *song = db_get_song(temp);
+ if (song) {
+ song_print_info(client, song);
+ wrote = 1;
+ }
+ }
+
+ if (!wrote) {
+ client_printf(client, SONG_FILE "%s\n", temp);
+ }
+ }
+
+ spl_free(list);
+ return 0;
+}
diff --git a/src/playlist_print.h b/src/playlist_print.h
new file mode 100644
index 000000000..7a633b53b
--- /dev/null
+++ b/src/playlist_print.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2003-2009 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifndef PLAYLIST_PRINT_H
+#define PLAYLIST_PRINT_H
+
+#include "playlist_print.h"
+#include "stored_playlist.h"
+#include "song_print.h"
+#include "client.h"
+
+int
+PlaylistInfo(struct client *client, const char *utf8file, int detail);
+
+#endif