aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/filter/volume_filter_plugin.c1
-rw-r--r--src/mapper.c6
-rw-r--r--src/player_thread.c4
-rw-r--r--src/playlist.c6
-rw-r--r--src/volume.c1
5 files changed, 11 insertions, 7 deletions
diff --git a/src/filter/volume_filter_plugin.c b/src/filter/volume_filter_plugin.c
index e52c0a463..3260e8989 100644
--- a/src/filter/volume_filter_plugin.c
+++ b/src/filter/volume_filter_plugin.c
@@ -26,7 +26,6 @@
#include "pcm_buffer.h"
#include "pcm_volume.h"
#include "audio_format.h"
-#include "player_control.h"
#include <assert.h>
#include <string.h>
diff --git a/src/mapper.c b/src/mapper.c
index 6a968e32d..7db74b1af 100644
--- a/src/mapper.c
+++ b/src/mapper.c
@@ -93,10 +93,10 @@ check_directory(const char *path)
#endif
DIR *dir = opendir(path);
- if (dir == NULL && errno == EACCES)
- g_warning("No permission to read directory: %s", path);
- else
+ if (dir != NULL)
closedir(dir);
+ else if (errno == EACCES)
+ g_warning("No permission to read directory: %s", path);
}
static void
diff --git a/src/player_thread.c b/src/player_thread.c
index 15fc9d235..cf0b9ac8d 100644
--- a/src/player_thread.c
+++ b/src/player_thread.c
@@ -458,6 +458,8 @@ static bool player_seek_decoder(struct player *player)
assert(pc->next_song != NULL);
+ const unsigned start_ms = song->start_ms;
+
if (!decoder_lock_is_current_song(dc, song)) {
/* the decoder is already decoding the "next" song -
stop it and start the previous song again */
@@ -506,7 +508,7 @@ static bool player_seek_decoder(struct player *player)
if (where < 0.0)
where = 0.0;
- if (!dc_seek(dc, where + song->start_ms / 1000.0)) {
+ if (!dc_seek(dc, where + start_ms / 1000.0)) {
/* decoder failure */
player_command_finished(pc);
return false;
diff --git a/src/playlist.c b/src/playlist.c
index b2cb90d2f..4c95bc7ce 100644
--- a/src/playlist.c
+++ b/src/playlist.c
@@ -239,9 +239,13 @@ playlist_sync(struct playlist *playlist, struct player_control *pc)
if (pc_next_song == NULL && playlist->queued != -1)
playlist_song_started(playlist, pc);
+ player_lock(pc);
+ pc_next_song = pc->next_song;
+ player_unlock(pc);
+
/* make sure the queued song is always set (if
possible) */
- if (pc->next_song == NULL && playlist->queued < 0)
+ if (pc_next_song == NULL && playlist->queued < 0)
playlist_update_queued_song(playlist, pc, NULL);
}
}
diff --git a/src/volume.c b/src/volume.c
index 819e6fbfa..d3ce47dd4 100644
--- a/src/volume.c
+++ b/src/volume.c
@@ -20,7 +20,6 @@
#include "config.h"
#include "volume.h"
#include "conf.h"
-#include "player_control.h"
#include "idle.h"
#include "pcm_volume.h"
#include "output_all.h"