--- nono/vm/uimessage.h 2026/04/29 17:04:59 1.1 +++ nono/vm/uimessage.h 2026/04/29 17:05:14 1.1.1.3 @@ -5,7 +5,7 @@ // // -// VM から UI へのメッセージ機構 +// UI スレッドへのメッセージ機構 // #pragma once @@ -20,8 +20,8 @@ class UIMessage enum ID { NONE = 0, - // VM 電源オフになったのでアプリケーションを終了する場合 - POWEROFF, + // アプリケーションを終了する + APPEXIT, // MPU がホールト状態になった HALT, @@ -32,12 +32,27 @@ class UIMessage // SCSI メディアの挿入に失敗した SCSI_MEDIA_FAILED, + // FDD (各 ID) のメディア状態が変わった (Load/Unload) + FDD_MEDIA_CHANGE, + + // FDD メディアの挿入に失敗した + FDD_MEDIA_FAILED, + // キー入力状態が変わった KEYBOARD, // LCD 状態が変わった LCD, + // 画面を更新した + RENDER, + + // パレットが変更になった + PALETTE, + + // LED 状態が変わった + LED, + ID_MAX, }; @@ -45,6 +60,7 @@ class UIMessage public: UIMessage(); + UIMessage(ID id_, int arg_); ID GetID() const { return id; } int GetArg() const { return arg; } @@ -52,21 +68,18 @@ class UIMessage // メッセージ処理関数をアタッチ static void Attach(const std::function& process_); - // VM 外に向けてメッセージを投函 // 新しい UIMessage を生成して投函 static void Post(ID id); // 新しい UIMessage を生成して投函(argあり) static void Post(ID id, int arg); protected: - UIMessage(ID id_, int arg_); - // 自身を投函 void Post(); private: - ID id; - int arg; + ID id {}; + int arg {}; static Queue queue;