Files
MuditaOS/module-utils/common_data/RawKey.hpp
2020-10-20 12:55:10 +02:00

37 lines
1.0 KiB
C++

// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
#include <cstdint>
#include <bsp/keyboard/key_codes.hpp>
/// default application timer trigger
const inline uint32_t key_timer_ms = 200;
/// default time key press will be counted as press again
const inline uint32_t key_time_cycle_ms = 500;
/// default long press time
const inline uint32_t key_time_longpress_ms = 1000;
struct RawKey
{
enum class State
{
Undefined,
Pressed,
Released,
} state = State::Undefined;
bsp::KeyCodes key_code = bsp::KeyCodes::Undefined;
unsigned int time_press = 0;
unsigned int time_release = 0;
/// set all values to zero, set new key_code and state
void reset(bsp::KeyCodes key_code = bsp::KeyCodes::Undefined, State state = State::Undefined)
{
this->key_code = key_code;
this->state = state;
time_press = 0;
time_release = 0;
}
};