mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-05 13:30:02 -05:00
pulse: implement some more extensions
Most just return nothing or say that the extension is not supported. Remove some warnings, they should show up in the log from setting the error in the context.
This commit is contained in:
parent
62cea9c6d5
commit
451fee2208
4 changed files with 153 additions and 32 deletions
|
|
@ -25,6 +25,22 @@
|
|||
|
||||
#include "internal.h"
|
||||
|
||||
struct ext_data {
|
||||
pa_context *context;
|
||||
pa_ext_device_manager_test_cb_t test_cb;
|
||||
pa_ext_device_manager_read_cb_t read_cb;
|
||||
pa_context_success_cb_t success_cb;
|
||||
int error;
|
||||
void *userdata;
|
||||
};
|
||||
|
||||
static void device_test(pa_operation *o, void *userdata)
|
||||
{
|
||||
struct ext_data *d = userdata;
|
||||
if (d->test_cb)
|
||||
d->test_cb(o->context, PA_INVALID_INDEX, d->userdata);
|
||||
pa_operation_done(o);
|
||||
}
|
||||
|
||||
SPA_EXPORT
|
||||
pa_operation *pa_ext_device_manager_test(
|
||||
|
|
@ -32,8 +48,31 @@ pa_operation *pa_ext_device_manager_test(
|
|||
pa_ext_device_manager_test_cb_t cb,
|
||||
void *userdata)
|
||||
{
|
||||
pw_log_warn("Not Implemented");
|
||||
return NULL;
|
||||
pa_operation *o;
|
||||
struct ext_data *d;
|
||||
|
||||
pa_assert(c);
|
||||
pa_assert(c->refcount >= 1);
|
||||
|
||||
PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE);
|
||||
|
||||
o = pa_operation_new(c, NULL, device_test, sizeof(struct ext_data));
|
||||
d = o->userdata;
|
||||
d->context = c;
|
||||
d->test_cb = cb;
|
||||
d->userdata = userdata;
|
||||
d->error = PA_ERR_NOTIMPLEMENTED;
|
||||
pa_operation_sync(o);
|
||||
|
||||
return o;
|
||||
}
|
||||
|
||||
static void device_read(pa_operation *o, void *userdata)
|
||||
{
|
||||
struct ext_data *d = userdata;
|
||||
if (d->read_cb)
|
||||
d->read_cb(o->context, NULL, 1, d->userdata);
|
||||
pa_operation_done(o);
|
||||
}
|
||||
|
||||
SPA_EXPORT
|
||||
|
|
@ -42,8 +81,31 @@ pa_operation *pa_ext_device_manager_read(
|
|||
pa_ext_device_manager_read_cb_t cb,
|
||||
void *userdata)
|
||||
{
|
||||
pw_log_warn("Not Implemented");
|
||||
return NULL;
|
||||
pa_operation *o;
|
||||
struct ext_data *d;
|
||||
|
||||
pa_assert(c);
|
||||
pa_assert(c->refcount >= 1);
|
||||
|
||||
PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE);
|
||||
|
||||
o = pa_operation_new(c, NULL, device_read, sizeof(struct ext_data));
|
||||
d = o->userdata;
|
||||
d->context = c;
|
||||
d->read_cb = cb;
|
||||
d->userdata = userdata;
|
||||
d->error = PA_ERR_NOTIMPLEMENTED;
|
||||
pa_operation_sync(o);
|
||||
|
||||
return o;
|
||||
}
|
||||
|
||||
static void on_success(pa_operation *o, void *userdata)
|
||||
{
|
||||
struct ext_data *d = userdata;
|
||||
if (d->success_cb)
|
||||
d->success_cb(o->context, d->error, d->userdata);
|
||||
pa_operation_done(o);
|
||||
}
|
||||
|
||||
SPA_EXPORT
|
||||
|
|
@ -54,8 +116,23 @@ pa_operation *pa_ext_device_manager_set_device_description(
|
|||
pa_context_success_cb_t cb,
|
||||
void *userdata)
|
||||
{
|
||||
pw_log_warn("Not Implemented");
|
||||
return NULL;
|
||||
pa_operation *o;
|
||||
struct ext_data *d;
|
||||
|
||||
pa_assert(c);
|
||||
pa_assert(c->refcount >= 1);
|
||||
|
||||
PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE);
|
||||
|
||||
o = pa_operation_new(c, NULL, on_success, sizeof(struct ext_data));
|
||||
d = o->userdata;
|
||||
d->context = c;
|
||||
d->success_cb = cb;
|
||||
d->userdata = userdata;
|
||||
d->error = PA_ERR_NOTIMPLEMENTED;
|
||||
pa_operation_sync(o);
|
||||
|
||||
return o;
|
||||
}
|
||||
|
||||
SPA_EXPORT
|
||||
|
|
@ -65,8 +142,23 @@ pa_operation *pa_ext_device_manager_delete(
|
|||
pa_context_success_cb_t cb,
|
||||
void *userdata)
|
||||
{
|
||||
pw_log_warn("Not Implemented");
|
||||
return NULL;
|
||||
pa_operation *o;
|
||||
struct ext_data *d;
|
||||
|
||||
pa_assert(c);
|
||||
pa_assert(c->refcount >= 1);
|
||||
|
||||
PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE);
|
||||
|
||||
o = pa_operation_new(c, NULL, on_success, sizeof(struct ext_data));
|
||||
d = o->userdata;
|
||||
d->context = c;
|
||||
d->success_cb = cb;
|
||||
d->userdata = userdata;
|
||||
d->error = PA_ERR_NOTIMPLEMENTED;
|
||||
pa_operation_sync(o);
|
||||
|
||||
return o;
|
||||
}
|
||||
|
||||
SPA_EXPORT
|
||||
|
|
@ -76,8 +168,23 @@ pa_operation *pa_ext_device_manager_enable_role_device_priority_routing(
|
|||
pa_context_success_cb_t cb,
|
||||
void *userdata)
|
||||
{
|
||||
pw_log_warn("Not Implemented");
|
||||
return NULL;
|
||||
pa_operation *o;
|
||||
struct ext_data *d;
|
||||
|
||||
pa_assert(c);
|
||||
pa_assert(c->refcount >= 1);
|
||||
|
||||
PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE);
|
||||
|
||||
o = pa_operation_new(c, NULL, on_success, sizeof(struct ext_data));
|
||||
d = o->userdata;
|
||||
d->context = c;
|
||||
d->success_cb = cb;
|
||||
d->userdata = userdata;
|
||||
d->error = PA_ERR_NOTIMPLEMENTED;
|
||||
pa_operation_sync(o);
|
||||
|
||||
return o;
|
||||
}
|
||||
|
||||
SPA_EXPORT
|
||||
|
|
@ -88,8 +195,23 @@ pa_operation *pa_ext_device_manager_reorder_devices_for_role(
|
|||
pa_context_success_cb_t cb,
|
||||
void *userdata)
|
||||
{
|
||||
pw_log_warn("Not Implemented");
|
||||
return NULL;
|
||||
pa_operation *o;
|
||||
struct ext_data *d;
|
||||
|
||||
pa_assert(c);
|
||||
pa_assert(c->refcount >= 1);
|
||||
|
||||
PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE);
|
||||
|
||||
o = pa_operation_new(c, NULL, on_success, sizeof(struct ext_data));
|
||||
d = o->userdata;
|
||||
d->context = c;
|
||||
d->success_cb = cb;
|
||||
d->userdata = userdata;
|
||||
d->error = PA_ERR_NOTIMPLEMENTED;
|
||||
pa_operation_sync(o);
|
||||
|
||||
return o;
|
||||
}
|
||||
|
||||
SPA_EXPORT
|
||||
|
|
@ -99,8 +221,23 @@ pa_operation *pa_ext_device_manager_subscribe(
|
|||
pa_context_success_cb_t cb,
|
||||
void *userdata)
|
||||
{
|
||||
pw_log_warn("Not Implemented");
|
||||
return NULL;
|
||||
pa_operation *o;
|
||||
struct ext_data *d;
|
||||
|
||||
pa_assert(c);
|
||||
pa_assert(c->refcount >= 1);
|
||||
|
||||
PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE);
|
||||
|
||||
o = pa_operation_new(c, NULL, on_success, sizeof(struct ext_data));
|
||||
d = o->userdata;
|
||||
d->context = c;
|
||||
d->success_cb = cb;
|
||||
d->userdata = userdata;
|
||||
d->error = PA_ERR_NOTIMPLEMENTED;
|
||||
pa_operation_sync(o);
|
||||
|
||||
return o;
|
||||
}
|
||||
|
||||
SPA_EXPORT
|
||||
|
|
@ -109,5 +246,4 @@ void pa_ext_device_manager_set_subscribe_cb(
|
|||
pa_ext_device_manager_subscribe_cb_t cb,
|
||||
void *userdata)
|
||||
{
|
||||
pw_log_warn("Not Implemented");
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue