Есть .so библиотека. В ней класс. По вызову функции класса создаётся поток btnreadthread с циклом, в котором происходит периодическое чтение регистра USB устройства - код нажатой кнопки.
Есть GUI-шная прога. В ней создаётся объект того самого класса.
Задача - из потока (btnreadthread) отправлять сообщения в основной поток GUI-ной проги о том что кнопка нажата, ну и вызывать соответствующую функцию.
В GUI проге создавать никаких потоков ради получения этого сообщение, ясен пень, не надо. А получать каким-то способом надо. Первое что приходит в голову - D-Bus, но с ним дело ещё не имел. Читал инет, смотрел API. Насколько понял, GUI-ная прога (Qt \ GTK) имеет свой D-Bus адрес. Т.е. надо по это адресу отправлять сообщения, из потока btnreadthread. Если я не ошибаюсь и такой вариант считается нормальным - подскажите, как получить адрес... или что делать в противном случае. :-)