aboutsummaryrefslogtreecommitdiff
path: root/src/playlist.c
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2009-01-04 19:09:34 +0100
committerMax Kellermann <max@duempel.org>2009-01-04 19:09:34 +0100
commitfed719197c7014151710c4aae9174990fd131d59 (patch)
tree0fb6d6f69aa60ecdf9eb89286f8354316fffcc92 /src/playlist.c
parentea8ae68e6f1a686fd96530fdaf7b428e33f58ec4 (diff)
song: allocate the result of song_get_url()
Diffstat (limited to 'src/playlist.c')
-rw-r--r--src/playlist.c52
1 files changed, 28 insertions, 24 deletions
diff --git a/src/playlist.c b/src/playlist.c
index 414e5a63..df60fe99 100644
--- a/src/playlist.c
+++ b/src/playlist.c
@@ -224,20 +224,20 @@ void clearPlaylist(void)
void showPlaylist(struct client *client)
{
- char path_max_tmp[MPD_PATH_MAX];
-
- for (unsigned i = 0; i < playlist.length; i++)
- client_printf(client, "%i:%s\n", i,
- song_get_url(playlist.songs[i], path_max_tmp));
+ for (unsigned i = 0; i < playlist.length; i++) {
+ char *uri = song_get_uri(playlist.songs[i]);
+ client_printf(client, "%i:%s\n", i, uri);
+ g_free(uri);
+ }
}
static void playlist_save(FILE *fp)
{
- char path_max_tmp[MPD_PATH_MAX];
-
- for (unsigned i = 0; i < playlist.length; i++)
- fprintf(fp, "%i:%s\n", i,
- song_get_url(playlist.songs[i], path_max_tmp));
+ for (unsigned i = 0; i < playlist.length; i++) {
+ char *uri = song_get_uri(playlist.songs[i]);
+ fprintf(fp, "%i:%s\n", i, uri);
+ g_free(uri);
+ }
}
void savePlaylistState(FILE *fp)
@@ -483,26 +483,30 @@ static void swapSongs(unsigned song1, unsigned song2)
static void queueNextSongInPlaylist(void)
{
- char path_max_tmp[MPD_PATH_MAX];
-
if (playlist.current < (int)playlist.length - 1) {
+ char *uri;
+
playlist.queued = playlist.current + 1;
+
+ uri = song_get_uri(playlist. songs[playlist.order[playlist.queued]]);
g_debug("playlist: queue song %i:\"%s\"",
- playlist.queued,
- song_get_url(playlist.
- songs[playlist.order[playlist.queued]],
- path_max_tmp));
+ playlist.queued, uri);
+ g_free(uri);
+
queueSong(playlist.songs[playlist.order[playlist.queued]]);
} else if (playlist.length && playlist.repeat) {
+ char *uri;
+
if (playlist.length > 1 && playlist.random) {
randomizeOrder(0, playlist.length - 1);
}
playlist.queued = 0;
+
+ uri = song_get_uri(playlist. songs[playlist.order[playlist.queued]]);
g_debug("playlist: queue song %i:\"%s\"",
- playlist.queued,
- song_get_url(playlist.
- songs[playlist.order[playlist.queued]],
- path_max_tmp));
+ playlist.queued, uri);
+ g_free(uri);
+
queueSong(playlist.songs[playlist.order[playlist.queued]]);
}
}
@@ -783,15 +787,15 @@ void stopPlaylist(void)
static void playPlaylistOrderNumber(int orderNum)
{
- char path_max_tmp[MPD_PATH_MAX];
+ char *uri;
playlist_state = PLAYLIST_STATE_PLAY;
playlist_noGoToNext = 0;
playlist.queued = -1;
- g_debug("playlist: play %i:\"%s\"", orderNum,
- song_get_url(playlist.songs[playlist.order[orderNum]],
- path_max_tmp));
+ uri = song_get_uri(playlist.songs[playlist.order[orderNum]]);
+ g_debug("playlist: play %i:\"%s\"", orderNum, uri);
+ g_free(uri);
playerPlay(playlist.songs[playlist.order[orderNum]]);
playlist.current = orderNum;