summaryrefslogtreecommitdiffstats
path: root/src/gstreamer.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2009-08-27 03:55:47 +0200
committerLennart Poettering <lennart@poettering.net>2009-08-27 03:55:47 +0200
commit54d8b7b31e3fbcbe80e20d0aef2bc344d44db81e (patch)
treeb6386ac633a6bb88509591a54935ecb91ba0e779 /src/gstreamer.c
parenta030f162722d5172be86eb6691d61baffe981b54 (diff)
implement ca_context_playing() call
Diffstat (limited to 'src/gstreamer.c')
-rw-r--r--src/gstreamer.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/gstreamer.c b/src/gstreamer.c
index 4173479..5ff835c 100644
--- a/src/gstreamer.c
+++ b/src/gstreamer.c
@@ -552,3 +552,31 @@ int driver_cache(ca_context *c, ca_proplist *proplist) {
return CA_ERROR_NOTSUPPORTED;
}
+
+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->id != id || out->pipeline == NULL || out->dead == TRUE)
+ continue;
+
+ *playing = 1;
+ break;
+ }
+
+ ca_mutex_unlock(p->outstanding_mutex);
+
+ return CA_SUCCESS;
+}