aboutsummaryrefslogtreecommitdiffstats
path: root/src/output_command.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/output_command.c')
-rw-r--r--src/output_command.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/output_command.c b/src/output_command.c
index 5da176dde..b47890043 100644
--- a/src/output_command.c
+++ b/src/output_command.c
@@ -29,8 +29,11 @@
#include "output_internal.h"
#include "output_plugin.h"
#include "mixer_control.h"
+#include "player_control.h"
#include "idle.h"
+extern unsigned audio_output_state_version;
+
bool
audio_output_enable_index(unsigned idx)
{
@@ -40,10 +43,16 @@ audio_output_enable_index(unsigned idx)
return false;
ao = audio_output_get(idx);
+ if (ao->enabled)
+ return true;
ao->enabled = true;
idle_add(IDLE_OUTPUT);
+ pc_update_audio();
+
+ ++audio_output_state_version;
+
return true;
}
@@ -57,6 +66,8 @@ audio_output_disable_index(unsigned idx)
return false;
ao = audio_output_get(idx);
+ if (!ao->enabled)
+ return true;
ao->enabled = false;
idle_add(IDLE_OUTPUT);
@@ -67,5 +78,9 @@ audio_output_disable_index(unsigned idx)
idle_add(IDLE_MIXER);
}
+ pc_update_audio();
+
+ ++audio_output_state_version;
+
return true;
}