aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2008-01-26 12:46:49 +0000
committerEric Wong <normalperson@yhbt.net>2008-01-26 12:46:49 +0000
commit2f0e5bfd8546f91bf0fed17d7ba68545fd4c43ef (patch)
tree00e2cfe5a8c4b903cdb95d149282c9fc04dad855
parent2dafd9cd5693e3048dcf3050d102177226a0fda7 (diff)
downloadmpd-2f0e5bfd8546f91bf0fed17d7ba68545fd4c43ef.tar.gz
mpd-2f0e5bfd8546f91bf0fed17d7ba68545fd4c43ef.tar.xz
mpd-2f0e5bfd8546f91bf0fed17d7ba68545fd4c43ef.zip
addToPlaylist/addSongToPlaylist: printId argument changed to added_id
Instead of printing out the Id from playlist.c, instead set the integer that added_id poitns to if added_id is non-NULL. This makes the API cleaner and will allow us to use additional commands to manipulate the newly-added song_id. Callers (handleAddId) that relied on printId to print it to the given fd have now been modified to print the ID at a higher-level; making playlist.c less-dependent on protocol details. git-svn-id: https://svn.musicpd.org/mpd/trunk@7149 09075e82-0dd4-0310-85a5-a0d7c8717e4f
-rw-r--r--src/command.c9
-rw-r--r--src/dbUtils.c2
-rw-r--r--src/playlist.c17
-rw-r--r--src/playlist.h4
4 files changed, 19 insertions, 13 deletions
diff --git a/src/command.c b/src/command.c
index ff171496c..79f2019c3 100644
--- a/src/command.c
+++ b/src/command.c
@@ -330,14 +330,19 @@ static int handleAdd(int fd, int *permission, int argc, char *argv[])
char *path = argv[1];
if (isRemoteUrl(path))
- return addToPlaylist(fd, path, 0);
+ return addToPlaylist(fd, path, NULL);
return addAllIn(fd, path);
}
static int handleAddId(int fd, int *permission, int argc, char *argv[])
{
- return addToPlaylist(fd, argv[1], 1);
+ int added_id;
+ int ret = addToPlaylist(fd, argv[1], &added_id);
+
+ if (!ret)
+ fdprintf(fd, "Id: %d\n", added_id);
+ return ret;
}
static int handleDelete(int fd, int *permission, int argc, char *argv[])
diff --git a/src/dbUtils.c b/src/dbUtils.c
index d03854d5d..32dbe3b6c 100644
--- a/src/dbUtils.c
+++ b/src/dbUtils.c
@@ -173,7 +173,7 @@ int printAllIn(int fd, char *name)
static int directoryAddSongToPlaylist(int fd, Song * song, void *data)
{
- return addSongToPlaylist(fd, song, 0);
+ return addSongToPlaylist(fd, song, NULL);
}
static int directoryAddSongToStoredPlaylist(int fd, Song *song, void *data)
diff --git a/src/playlist.c b/src/playlist.c
index 1f3ef0634..16fb4693c 100644
--- a/src/playlist.c
+++ b/src/playlist.c
@@ -290,7 +290,8 @@ static void loadPlaylistFromStateFile(FILE *fp, char *buffer,
song = atoi(strtok(buffer, ":"));
if (!(temp = strtok(NULL, "")))
state_file_fatal();
- if (!addToPlaylist(STDERR_FILENO, temp, 0) && current == song) {
+ if (!addToPlaylist(STDERR_FILENO, temp, NULL)
+ && current == song) {
if (state != PLAYER_STATE_STOP) {
playPlaylist(STDERR_FILENO,
playlist.length - 1, 0);
@@ -603,7 +604,7 @@ static void clearPlayerQueue(void)
}
}
-int addToPlaylist(int fd, char *url, int printId)
+int addToPlaylist(int fd, char *url, int *added_id)
{
Song *song;
@@ -618,7 +619,7 @@ int addToPlaylist(int fd, char *url, int printId)
return -1;
}
- return addSongToPlaylist(fd, song, printId);
+ return addSongToPlaylist(fd, song, added_id);
}
int addToStoredPlaylist(int fd, char *url, char *utf8file)
@@ -649,7 +650,7 @@ fail:
return -1;
}
-int addSongToPlaylist(int fd, Song * song, int printId)
+int addSongToPlaylist(int fd, Song * song, int *added_id)
{
int id;
@@ -695,8 +696,8 @@ int addSongToPlaylist(int fd, Song * song, int printId)
incrPlaylistVersion();
- if (printId)
- fdprintf(fd, "Id: %i\n", id);
+ if (added_id)
+ *added_id = id;
return 0;
}
@@ -1550,7 +1551,7 @@ int loadPlaylist(int fd, char *utf8file)
node = list->firstNode;
while (node != NULL) {
char *temp = node->data;
- if ((addToPlaylist(STDERR_FILENO, temp, 0)) < 0) {
+ if ((addToPlaylist(STDERR_FILENO, temp, NULL)) < 0) {
/* for windows compatibility, convert slashes */
char *temp2 = xstrdup(temp);
char *p = temp2;
@@ -1559,7 +1560,7 @@ int loadPlaylist(int fd, char *utf8file)
*p = '/';
p++;
}
- if ((addToPlaylist(STDERR_FILENO, temp2, 0)) < 0) {
+ if ((addToPlaylist(STDERR_FILENO, temp2, NULL)) < 0) {
commandError(fd, ACK_ERROR_PLAYLIST_LOAD,
"can't add file \"%s\"", temp2);
}
diff --git a/src/playlist.h b/src/playlist.h
index a26b7f45f..2e5ccf9ab 100644
--- a/src/playlist.h
+++ b/src/playlist.h
@@ -57,11 +57,11 @@ int clearPlaylist(int fd);
int clearStoredPlaylist(int fd, char *utf8file);
-int addToPlaylist(int fd, char *file, int printId);
+int addToPlaylist(int fd, char *file, int *added_id);
int addToStoredPlaylist(int fd, char *file, char *utf8file);
-int addSongToPlaylist(int fd, Song * song, int printId);
+int addSongToPlaylist(int fd, Song * song, int *added_id);
int showPlaylist(int fd);