pulse-server: split out module handling

Part of !776.
This commit is contained in:
Barnabás Pőcze 2021-06-19 00:09:09 +02:00
parent c49ae39888
commit c9f5deb81d
6 changed files with 41 additions and 19 deletions

View file

@ -27,11 +27,13 @@
#define PIPEWIRE_PULSE_MODULE_H
#include <spa/param/audio/raw.h>
#include <spa/utils/hook.h>
#include "client.h"
#include "internal.h"
struct module;
struct pw_properties;
struct module_info {
const char *name;
@ -45,8 +47,6 @@ struct module_events {
void (*loaded) (void *data, int result);
};
#define module_emit_loaded(m,r) spa_hook_list_call(&m->listener_list, struct module_events, loaded, 0, r)
struct module_methods {
#define VERSION_MODULE_METHODS 0
uint32_t version;
@ -67,9 +67,19 @@ struct module {
unsigned int loaded:1;
};
#define module_emit_loaded(m,r) spa_hook_list_call(&m->listener_list, struct module_events, loaded, 0, r)
struct module *module_create(struct client *client, const char *name, const char *args);
void module_free(struct module *module);
struct module *module_new(struct impl *impl, const struct module_methods *methods, size_t user_data);
int module_load(struct client *client, struct module *module);
int module_unload(struct client *client, struct module *module);
void module_schedule_unload(struct module *module);
void module_add_listener(struct module *module,
struct spa_hook *listener,
const struct module_events *events, void *data);
void module_args_add_props(struct pw_properties *props, const char *str);
int module_args_to_audioinfo(struct impl *impl, struct pw_properties *props, struct spa_audio_info_raw *info);