--- nono/vm/x68kkbd.h 2026/04/29 17:05:13 1.1.1.11 +++ nono/vm/x68kkbd.h 2026/04/29 17:05:59 1.1.1.17 @@ -11,10 +11,12 @@ #pragma once #include "keyboard.h" -#include "event.h" -#include "monitor.h" #include +class MFPDevice; +class SCCDevice; +class SysportDevice; + class X68030Keyboard : public Keyboard { using inherited = Keyboard; @@ -29,7 +31,9 @@ class X68030Keyboard : public Keyboard public: X68030Keyboard(); - virtual ~X68030Keyboard() override; + ~X68030Keyboard() override; + + bool Init() override; // シフト状態なら true を返す bool IsShift() const override; @@ -48,7 +52,7 @@ class X68030Keyboard : public Keyboard void Ready(); private: - DECLARE_MONITOR_CALLBACK(MonitorUpdate); + DECLARE_MONITOR_SCREEN(MonitorScreen); // キーボードの接続と取り外し void MDConnect() override; @@ -64,22 +68,22 @@ class X68030Keyboard : public Keyboard void SendStart() override; // キーリピートイベント - void ReptCallback(Event& ev); + void ReptCallback(Event *); // マウスイベント - void MouseCallback(Event& ev); + void MouseCallback(Event *); // 変換テーブル static const uint keycode2x68kkey_table[KC_max]; // キーリピート開始時間 - int rept_delay_data {}; // 設定値 + uint rept_delay_data {}; // 設定値 uint64 rept_delay {}; // [nsec] // キーリピート間隔 - int rept_time_data {}; // 設定値 + uint rept_time_data {}; // 設定値 uint64 rept_time {}; // [nsec] // キーリピートイベント - Event rept_event { this }; + Event *rept_event {}; // リピートしている共通キーコード uint rept_key {}; @@ -98,10 +102,14 @@ class X68030Keyboard : public Keyboard // マウス送信データ std::array mouse_data {}; + MFPDevice *mfp {}; + SCCDevice *scc {}; + SysportDevice *sysport {}; + // マウスイベント - Event mouse_event { this }; + Event *mouse_event {}; - Monitor monitor { this }; + Monitor *monitor {}; // X680x0 キーコード static const uint NoKey = 0;