--- nono/vm/lunakbd.h 2026/04/29 17:04:29 1.1.1.2 +++ nono/vm/lunakbd.h 2026/04/29 17:04:36 1.1.1.3 @@ -1,6 +1,7 @@ // // nono -// Copyright (C) 2018 isaki@NetBSD.org +// Copyright (C) 2020 nono project +// Licensed under nono-license.txt // #pragma once @@ -10,23 +11,28 @@ class LunaKeyboard : public Keyboard { - typedef Keyboard inherited; + using inherited = Keyboard; public: LunaKeyboard(); - virtual ~LunaKeyboard(); + ~LunaKeyboard() override; - virtual void ResetHard(); - - virtual bool MonitorUpdate(); + void ResetHard() override; + bool MonitorUpdate() override; // キーを押した - virtual void MakeKey(uint); + void MakeKey(uint) override; // キーを離した - virtual void BreakKey(uint); + void BreakKey(uint) override; // マウス入力 - virtual void MouseInput(int x, int y, bool rb, bool lb, bool mb); + void MouseInput(int x, int y, bool rb, bool lb, bool mb) override; + + // ホストからの制御コマンド + void Command(uint32 data) override; private: + // キーを離した (内部用) + void BreakKeyCommon(uint lunakey); + // キーイベントを空きスロットに登録 void SetKeyEvent(uint code); @@ -36,6 +42,11 @@ class LunaKeyboard : public Keyboard // 共通キーコードから LUNA キーコードへの変換 uint keycode2lunakey(uint); + // LUNA キーコードから LED 番号を取得。 + // 0: かな + // 1: CAPS + int LunaKey2LED(uint lunakey) const; + // イベント Event key_event {}; Event mouse_event[3] {};