Commit 8422402c authored by Max Kellermann's avatar Max Kellermann

Merge branch 'v0.17.x'

Conflicts: src/player_thread.c
parents b5fde6df 9374e0f4
...@@ -13,6 +13,7 @@ ver 0.17.2 (2012/??/??) ...@@ -13,6 +13,7 @@ ver 0.17.2 (2012/??/??)
- httpd: use monotonic clock, avoid hiccups after system clock adjustment - httpd: use monotonic clock, avoid hiccups after system clock adjustment
- httpd: fix throttling bug after resuming playback - httpd: fix throttling bug after resuming playback
* mapper: fix non-UTF8 music directory name * mapper: fix non-UTF8 music directory name
* mapper: fix potential crash in file permission check
ver 0.17.1 (2012/07/31) ver 0.17.1 (2012/07/31)
......
...@@ -26,7 +26,6 @@ ...@@ -26,7 +26,6 @@
#include "pcm_buffer.h" #include "pcm_buffer.h"
#include "pcm_volume.h" #include "pcm_volume.h"
#include "audio_format.h" #include "audio_format.h"
#include "player_control.h"
#include <assert.h> #include <assert.h>
#include <string.h> #include <string.h>
......
...@@ -93,10 +93,10 @@ check_directory(const char *path) ...@@ -93,10 +93,10 @@ check_directory(const char *path)
#endif #endif
DIR *dir = opendir(path); DIR *dir = opendir(path);
if (dir == NULL && errno == EACCES) if (dir != NULL)
g_warning("No permission to read directory: %s", path);
else
closedir(dir); closedir(dir);
else if (errno == EACCES)
g_warning("No permission to read directory: %s", path);
} }
static void static void
......
...@@ -458,6 +458,8 @@ static bool player_seek_decoder(struct player *player) ...@@ -458,6 +458,8 @@ static bool player_seek_decoder(struct player *player)
assert(pc->next_song != NULL); assert(pc->next_song != NULL);
const unsigned start_ms = song->start_ms;
if (!decoder_lock_is_current_song(dc, song)) { if (!decoder_lock_is_current_song(dc, song)) {
/* the decoder is already decoding the "next" song - /* the decoder is already decoding the "next" song -
stop it and start the previous song again */ stop it and start the previous song again */
...@@ -506,7 +508,7 @@ static bool player_seek_decoder(struct player *player) ...@@ -506,7 +508,7 @@ static bool player_seek_decoder(struct player *player)
if (where < 0.0) if (where < 0.0)
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 */ /* decoder failure */
player_command_finished(pc); player_command_finished(pc);
return false; return false;
......
...@@ -239,9 +239,13 @@ playlist_sync(struct playlist *playlist, struct player_control *pc) ...@@ -239,9 +239,13 @@ playlist_sync(struct playlist *playlist, struct player_control *pc)
if (pc_next_song == NULL && playlist->queued != -1) if (pc_next_song == NULL && playlist->queued != -1)
playlist_song_started(playlist, pc); 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 /* make sure the queued song is always set (if
possible) */ possible) */
if (pc->next_song == NULL && playlist->queued < 0) if (pc_next_song == NULL && playlist->queued < 0)
playlist_update_queued_song(playlist, pc, NULL); playlist_update_queued_song(playlist, pc, NULL);
} }
} }
......
...@@ -20,7 +20,6 @@ ...@@ -20,7 +20,6 @@
#include "config.h" #include "config.h"
#include "volume.h" #include "volume.h"
#include "conf.h" #include "conf.h"
#include "player_control.h"
#include "idle.h" #include "idle.h"
#include "pcm_volume.h" #include "pcm_volume.h"
#include "output_all.h" #include "output_all.h"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment