2007-11-17

サスペンド前に少しだけ待機

RfLedRestrictor使用中にKeyLockSuspenderを使って強制サスペンドさせると LEDが点灯したままになってしまいました。
RfLedRestrictor側でサスペンド移行前に何か処理をすることは難しそうなので、 サスペンドさせる側で少し待機させるようなアプローチが必要になります。
 
本当はKeyLockSuspenderと同じようなものを作ってみたかったのですが、 キーフック系は自分には未知の領域だったりするので 手っ取り早くUse10Keyに機能を追加してキーロックスイッチの操作を検出させてみました。
  • up0781.zip
  • up0784.zip
    (11/18 追記)
    マナーモード、運転モード移行時にもサスペンドしていた問題を修正しました
起動時に"/keylock"オプションを指定することで、キーロックスイッチ操作時にサスペンドに移行します。
サスペンド移行時に無線LANまたはパケット通信中であれば、切断処理を実行したうえでバックライトを消して切断を待ちます。
 
昨日あたりから「他人のソフトを何のためらいもなくパクるシリーズ(関西の人しかわかりませんね)になっていて心苦しいのですが、 KeyLockSuspenderとの違いとしてパケット通信中だった場合は、通信が切断した後に電波状態が0以上に復帰するまで待機するようにしています。
これで RfLedRestrictorで LEDが点灯したままになる事を避けられるのではないでしょうか。
 
もちろん その他の機能につては全て KeyLockSuspenderの方が上を行ってますので、 RfLedRestrictorで問題が出てない方には無用の長物ですね。
 

2 件のコメント:

inaho さんのコメント...

初めまして。
Use10Keyを便利に使わせていただいてます。

v0.3で新設された/keylockオプションを使ってみたのですが、私のAd[es]で挙動がおかしかったです。

まずキーロックスイッチのスライドで正常にサスペンド・復帰します。
しかしマナーモードや安全運転モードに移行したときもなぜかサスペンドしてしまいます。
またマナーモードに移行してサスペンドし、電源キーで復帰した後に、キーロックスイッチを操作してもサスペンドしません。
もう一回スライドするとサスペンドします。

これらの現象は常駐解除時や/keylockオプションなしの場合は発生していません。
そのためUse10Keyの/keylockオプション周りが影響しているように思えます。
もし再現するようであれば対策していただけないでしょうか。

kazuaki さんのコメント...

inahoさん こんにちは。

マナーモードはあまり利用しないので、全く未確認でした。
v0.4でキーロックスイッチが押された時の判定を追加してみましたので、お試しください。