From 264a31b95dd5e2c7790368b2b53e44d067a27c01 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 5 Jun 2023 01:05:38 +0100 Subject: util/spkmodem-recv: always disable line buffering thus, there's no need to handle flushing of stdout whatsoever, and the code can be greatly simplified ascii bits are still reset, when no input on stdin is given Signed-off-by: Leah Rowe --- util/spkmodem_recv/spkmodem-recv.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) (limited to 'util/spkmodem_recv') diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c index d43c27d9..2485943a 100644 --- a/util/spkmodem_recv/spkmodem-recv.c +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -23,7 +23,7 @@ #define ERR() (errno = errno ? errno : ECANCELED) signed short frame[2 * SAMPLES_PER_FRAME], pulse[2 * SAMPLES_PER_FRAME]; -int flush, freq_data, freq_separator, sample_count, ascii_bit = 7; +int freq_data, freq_separator, sample_count, ascii_bit = 7; char ascii = 0; void handle_audio(void); @@ -40,11 +40,7 @@ main(int argc, char *argv[]) if (pledge("stdio", NULL) == -1) err(ERR(), "pledge"); #endif - while ((c = getopt(argc, argv, "u")) != -1) { - if (c != 'u') - err(errno = EINVAL, NULL); - setvbuf(stdout, NULL, _IONBF, 0); - } + setvbuf(stdout, NULL, _IONBF, 0); while (!feof(stdin)) handle_audio(); if (errno) @@ -55,21 +51,19 @@ main(int argc, char *argv[]) void handle_audio(void) { - if ((flush = (sample_count > (3 * SAMPLES_PER_FRAME)))) { + if (sample_count > (3 * SAMPLES_PER_FRAME)) { ascii_bit = 7; ascii = sample_count = 0; - if (fflush(stdout) == EOF) - err(ERR(), NULL); } if ((freq_separator <= FREQ_SEP_MIN) || (freq_separator >= FREQ_SEP_MAX) || (freq_data <= FREQ_DATA_MIN) || (freq_data >= FREQ_DATA_MAX)) { fetch_sample(); return; } + if (!set_ascii_bit()) print_char(); - - sample_count = flush = 0; + sample_count = 0; for (int sample = 0; sample < SAMPLES_PER_FRAME; sample++) fetch_sample(); } -- cgit v1.2.1