]> code.delx.au - pulseaudio/commitdiff
core: suppress suspending/resume when we are already in the right state
authorLennart Poettering <lennart@poettering.net>
Sat, 6 Jun 2009 13:31:46 +0000 (15:31 +0200)
committerLennart Poettering <lennart@poettering.net>
Sat, 6 Jun 2009 13:31:46 +0000 (15:31 +0200)
src/pulsecore/sink.c
src/pulsecore/source.c

index 3c4adc6cab2dcac5919b6e179c60fbdd649d1762..a087e42d7435510fab5d3005fc366320d88da7b6 100644 (file)
@@ -510,6 +510,9 @@ int pa_sink_suspend(pa_sink *s, pa_bool_t suspend, pa_suspend_cause_t cause) {
     else
         s->suspend_cause &= ~cause;
 
+    if ((pa_sink_get_state(s) == PA_SINK_SUSPENDED) == !!s->suspend_cause)
+        return 0;
+
     pa_log_debug("Suspend cause of sink %s is 0x%04x, %s", s->name, s->suspend_cause, s->suspend_cause ? "suspending" : "resuming");
 
     if (s->suspend_cause)
index 4ade18f66b6806bae48a829b8008cd1f69a3991f..abb5f4d1b054c85343d66612836b22f7460ca501 100644 (file)
@@ -441,6 +441,9 @@ int pa_source_suspend(pa_source *s, pa_bool_t suspend, pa_suspend_cause_t cause)
     else
         s->suspend_cause &= ~cause;
 
+    if ((pa_source_get_state(s) == PA_SOURCE_SUSPENDED) == !!s->suspend_cause)
+        return 0;
+
     pa_log_debug("Suspend cause of source %s is 0x%04x, %s", s->name, s->suspend_cause, s->suspend_cause ? "suspending" : "resuming");
 
     if (suspend)