Использование клавиш в стиле «нажми и сделай» - PullRequest
1 голос
/ 17 февраля 2012

Я использую C в Fedora Linux для создания приложения для потоковой передачи голоса. У меня аудио между двумя клиентами, но следующий этап - реализация пользовательского интерфейса.

Я намерен использовать разные клавиши клавиатуры в стиле «нажми и говори», т.е. удержание клавиши «Q» позволяет пользователю разговаривать с одним пользователем, «W» - с другим и т.

У меня вопрос, как бы я это реализовал? Поток передачи - это просто цикл while, который считывает 180 байтов со звуковой карты и отправляет ее как пакет UDP. Очевидная проблема, связанная с туманом, - эхо нажатой клавиши, заполнение экрана кнопками q и w, и как я могу обнаружить нажатие / нажатие клавиши вверх на C. Я смотрю на ncurses, но это большая тема!

Буду признателен за любые идеи или дальнейшее чтение.

J

1 Ответ

0 голосов
/ 17 февраля 2012

Первая часть вашего вопроса о том, как обнаружить нажатие клавиши без использования ncurses, - отлично ответил , используя termios, @jim mcnamara

И ncursesне так страшно, как кажется :-). Здесь - это реализация ncurses, которая точно (почти) удовлетворяет вашим требованиям.Но согласно этой записи вам нужно добавить вызов notimeout(), чтобы getch() (ncurses one) не ожидал следующего нажатия клавиши.

...