[pulseaudio-discuss] [PATCH 2/3] pacmd: Discriminate between interactive and non-interactive mode
Peter Meerwald
pmeerw at pmeerw.net
Mon Jul 29 13:13:41 PDT 2013
interactive sessions are initiated with a hello message in order to
receive a welcome message from the PA daemon and a command prompt
interactive sessions have a terminal connected to stdin
non-interactive sessions execute commands given on the command line
or received via stdin; non-interactive sessions have neither welcome
message nor command prompt
Signed-off-by: Peter Meerwald <pmeerw at pmeerw.net>
---
src/utils/pacmd.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/utils/pacmd.c b/src/utils/pacmd.c
index cf0eb44..61b87a0 100644
--- a/src/utils/pacmd.c
+++ b/src/utils/pacmd.c
@@ -83,7 +83,7 @@ static void help(const char *argv0) {
printf(_("\n"
" -h, --help Show this help\n"
" --version Show version\n"
- "When no command is given pacmd starts in the interactive mode\n" ));
+ "When no command is given pacmd starts in the interactive mode.\n" ));
}
enum {
@@ -102,7 +102,6 @@ int main(int argc, char*argv[]) {
bool ibuf_eof, obuf_eof, ibuf_closed, obuf_closed;
struct pollfd pollfd[3];
struct pollfd *watch_socket, *watch_stdin, *watch_stdout;
-
int stdin_type = 0, stdout_type = 0, fd_type = 0;
char *bn = NULL;
@@ -209,6 +208,14 @@ int main(int argc, char*argv[]) {
ibuf_eof = true;
}
+ if (!ibuf_eof && isatty(STDIN_FILENO)) {
+ /* send hello to enable interactive mode (welcome message, prompt) */
+ if (pa_write(fd, "hello\n", 6, &fd_type) < 0) {
+ pa_log(_("write(): %s"), strerror(errno));
+ goto quit;
+ }
+ }
+
for (;;) {
struct pollfd *p;
--
1.8.3.4
More information about the pulseaudio-discuss
mailing list