mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-04 13:29:59 -05:00
introduce pa_cli_eof_cb_t
This commit is contained in:
parent
084f4292f6
commit
5042284d45
2 changed files with 8 additions and 6 deletions
|
|
@ -52,7 +52,7 @@ struct pa_cli {
|
||||||
pa_core *core;
|
pa_core *core;
|
||||||
pa_ioline *line;
|
pa_ioline *line;
|
||||||
|
|
||||||
void (*eof_callback)(pa_cli *c, void *userdata);
|
pa_cli_eof_cb_t eof_callback;
|
||||||
void *userdata;
|
void *userdata;
|
||||||
|
|
||||||
pa_client *client;
|
pa_client *client;
|
||||||
|
|
@ -107,13 +107,12 @@ static void client_kill(pa_client *client) {
|
||||||
pa_assert_se(c = client->userdata);
|
pa_assert_se(c = client->userdata);
|
||||||
|
|
||||||
pa_log_debug("CLI client killed.");
|
pa_log_debug("CLI client killed.");
|
||||||
|
|
||||||
if (c->defer_kill)
|
if (c->defer_kill)
|
||||||
c->kill_requested = TRUE;
|
c->kill_requested = TRUE;
|
||||||
else {
|
else if (c->eof_callback)
|
||||||
if (c->eof_callback)
|
|
||||||
c->eof_callback(c, c->userdata);
|
c->eof_callback(c, c->userdata);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
static void line_callback(pa_ioline *line, const char *s, void *userdata) {
|
static void line_callback(pa_ioline *line, const char *s, void *userdata) {
|
||||||
pa_strbuf *buf;
|
pa_strbuf *buf;
|
||||||
|
|
@ -125,6 +124,7 @@ static void line_callback(pa_ioline *line, const char *s, void *userdata) {
|
||||||
|
|
||||||
if (!s) {
|
if (!s) {
|
||||||
pa_log_debug("CLI got EOF from user.");
|
pa_log_debug("CLI got EOF from user.");
|
||||||
|
|
||||||
if (c->eof_callback)
|
if (c->eof_callback)
|
||||||
c->eof_callback(c, c->userdata);
|
c->eof_callback(c, c->userdata);
|
||||||
|
|
||||||
|
|
@ -145,7 +145,7 @@ static void line_callback(pa_ioline *line, const char *s, void *userdata) {
|
||||||
pa_ioline_puts(line, PROMPT);
|
pa_ioline_puts(line, PROMPT);
|
||||||
}
|
}
|
||||||
|
|
||||||
void pa_cli_set_eof_callback(pa_cli *c, void (*cb)(pa_cli*c, void *userdata), void *userdata) {
|
void pa_cli_set_eof_callback(pa_cli *c, pa_cli_eof_cb_t cb, void *userdata) {
|
||||||
pa_assert(c);
|
pa_assert(c);
|
||||||
|
|
||||||
c->eof_callback = cb;
|
c->eof_callback = cb;
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,8 @@
|
||||||
|
|
||||||
typedef struct pa_cli pa_cli;
|
typedef struct pa_cli pa_cli;
|
||||||
|
|
||||||
|
typedef void (*pa_cli_eof_cb_t)(pa_cli *c, void *userdata);
|
||||||
|
|
||||||
/* Create a new command line session on the specified io channel owned by the specified module */
|
/* Create a new command line session on the specified io channel owned by the specified module */
|
||||||
pa_cli* pa_cli_new(pa_core *core, pa_iochannel *io, pa_module *m);
|
pa_cli* pa_cli_new(pa_core *core, pa_iochannel *io, pa_module *m);
|
||||||
void pa_cli_free(pa_cli *cli);
|
void pa_cli_free(pa_cli *cli);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue