diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/decoder_control.h | 3 | ||||
-rw-r--r-- | src/output_thread.c | 9 | ||||
-rw-r--r-- | src/update_walk.c | 6 |
3 files changed, 14 insertions, 4 deletions
diff --git a/src/decoder_control.h b/src/decoder_control.h index 6b65da2f2..cab6c69c7 100644 --- a/src/decoder_control.h +++ b/src/decoder_control.h @@ -27,9 +27,6 @@ #include <assert.h> -#define DECODE_TYPE_FILE 0 -#define DECODE_TYPE_URL 1 - enum decoder_state { DECODE_STATE_STOP = 0, DECODE_STATE_START, diff --git a/src/output_thread.c b/src/output_thread.c index ef8fe7418..da1caef3f 100644 --- a/src/output_thread.c +++ b/src/output_thread.c @@ -430,6 +430,15 @@ static gpointer audio_output_task(gpointer arg) break; case AO_COMMAND_PAUSE: + if (!ao->open) { + /* the output has failed after + audio_output_all_pause() has + submitted the PAUSE command; bail + out */ + ao_command_finished(ao); + break; + } + ao_pause(ao); /* don't "break" here: this might cause ao_play() to be called when command==CLOSE diff --git a/src/update_walk.c b/src/update_walk.c index fe99ea32a..68ebbedeb 100644 --- a/src/update_walk.c +++ b/src/update_walk.c @@ -695,7 +695,11 @@ updateDirectory(struct directory *directory, const struct stat *st) continue; utf8 = fs_charset_to_utf8(ent->d_name); - if (utf8 == NULL || skip_symlink(directory, utf8)) { + if (utf8 == NULL) + continue; + + if (skip_symlink(directory, utf8)) { + delete_name_in(directory, utf8); g_free(utf8); continue; } |