--- nono/vm/power.cpp 2026/04/29 17:05:28 1.1.1.5 +++ nono/vm/power.cpp 2026/04/29 17:05:54 1.1.1.8 @@ -9,6 +9,7 @@ // #include "power.h" +#include "event.h" #include "mainapp.h" #include "mfp.h" #include "scheduler.h" @@ -34,11 +35,8 @@ PowerDevice::~PowerDevice() bool PowerDevice::Init() { - if (inherited::Init() == false) { - return false; - } - syncer = GetSyncer(); + uimessage = gMainApp.GetUIMessage(); scheduler->ConnectMessage(MessageID::RESET, this, ToMessageCallback(&PowerDevice::ResetMessage)); @@ -108,7 +106,7 @@ PowerDevice::DoPowerButton() // LED の状態が変わったことを UI に通知。 led = ispower; - UIMessage::Post(UIMessage::LED); + uimessage->Post(UIMessage::LED); } // 電源オン操作 (Device::ResetHard ではない) @@ -128,7 +126,7 @@ PowerDevice::DoPowerOn() } // 動作モード変更 - syncer->RequestPowerOffMode(false); + syncer->NotifyPowerOffMode(false); } } @@ -170,7 +168,7 @@ PowerDevice::DoPowerOff(MessageID msgid) ispower = false; // 動作モード変更 - syncer->RequestPowerOffMode(true); + syncer->NotifyPowerOffMode(true); } // 電源オフ後の動作は引数によって異なる @@ -181,7 +179,7 @@ PowerDevice::DoPowerOff(MessageID msgid) DoPowerOn(); } else { // そうでなければ、GUI に終了を通知 - UIMessage::Post(UIMessage::APPEXIT); + uimessage->Post(UIMessage::APPEXIT); } } @@ -238,10 +236,11 @@ LunaPowerDevice::Init() return false; } - event.func = ToEventCallback(&LunaPowerDevice::PowerCallback); - event.time = 1_msec; - event.SetName("Power Off"); - scheduler->RegistEvent(event); + auto evman = GetEventManager(); + event = evman->Regist(this, + ToEventCallback(&LunaPowerDevice::PowerCallback), + "Power Off"); + event->time = 1_msec; return true; } @@ -251,12 +250,12 @@ void LunaPowerDevice::SetSystemPowerOn(bool poweron) { if (poweron) { - if (event.IsRunning()) { + if (event->IsRunning()) { putlog(1, "Cancel Power-Off"); scheduler->StopEvent(event); } } else { - if (event.IsRunning() == false) { + if (event->IsRunning() == false) { putlog(1, "Start Power-Off timer"); scheduler->RestartEvent(event); } @@ -266,13 +265,13 @@ LunaPowerDevice::SetSystemPowerOn(bool p // LUNA の電源オフが信号状態の変化に対し 1msec 遅れて応答することを // エミュレートするためのイベントコールバック。 void -LunaPowerDevice::PowerCallback(Event& ev) +LunaPowerDevice::PowerCallback(Event *ev) { DoPowerOff(MessageID::POWEROFF_EXIT); // LED の状態が変わったことを UI に通知。 led = ispower; - UIMessage::Post(UIMessage::LED); + uimessage->Post(UIMessage::LED); } @@ -353,6 +352,6 @@ X68030PowerDevice::Change() if (old_led != led) { // LED の状態が変わったことを UI に通知 - UIMessage::Post(UIMessage::LED); + uimessage->Post(UIMessage::LED); } }