#include #include #include #include #include #include #include #include "mfjterm.h" #include "misc.h" void set_bps(void) { static int speeds[] = { 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 }; char bps_s[11], tmp[80]; int bbps = 0, i, valid_bps; for (i = 0; i != 30; i+=2) { if (bps == speeds[i]) { bbps = speeds[i+1]; break; } } attrset(A_REVERSE); valid_bps = 0; do { move(19, 1); sprintf(bps_s, "%d", bbps); addstr("Enter new baudrate: "); edgets(stdscr, bps_s, 10, FALSE); move(19, 0); addstr(" "); if (! strlen(bps_s)) goto bps_abort; bbps = atoi(bps_s); for (i = 0; i != 30; i+=2) { if (bbps == speeds[i + 1]) { bps = speeds[i]; break; } } if (i == 30) { curs_set(0); move(19, 1); sprintf(tmp, "\"%d\" is not a valid baudrate", bbps); addstr(tmp); refresh(); sleep(1); move(19, 1); addstr(" "); refresh(); curs_set(1); } else valid_bps++; } while (! valid_bps); tcgetattr(tnc, &tnc_settings); cfsetispeed(&tnc_settings, bps); cfsetospeed(&tnc_settings, bps); tcsetattr(tnc, TCSAFLUSH, &tnc_settings); bps_abort: move(tnc_y, tnc_x); refresh(); } .