2013-04-11 43 views
-1

我試圖將鋼琴鍵解釋爲鍵盤輸入。我正在通過Raspberry Pi上的UART接收鋼琴鍵號。我有一個使用GTK在C中製作的GUI,當我檢測到某些鋼琴鍵時,我需要將它們作爲鍵盤輸入或箭頭鍵發送以導航GUI。任何人有任何想法如何做到這一點?GTK非標準輸入

回答

1

從我收集你不希望鋼琴鍵被解釋爲鍵盤輸入;相反,您希望按照與鍵盤輸入相同的方式處理鋼琴鍵。在收到指定的鋼琴鍵盤事件時,讓它調用與相應的鍵盤鍵相同的功能。

1

在Linux中,最簡單的方法是使用X11的XTest擴展,特別是函數XTestFakeKeyEvent

但是別忘了打電話給XTestQueryExtension初始化擴展!這是一個常見的錯誤:如果你不打電話給這個功能,其他的XTest*功能根本不起作用!

你也可以讓你的鋼琴真實的鍵盤編寫用戶空間的驅動程序:您可以創建輸入設備,通過使用uinput內核驅動程序發送輸入事件到內核:基本上它創建了一個/dev/uinput的設備,可以與操縱ioctl s可以做任何你需要的。