From 1345ea96a75246d4ffc3a95f7459f2aab14bf11b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Mon, 20 Jul 2020 04:18:27 +0200 Subject: Resolve {i,o}speed TODO in termios. --- module/vulgar/termios.scm | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/module/vulgar/termios.scm b/module/vulgar/termios.scm index 414dc986..bf92eb6d 100644 --- a/module/vulgar/termios.scm +++ b/module/vulgar/termios.scm @@ -65,13 +65,36 @@ ((record-modifier 'list) t v) ((record-modifier 'ptr) t (make-c-struct struct-termios v))) -;; TODO {i,o}speed should be looked up in a table. +(define (resolve-baud-speed n) + (case* n + ((B0) 0) + ((B50) 50) + ((B75) 75) + ((B110) 110) + ((B134) 134) + ((B150) 150) + ((B200) 200) + ((B300) 300) + ((B600) 600) + ((B1200) 1200) + ((B1800) 1800) + ((B2400) 2400) + ((B4800) 4800) + ((B9600) 9600) + ((B19200) 19200) + ((B38400) 38400) + ((B57600) 57600) + ((B115200) 115200) + ((B230400) 230400))) + ;; TODO bit fields should display what their fields mean ((@ (srfi srfi-9 gnu) set-record-type-printer!) (lambda (t p) (format p "#" - (iflag t) (oflag t) (cflag t) (lflag t) (line t) (ispeed t) (ospeed t) + (iflag t) (oflag t) (cflag t) (lflag t) (line t) + (resolve-baud-speed (ispeed t)) + (resolve-baud-speed (ospeed t)) (map integer->char (filter (negate zero?) (cc t)))))) -- cgit v1.2.3