--- nono/vm/lunakbd.cpp 2026/04/29 17:04:29 1.1.1.2 +++ nono/vm/lunakbd.cpp 2026/04/29 17:04:32 1.1.1.3 @@ -54,7 +54,7 @@ void LunaKeyboard::ResetHard() { // マウスサンプリングは電源オン時は有効らしい - gScheduler->AddEvent(&mouse_event[0]); + mouse_event[0].Start(); } // モニター @@ -159,7 +159,7 @@ LunaKeyboard::SetKeyEvent(uint code) key_sending = true; key_event.time = target - now; key_event.code = code; - gScheduler->AddEvent(&key_event); + key_event.Start(); } } @@ -211,6 +211,12 @@ LunaKeyboard::MouseSamplingCallback(int mouse_l != prev_l || mouse_m != prev_m) { + putlog(2, "Mouse Sampling x=%d y=%d %c%c%c", + mouse_x, mouse_y, + (mouse_r ? 'L' : '-'), + (mouse_m ? 'M' : '-'), + (mouse_l ? 'R' : '-')); + // 1バイト目、ボタン状態。 // mouse_[rlm] 変数は押し下げが true、LUNA のマウスは押し下げが %0 uint8 b = 0x80 | @@ -236,12 +242,14 @@ LunaKeyboard::MouseSamplingCallback(int // 2バイト目は 2msec 秒後に予約 mouse_event[1].time = 2_msec; mouse_event[1].code = (uint8)mouse_x; - gScheduler->AddEvent(&mouse_event[1]); + mouse_event[1].Start(); // 3バイト目は 4msec 秒後に予約 mouse_event[2].time = 4_msec; mouse_event[2].code = (uint8)mouse_y; - gScheduler->AddEvent(&mouse_event[2]); + mouse_event[2].Start(); + } else { + putlog(3, "Mouse Sampling inactive"); } // 積算リセット @@ -253,7 +261,7 @@ LunaKeyboard::MouseSamplingCallback(int // 20msec 後に再び自分を呼び出す mouse_event[0].time = 20_msec; - gScheduler->AddEvent(&mouse_event[0]); + mouse_event[0].Start(); } // マウスの後続バイトを送出するイベントコールバック