Allow for custom baud rates.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
b7df155dcb
commit
ea3346592a
@ -503,7 +503,7 @@ static void show_help(void)
|
|||||||
struct input_types *type;
|
struct input_types *type;
|
||||||
|
|
||||||
puts("");
|
puts("");
|
||||||
puts("Usage: inputattach [--daemon] <mode> <device>");
|
puts("Usage: inputattach [--daemon] [--baud <baud>] <mode> <device>");
|
||||||
puts("");
|
puts("");
|
||||||
puts("Modes:");
|
puts("Modes:");
|
||||||
|
|
||||||
@ -527,6 +527,7 @@ int main(int argc, char **argv)
|
|||||||
int i;
|
int i;
|
||||||
char c;
|
char c;
|
||||||
int retval;
|
int retval;
|
||||||
|
int baud = -1;
|
||||||
|
|
||||||
for (i = 1; i < argc; i++) {
|
for (i = 1; i < argc; i++) {
|
||||||
if (!strcasecmp(argv[i], "--help")) {
|
if (!strcasecmp(argv[i], "--help")) {
|
||||||
@ -537,6 +538,15 @@ int main(int argc, char **argv)
|
|||||||
} else if (need_device) {
|
} else if (need_device) {
|
||||||
device = argv[i];
|
device = argv[i];
|
||||||
need_device = 0;
|
need_device = 0;
|
||||||
|
} else if (!strcasecmp(argv[i], "--baud")) {
|
||||||
|
if (argc <= i + 1) {
|
||||||
|
show_help();
|
||||||
|
fprintf(stderr,
|
||||||
|
"inputattach: require baud rate\n");
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
baud = atoi(argv[++i]);
|
||||||
} else {
|
} else {
|
||||||
if (type && type->name) {
|
if (type && type->name) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
@ -577,6 +587,19 @@ int main(int argc, char **argv)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch(baud) {
|
||||||
|
case -1: break;
|
||||||
|
case 2400: type->speed = B2400; break;
|
||||||
|
case 4800: type->speed = B4800; break;
|
||||||
|
case 9600: type->speed = B9600; break;
|
||||||
|
case 19200: type->speed = B19200; break;
|
||||||
|
case 38400: type->speed = B38400; break;
|
||||||
|
default:
|
||||||
|
fprintf(stderr, "inputattach: invalid baud rate '%d'\n",
|
||||||
|
baud);
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
setline(fd, type->flags, type->speed);
|
setline(fd, type->flags, type->speed);
|
||||||
|
|
||||||
if (type->flush)
|
if (type->flush)
|
||||||
|
Loading…
Reference in New Issue
Block a user