Горячее подключение 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 после плагина в? Вы пытались катать устройство?