Горячее подключение USB-мыши в DirectFB/QT Embedded

Есть ли способ добиться горячей замены USB-мыши в DirectFB 1.2.9 или Qt Embedded 4.7.3?

В настоящее время мой стек приложений таким образом..

 -----------------
       GUI
 -----------------
 Qt Embedded 4.7.3
 -----------------
   DirectFB 1.2.9
 -----------------
 /dev/input/eventX
 -----------------

DirectFB открывает узел устройства ввода Linux. Qt использует QSocketNotifier для ожидания буфера событий DirectFB и устанавливает слот для чтения данных мыши. Но при горячем подключении DirectFB не открывает узел устройства и никакие события мыши не генерируются.

Насколько я понимаю, горячее подключение не поддерживается DirectFb..

Я попытался отключить DirectFB-обработку устройства ввода Linux (удалив узел dev из опции linux-input-devices= в directfbrc) и установить QWS_MOUSE_PROTO="linuxinput:..", но по какой-то причине это не сработало. Кажется, что события мыши не были сгенерированы. Даже если мне удастся заставить его работать, я не думаю, что QT также поддерживает горячую замену.

Так является ли моя единственная альтернатива подклассам классов QMouseDriverPlugin и QWSMouseHandle? Для этого мне еще предстоит выяснить, как заставить QT использовать реализуемые мной подклассы. т.е. после того, как я реализую эти классы, как мне связать их с устройством ввода QT, обрабатывающим фреймворк, чтобы я мог установить что-то вроде QWS_MOUSE_PROTO="mylinuxinput:.."?

1 ответ

Насколько я помню, я не столкнулся с проблемой горячего подключения мыши или клавиатуры в Qt Embedded 4.7.2 (без DirectFB). Если вы хотите создать подкласс самостоятельно, измените плагин, начиная с плагина linuxinput. Вы найдете это в источниках Qt: это каталог, в котором размещаются плагины, но некоторые классы включены в другие каталоги.

Кроме того, вы получаете данные на вашем устройстве Linux после плагина в? Вы пытались катать устройство?

Другие вопросы по тегам