/*** This file is part of PulseAudio. Copyright 2022 Craig Howard 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 . ***/ #ifndef RESTART_MODULE_H #define RESTART_MODULE_H #ifdef __cplusplus extern "C" { #endif #include #include #include /* Init and exit callbacks of the module */ typedef int (*init_cb)(pa_module *m); typedef void (*done_cb)(pa_module *m); /* Restart data structure */ typedef struct pa_restart_data pa_restart_data; /* Tears down the module using the done callback and schedules a restart after restart_usec. * Returns a handle to the restart event. When the init callback finishes successfully during * restart or when the restart should be cancelled, the restart event must be destroyed using * pa_restart_free(). */ pa_restart_data *pa_restart_module_reinit(pa_module *m, init_cb do_init, done_cb do_done, pa_usec_t restart_usec); /* Free the restart event */ void pa_restart_free(pa_restart_data *data); #ifdef __cplusplus } #endif #endif