June 13, 2009

快速展現 Linux 的 multitouch 技術


法國的 [ENAC] 進行一個針對 Linux 平台上的 multi-touch 的技術展示,硬體的配置為:
  • Broadcom 5974, Stantum, NTrig or DiamondTouch surface
軟體方面,除了需要上述硬體的 driver 與 firmware 之外,則是 Linux kernel 2.6.30 與 compiz + dbus plugin,不過這個展示沒用到 [MPX:Multi-Pointer X Server ] 的技術,所以 Xorg + compiz 只是單純處理 3D 顯示效果。輸入的部份值得關注,因為這類 multi-touch 裝置,在 Linux kernel 下,會將其對應為 /dev/input/eventX,而此展示則撰寫若干小程式,監視數值變化並透過 dbus,告知 compiz 做出對應的反應,像是 water, zooming, rotate 等等。以 compiz 的「水波紋」效果來說,只要下達以下指令即可:
    dbus-send --type=method_call --dest=org.freedesktop.compiz /org/freedesktop/compiz/water/allscreens/point org.freedesktop.compiz.activate string:'root' int32:`xwininfo -root | grep id: | awk '{ print $4 }'` string:'amplitude' double:1 string:'x' int32:$1 string:'y' int32:$2
重點就是兩組以上的 (x, y) 輸入,詳情可參考 ENAC 的網頁 [Linux native multitouch support]。展示的影片可參考以下:
由 jserv 發表於 June 13, 2009 01:35 PM
迴響

看來這東西不涉及對應用程式發input event的樣子
應該都是發信號給window manager而已
畢竟要送特殊event給應用程式可是要翻修一下gdk的
寫過才知道MPX是多麼難搞的東西...

某W 發表於 June 16, 2009 09:11 PM
發表迴響









記住我的資訊?