[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