#include "KeyContrlMock.h" #include "Log.h" #include KeyContrlMock::KeyContrlMock(const SfKeyDefine &key) : mKey(key) { mKeyEvent = nullptr; mEventContext = nullptr; mKeyMonitor = std::make_shared(); } // KeyContrlMock::~KeyContrlMock() = default; // void KeyContrlMock::SetKeyEventCallback(std::function event, void *context) // { // mKeyEvent = event; // mEventContext = context; // } void KeyContrlMock::SetKeyEventMonitor(std::shared_ptr monitor, void *context) { LogInfo("KeyContrlMock::SetKeyEventMonitor.\n"); mKeyMonitor = monitor; mEventContext = context; } void KeyContrlMock::MockKeyEvent(const SfKeyEvent &event) { auto monitor = mKeyMonitor.lock(); if (!mKeyMonitor.expired()) // mKeyMonitor is available. { monitor->HalKeyEventHappened(mKey, event, mEventContext); } } void KeyContrlMock::MockKeyPressing(const unsigned int pressingTime) { auto monitor = mKeyMonitor.lock(); if (!mKeyMonitor.expired()) // mKeyMonitor is available. { unsigned int pressing = 0; while (pressing < pressingTime) { monitor->HalKeyEventHappened(mKey, SfKeyEvent::KEY_EVENT_PRESSED, mEventContext); std::this_thread::sleep_for(std::chrono::milliseconds(PERIPHERAL_CHECK_PERIOD_MS)); pressing +=PERIPHERAL_CHECK_PERIOD_MS; } monitor->HalKeyEventHappened(mKey, SfKeyEvent::KEY_EVENT_UN_PRESSED, mEventContext); } }