--- nono/vm/keyboard.h 2026/04/29 17:04:52 1.1.1.6 +++ nono/vm/keyboard.h 2026/04/29 17:04:55 1.1.1.7 @@ -55,7 +55,7 @@ class Keyboard : public Device virtual bool IsShift() const = 0; // キー名を返す (主にデバッグ表示用) - static const std::string GetName(uint code); + static const std::string GetKeyName(uint code); protected: // キーコードには、 @@ -70,14 +70,11 @@ class Keyboard : public Device // 共通キーコードを機種別のキーコードに変換する virtual uint KeyToMDKey(uint keycode) const = 0; - // 入力されたキーを前処理し、フィルタする。 - // デフォルトは何もせず通過。 - virtual uint PreprocessKey(uint keystat) { return keystat; } - - // キーを押した/離した時の MD 固有処理。 - // 処理を継続するなら true、このキーの処理をここでやめるなら false。 - // デフォルトは何もせず通過。 - virtual bool ProcessKey(uint keystat) { return true; } + // キーを1つ処理する + virtual void KeyInput(uint keystat) = 0; + + // キーを処理する (共通部分) + bool KeyInputCommon(uint keystat); // キーを VM に送信する MD 処理 virtual void SendStart() = 0; @@ -108,8 +105,7 @@ class Keyboard : public Device private: // キー入力を VM スレッドで処理するためのイベント void KeyInputCallback(Event& ev); - void KeyInput(uint keystat); - Event keyinput_event {}; + Event keyinput_event { this }; std::mutex mtx {}; static std::vector keyname;