[pulseaudio-discuss] [PATCH 2/6] cli: Add command hello to ask for server welcome message and pass quiet parameter
Peter Meerwald
pmeerw at pmeerw.net
Fri Jul 19 12:32:11 PDT 2013
use pa_cli instance to store quiet flag (i.e. do not show prompt)
include PA version in welcome message
Signed-off-by: Peter Meerwald <pmeerw at pmeerw.net>
---
src/pulsecore/cli-command.c | 22 ++++++++++++++++++++++
src/pulsecore/cli.c | 4 ++--
src/pulsecore/cli.h | 1 +
3 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/src/pulsecore/cli-command.c b/src/pulsecore/cli-command.c
index 0440543..5dbaca7 100644
--- a/src/pulsecore/cli-command.c
+++ b/src/pulsecore/cli-command.c
@@ -84,6 +84,7 @@ enum {
/* Prototypes for all available commands */
static int pa_cli_command_exit(pa_cli *c, pa_tokenizer *t, pa_strbuf *buf, bool *fail);
static int pa_cli_command_help(pa_cli *c, pa_tokenizer *t, pa_strbuf *buf, bool *fail);
+static int pa_cli_command_hello(pa_cli *c, pa_tokenizer *t, pa_strbuf *buf, bool *fail);
static int pa_cli_command_modules(pa_cli *c, pa_tokenizer *t, pa_strbuf *buf, bool *fail);
static int pa_cli_command_clients(pa_cli *c, pa_tokenizer *t, pa_strbuf *buf, bool *fail);
static int pa_cli_command_cards(pa_cli *c, pa_tokenizer *t, pa_strbuf *buf, bool *fail);
@@ -142,6 +143,7 @@ static int pa_cli_command_dump_volumes(pa_cli *c, pa_tokenizer *t, pa_strbuf *bu
static const struct command commands[] = {
{ "help", pa_cli_command_help, "Show this help", 1 },
+ { "hello", pa_cli_command_hello, "Show welcome message", 2 },
{ "list-modules", pa_cli_command_modules, "List loaded modules", 1 },
{ "list-cards", pa_cli_command_cards, "List cards", 1 },
{ "list-sinks", pa_cli_command_sinks, "List loaded sinks", 1 },
@@ -242,6 +244,26 @@ static int pa_cli_command_help(pa_cli *c, pa_tokenizer *t, pa_strbuf *buf, bool
return 0;
}
+static int pa_cli_command_hello(pa_cli *c, pa_tokenizer *t, pa_strbuf *buf, bool *fail) {
+ const char *option;
+
+ pa_assert(c);
+ pa_assert(t);
+ pa_assert(buf);
+ pa_assert(fail);
+
+ c->quiet = false;
+ if ((option = pa_tokenizer_get(t, 1))) {
+ if (pa_streq(option, "quiet")) {
+ c->quiet = true;
+ }
+ }
+
+ if (!c->quiet)
+ pa_strbuf_printf(buf, "Welcome to PulseAudio %s! Use \"help\" for usage information.\n", PACKAGE_VERSION);
+ return 0;
+}
+
static int pa_cli_command_modules(pa_cli *c, pa_tokenizer *t, pa_strbuf *buf, bool *fail) {
char *s;
diff --git a/src/pulsecore/cli.c b/src/pulsecore/cli.c
index 4a9dabc..c355015 100644
--- a/src/pulsecore/cli.c
+++ b/src/pulsecore/cli.c
@@ -84,10 +84,10 @@ pa_cli* pa_cli_new(pa_core *core, pa_iochannel *io, pa_module *m) {
c->client->userdata = c;
pa_ioline_set_callback(c->line, line_callback, c);
- pa_ioline_puts(c->line, "Welcome to PulseAudio! Use \"help\" for usage information.\n"PROMPT);
c->fail = c->kill_requested = false;
c->defer_kill = 0;
+ c->quiet = false;
c->last_line = NULL;
@@ -159,7 +159,7 @@ static void line_callback(pa_ioline *line, const char *s, void *userdata) {
if (c->eof_callback)
c->eof_callback(c, c->userdata);
} else
- pa_ioline_puts(line, PROMPT);
+ if (!c->quiet) pa_ioline_puts(line, PROMPT);
}
void pa_cli_set_eof_callback(pa_cli *c, pa_cli_eof_cb_t cb, void *userdata) {
diff --git a/src/pulsecore/cli.h b/src/pulsecore/cli.h
index c50e065..dd36a8a 100644
--- a/src/pulsecore/cli.h
+++ b/src/pulsecore/cli.h
@@ -42,6 +42,7 @@ struct pa_cli {
bool fail, kill_requested;
int defer_kill;
+ bool quiet;
char *last_line;
};
--
1.8.3.2
More information about the pulseaudio-discuss
mailing list