summaryrefslogtreecommitdiffstats
path: root/src/pulsecore
diff options
context:
space:
mode:
Diffstat (limited to 'src/pulsecore')
-rw-r--r--src/pulsecore/card.c17
-rw-r--r--src/pulsecore/card.h2
2 files changed, 19 insertions, 0 deletions
diff --git a/src/pulsecore/card.c b/src/pulsecore/card.c
index ac9e6d9f..8e1ba536 100644
--- a/src/pulsecore/card.c
+++ b/src/pulsecore/card.c
@@ -235,3 +235,20 @@ int pa_card_set_profile(pa_card *c, const char *name) {
return 0;
}
+
+int pa_card_suspend(pa_card *c, pa_bool_t suspend) {
+ pa_sink *sink;
+ pa_source *source;
+ uint32_t idx;
+ int ret = 0;
+
+ pa_assert(c);
+
+ for (sink = pa_idxset_first(c->sinks, &idx); sink; sink = pa_idxset_next(c->sinks, &idx))
+ ret -= pa_sink_suspend(sink, suspend) < 0;
+
+ for (source = pa_idxset_first(c->sources, &idx); source; source = pa_idxset_next(c->sources, &idx))
+ ret -= pa_source_suspend(source, suspend) < 0;
+
+ return ret;
+}
diff --git a/src/pulsecore/card.h b/src/pulsecore/card.h
index 9aa8f374..b179831e 100644
--- a/src/pulsecore/card.h
+++ b/src/pulsecore/card.h
@@ -95,4 +95,6 @@ void pa_card_free(pa_card *c);
int pa_card_set_profile(pa_card *c, const char *name);
+int pa_card_suspend(pa_card *c, pa_bool_t suspend);
+
#endif