From 54d8b7b31e3fbcbe80e20d0aef2bc344d44db81e Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 27 Aug 2009 03:55:47 +0200 Subject: implement ca_context_playing() call --- src/gstreamer.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src/gstreamer.c') 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; +} -- cgit