実現するにあたり色々調べたので、下記にまとめる。
1. kernelは対応しているのか?
どこから対応しているかを区別したかったので、まずはここから調査した。結論から言うとgitで取れるkernelは勿論HIDに対応していた。
確認方法はPandaboardにマウスを挿して、adbで下記を打つ
$ getevent -lp /dev/input/event* (*は環境によって違うので適宜読み替えて下さい)
これはb2gが扱えるinput deviceの情報を出力してくれるコマンドである。
【出力確認部】
EL (0002): REL_X REL_Y REL_HWHEEL REL_WHEEL
2. Input Dispatcher探し
上記のことから、input eventを受けている箇所があるはずなので探してみる。gecko/widget/gonk/libui/InputDispatcher.cpp とそれらしいファイルを見つけた。
理想としては、inputから上がってくるx座標、y座標の情報を得たいだけなのだが、複雑そうなので一旦断念した。
3. nsAppShell
MDNでFirefoxOSのplatformアーキテクチャを眺めていたら、めっちゃ該当箇所が書いてあったのでログを仕込んでみた。
gecko/widget/gonk/nsAppShell.cppのnsMouseEvent()内にx, yという引数があるのでこれを出力してみた。
結果、確かにマウスの動きに合わせて座標が変化していた。(1680x1280の範囲で動いていた。)
この情報をみれば、なんとか操作できないことは無いがやはり不便。
調査した内容は以上、widgetから描画に接続するのはどうしたらいいんだろう。
その辺りがわかれば、問題は解決するはず。
0 件のコメント:
コメントを投稿