--- nono/vm/keyboard.h 2026/04/29 17:04:32 1.1.1.3 +++ nono/vm/keyboard.h 2026/04/29 17:04:45 1.1.1.5 @@ -1,6 +1,7 @@ // // nono -// Copyright (C) 2018 isaki@NetBSD.org +// Copyright (C) 2020 nono project +// Licensed under nono-license.txt // #pragma once @@ -9,11 +10,11 @@ class Keyboard : public Device { - typedef Device inherited; + using inherited = Device; protected: Keyboard(); public: - virtual ~Keyboard(); + virtual ~Keyboard() override; // キーを押した virtual void MakeKey(uint) = 0; @@ -28,9 +29,22 @@ class Keyboard : public Device // rb, lb, mb はボタンの状態。true なら押下中。 virtual void MouseInput(int x, int y, bool rb, bool lb, bool mb) = 0; + // ホストからの制御コマンド + virtual void Command(uint32 data) = 0; + + // LED 状態取得 (ソフトウェアキーボードなどから) + const std::vector& GetLED() const { return led; } + // キー名を返す (主にデバッグ表示用) static const std::string GetName(uint code); + protected: + // LED (true で点灯)。 + // GetLED() あたりが同じ形式で済むのでここにあるけど、機種によって + // LED 数が違うので、何番がどのキーに対応するかの取り決めや、初期化も + // 含めたコードはすべて派生クラス側で用意すること。 + std::vector led {}; + private: static std::vector keyname; };