summaryrefslogtreecommitdiffstats
path: root/src/pulse.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pulse.c')
-rw-r--r--src/pulse.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/pulse.c b/src/pulse.c
index 2a61c8f..2283b68 100644
--- a/src/pulse.c
+++ b/src/pulse.c
@@ -1271,3 +1271,33 @@ finish_unlocked:
return ret;
}
+
+int driver_playing(ca_context *c, uint32_t id, int *playing) {
+ struct private *p;
+ struct outstanding *out;
+
+ ca_return_val_if_fail(c, CA_ERROR_INVALID);
+ ca_return_val_if_fail(c->private, CA_ERROR_STATE);
+ ca_return_val_if_fail(playing, CA_ERROR_INVALID);
+
+ p = PRIVATE(c);
+
+ *playing = 0;
+
+ ca_mutex_lock(p->outstanding_mutex);
+
+ for (out = p->outstanding; out; out = out->next) {
+
+ if (out->type == OUTSTANDING_UPLOAD ||
+ out->id != id ||
+ out->sink_input == PA_INVALID_INDEX)
+ continue;
+
+ *playing = 1;
+ break;
+ }
+
+ ca_mutex_unlock(p->outstanding_mutex);
+
+ return CA_SUCCESS;
+}