mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-02 09:01:50 -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");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ static void restore_test(pa_operation *o, void *userdata)
|
|||
{
|
||||
struct ext_data *d = userdata;
|
||||
if (d->test_cb)
|
||||
d->test_cb(o->context, EXT_VERSION, d->userdata);
|
||||
d->test_cb(o->context, PA_INVALID_INDEX, d->userdata);
|
||||
pa_operation_done(o);
|
||||
}
|
||||
|
||||
|
|
@ -104,7 +104,6 @@ void pa_ext_device_restore_set_subscribe_cb(
|
|||
pa_ext_device_restore_subscribe_cb_t cb,
|
||||
void *userdata)
|
||||
{
|
||||
pw_log_warn("Not Implemented");
|
||||
}
|
||||
|
||||
static void read_formats(pa_operation *o, void *userdata)
|
||||
|
|
|
|||
|
|
@ -23,8 +23,6 @@
|
|||
|
||||
#include "internal.h"
|
||||
|
||||
#define EXT_VERSION 1
|
||||
|
||||
struct stream_data {
|
||||
pa_context *context;
|
||||
pa_ext_stream_restore_test_cb_t test_cb;
|
||||
|
|
@ -38,7 +36,7 @@ static void restore_test(pa_operation *o, void *userdata)
|
|||
struct stream_data *d = userdata;
|
||||
|
||||
if (d->test_cb)
|
||||
d->test_cb(o->context, EXT_VERSION, d->userdata);
|
||||
d->test_cb(o->context, PA_INVALID_INDEX, d->userdata);
|
||||
|
||||
pa_operation_done(o);
|
||||
}
|
||||
|
|
@ -197,5 +195,4 @@ void pa_ext_stream_restore_set_subscribe_cb(
|
|||
pa_ext_stream_restore_subscribe_cb_t cb,
|
||||
void *userdata)
|
||||
{
|
||||
pw_log_warn("Not Implemented");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -619,7 +619,6 @@ pa_operation* pa_context_suspend_sink_by_name(pa_context *c, const char *sink_na
|
|||
d->userdata = userdata;
|
||||
pa_operation_sync(o);
|
||||
|
||||
pw_log_warn("Not Implemented");
|
||||
return o;
|
||||
}
|
||||
|
||||
|
|
@ -636,7 +635,6 @@ pa_operation* pa_context_suspend_sink_by_index(pa_context *c, uint32_t idx, int
|
|||
d->userdata = userdata;
|
||||
pa_operation_sync(o);
|
||||
|
||||
pw_log_warn("Not Implemented");
|
||||
return o;
|
||||
}
|
||||
|
||||
|
|
@ -1151,7 +1149,6 @@ pa_operation* pa_context_suspend_source_by_name(pa_context *c, const char *sourc
|
|||
d->userdata = userdata;
|
||||
pa_operation_sync(o);
|
||||
|
||||
pw_log_warn("Not Implemented");
|
||||
return o;
|
||||
}
|
||||
|
||||
|
|
@ -1168,7 +1165,6 @@ pa_operation* pa_context_suspend_source_by_index(pa_context *c, uint32_t idx, in
|
|||
d->userdata = userdata;
|
||||
pa_operation_sync(o);
|
||||
|
||||
pw_log_warn("Not Implemented");
|
||||
return o;
|
||||
}
|
||||
|
||||
|
|
@ -1425,7 +1421,6 @@ pa_operation* pa_context_load_module(pa_context *c, const char*name, const char
|
|||
d->idx = PA_INVALID_INDEX;
|
||||
pa_operation_sync(o);
|
||||
|
||||
pw_log_warn("Not Implemented");
|
||||
return o;
|
||||
}
|
||||
|
||||
|
|
@ -1442,7 +1437,6 @@ pa_operation* pa_context_unload_module(pa_context *c, uint32_t idx, pa_context_s
|
|||
d->userdata = userdata;
|
||||
pa_operation_sync(o);
|
||||
|
||||
pw_log_warn("Not Implemented");
|
||||
return o;
|
||||
}
|
||||
|
||||
|
|
@ -1834,7 +1828,6 @@ pa_operation* pa_context_set_port_latency_offset(pa_context *c, const char *card
|
|||
d->userdata = userdata;
|
||||
pa_operation_sync(o);
|
||||
|
||||
pw_log_warn("Not Implemented");
|
||||
return o;
|
||||
}
|
||||
|
||||
|
|
@ -2552,7 +2545,6 @@ pa_operation* pa_context_stat(pa_context *c, pa_stat_info_cb_t cb, void *userdat
|
|||
d->userdata = userdata;
|
||||
pa_operation_sync(o);
|
||||
|
||||
pw_log_warn("Not Implemented");
|
||||
return o;
|
||||
}
|
||||
|
||||
|
|
@ -2587,7 +2579,6 @@ pa_operation* pa_context_get_sample_info_by_name(pa_context *c, const char *name
|
|||
d->userdata = userdata;
|
||||
pa_operation_sync(o);
|
||||
|
||||
pw_log_warn("Not Implemented");
|
||||
return o;
|
||||
}
|
||||
|
||||
|
|
@ -2604,7 +2595,6 @@ pa_operation* pa_context_get_sample_info_by_index(pa_context *c, uint32_t idx, p
|
|||
d->userdata = userdata;
|
||||
pa_operation_sync(o);
|
||||
|
||||
pw_log_warn("Not Implemented");
|
||||
return o;
|
||||
}
|
||||
|
||||
|
|
@ -2633,7 +2623,6 @@ pa_operation* pa_context_get_sample_info_list(pa_context *c, pa_sample_info_cb_t
|
|||
d->userdata = userdata;
|
||||
pa_operation_sync(o);
|
||||
|
||||
pw_log_warn("Not Implemented");
|
||||
return o;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue