#ifndef foostdinutilhfoo #define foostdinutilhfoo /*** This file is part of PulseAudio. Copyright 2009 Lennart Poettering PulseAudio is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. PulseAudio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with PulseAudio; if not, see . ***/ #include #include #include #include #include #define MAX_MODULES 10 #define BUF_MAX 2048 struct userdata; struct module_item { char *name; char *args; uint32_t index; }; struct pa_module_info { struct userdata *userdata; char *name; struct module_item items[MAX_MODULES]; unsigned n_items; }; struct userdata { pa_core *core; pa_module *module; pa_hashmap *module_infos; pid_t pid; int fd; int fd_type; pa_io_event *io_event; char buf[BUF_MAX]; size_t buf_fill; }; int fill_buf(struct userdata *u); int read_byte(struct userdata *u); char *read_string(struct userdata *u); void unload_one_module(struct pa_module_info *m, unsigned i); void unload_all_modules(struct pa_module_info *m); void load_module( struct pa_module_info *m, unsigned i, const char *name, const char *args, bool is_new); void module_info_free(void *p); int handle_event(struct userdata *u); void io_event_cb( pa_mainloop_api*a, pa_io_event* e, int fd, pa_io_event_flags_t events, void *userdata); #endif