[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: btnmgr (Re: cassiopeia patch)



> MGL のかわりに X や nano-X 使ったときとかのケースを考えると
> やっぱり独立のデーモンを置けて、power ボタンとかの面倒を見ることができる
> 方が良さそうに思えます。

1. それぞれのdaemonがハンドリングしたいボタンデバイスをopenして、
   openしているプロセスすべてにカーネルはeventをあげる。
   それぞれがすべてeventにあわせて自分の仕事をする。
2. あるボタンのeventを占有したいプロセスは他のプロセスをブロックするような
   ioctlで占有できる。
3. 占有を解除するioctlを発行するか、占有をしたプロセスがいなくなれば1.に戻る。

こんなで良いのではないでしょうか...?

たとえば(daemon名はいいかげん)
button_launchdは登録されているボタンイベントをとって、登録された
プログラムを実行する。
# 起動するuid問題はどうするんだろう...?
button_keymapdは登録されているボタンイベントをとって、登録された
キー入力をemulateする。
MGL/X/nano-Xはなにかしたいボタンイベントをとって処理する。必要であれば
占有ioctlをして他のdaemonの挙動をおさえる。そのかわり他でやっている
仕事もする。 (おさえる必要がありますか?)

こんなんじゃだめですかね。
個人的には上の2つのデーモンがそれぞれ独立に仕事をしてくれれば
良い気がします.

ところで、
いまはボタンごとに別デバイスだったりしますが、どのデバイスが
どのボタンに対応しているかはconfig次第ですよね。
open前、open後それぞれでどれがどれだかってわかるのかな。 
configでbutton?の?のところをボタン後とにユニークにしたほうが
良いのかなぁ?

sato