aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/decoder_control.h3
-rw-r--r--src/output_thread.c9
-rw-r--r--src/update_walk.c6
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;
}