From 118bb19ff84b013954b3032e93c7fb0fc926b15e Mon Sep 17 00:00:00 2001
From: Leah Rowe <leah@libreboot.org>
Date: Mon, 5 Jun 2023 00:45:05 +0100
Subject: util/spkmodem-recv: simplify stdout flush logic

when spkmodem-recv doesn't receive anything (via stdout)
after a few frames, it's assumed that the console is dead
and the buffered output is flushed

this logic is assumed superfluous when -u is set

Signed-off-by: Leah Rowe <leah@libreboot.org>
---
 util/spkmodem_recv/spkmodem-recv.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

(limited to 'util')

diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c
index 903d6830..d43c27d9 100644
--- a/util/spkmodem_recv/spkmodem-recv.c
+++ b/util/spkmodem_recv/spkmodem-recv.c
@@ -20,11 +20,10 @@
 #define THRESHOLD 500
 
 #define DEBUG 0
-#define FLUSH_TIMEOUT 1
 #define ERR() (errno = errno ? errno : ECANCELED)
 
 signed short frame[2 * SAMPLES_PER_FRAME], pulse[2 * SAMPLES_PER_FRAME];
-int freq_data, freq_separator, sample_count, ascii_bit = 7;
+int flush, freq_data, freq_separator, sample_count, ascii_bit = 7;
 char ascii = 0;
 
 void handle_audio(void);
@@ -56,15 +55,12 @@ main(int argc, char *argv[])
 void
 handle_audio(void)
 {
-	static int flush_count = 0;
-	if (sample_count > (3 * SAMPLES_PER_FRAME)) {
+	if ((flush = (sample_count > (3 * SAMPLES_PER_FRAME)))) {
 		ascii_bit = 7;
 		ascii = sample_count = 0;
-		++flush_count;
-	}
-	if (flush_count == FLUSH_TIMEOUT) /* TODO: reset flush count? */
 		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();
@@ -73,7 +69,7 @@ handle_audio(void)
 	if (!set_ascii_bit())
 		print_char();
 
-	sample_count = flush_count = 0;
+	sample_count = flush = 0;
 	for (int sample = 0; sample < SAMPLES_PER_FRAME; sample++)
 		fetch_sample();
 }
-- 
cgit v1.2.1