--- nono/vm/event.cpp 2026/04/29 17:05:10 1.1.1.7 +++ nono/vm/event.cpp 2026/04/29 17:05:50 1.1.1.10 @@ -12,15 +12,13 @@ #include "scheduler.h" // コンストラクタ -Event::Event() -{ -} - -// コンストラクタ (dev 指定あり) -Event::Event(Device *dev_) - : Event() +Event::Event(Device *dev_, int code_, + EventCallback_t func_, const std::string& name_) { dev = dev_; + code = code_; + func = func_; + name = name_; } // デストラクタ @@ -28,29 +26,40 @@ Event::~Event() { } -// イベントを登録する -void -Event::Regist() -{ - gScheduler->RegistEvent(*this); -} - -// 名前をセットして、イベントを登録する (便利関数) -void -Event::Regist(const std::string& name_) -{ - SetName(name_); - Regist(); -} - // 名前をセットする void Event::SetName(const std::string& val) { name = val; if (name.length() > 25) { - dev->putmsgn("Event Name \"%s\" is too long(%d chars)", - name.c_str(), (int)name.length()); + dev->putmsgn("Event Name \"%s\" is too long(%u chars)", + name.c_str(), (uint)name.length()); name.resize(25); } } + + +// +// イベントマネージャ +// + +// コンストラクタ +EventManager::EventManager() + : inherited(OBJ_EVENT_MANAGER) +{ +} + +// デストラクタ +EventManager::~EventManager() +{ +} + +// イベントを登録する。 +// こっちは初期設定のほう。イベントを有効にする、ではない。 +Event * +EventManager::Regist(Device *dev_, int code_, + EventCallback_t func_, const std::string& name_) +{ + all.push_back(new Event(dev_, code_, func_, name_)); + return all.back(); +}