Merge branch 'v0.17.x'
Conflicts: src/player_thread.c
This commit is contained in:
commit
8422402c39
1
NEWS
1
NEWS
@ -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 @@
|
|||||||
#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)
|
|||||||
#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)
|
|||||||
|
|
||||||
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)
|
|||||||
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)
|
|||||||
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 @@
|
|||||||
#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"
|
||||||
|
Loading…
Reference in New Issue
Block a user