44 lines
1.6 KiB
C++
44 lines
1.6 KiB
C++
#include "KeyContrlMock.h"
|
|
#include "Log.h"
|
|
#include <thread>
|
|
KeyContrlMock::KeyContrlMock(const SfKeyDefine &key) : mKey(key)
|
|
{
|
|
mKeyEvent = nullptr;
|
|
mEventContext = nullptr;
|
|
mKeyMonitor = std::make_shared<VKeyEventMonitor>();
|
|
}
|
|
// KeyContrlMock::~KeyContrlMock() = default;
|
|
// void KeyContrlMock::SetKeyEventCallback(std::function<void(const SfKeyDefine &, const SfKeyEvent &, void *)> event, void *context)
|
|
// {
|
|
// mKeyEvent = event;
|
|
// mEventContext = context;
|
|
// }
|
|
void KeyContrlMock::SetKeyEventMonitor(std::shared_ptr<VKeyEventMonitor> 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);
|
|
}
|
|
} |