* Copyright (c) 2020-2021 Huawei Device Co., Ltd.
*
* HDF is dual licensed: you can use it either under the terms of
* the GPL, or the BSD license, at your option.
* See the LICENSE file in the root of this repository for complete details.
*/
#ifndef EVENT_HUB_H
#define EVENT_HUB_H
#include "input-event-codes.h"
#include "hdf_input_device_manager.h"
#include "osal_time.h"
#define input_report_abs ReportAbs
#define input_report_key ReportKey
#define input_report_rel ReportRel
#define input_sync ReportSync
#define input_mt_sync ReportMtSync
typedef struct {
uint32_t type;
uint32_t code;
int32_t value;
uint64_t time;
} EventPackage;
void PushOnePackage(InputDevice *inputDev, uint32_t type, uint32_t code, int32_t value);
static inline void ReportAbs(InputDevice *inputDev, uint32_t code, int32_t value)
{
PushOnePackage(inputDev, EV_ABS, code, value);
}
static inline void ReportKey(InputDevice *inputDev, uint32_t code, int32_t value)
{
PushOnePackage(inputDev, EV_KEY, code, !!value);
}
static inline void ReportRel(InputDevice *inputDev, uint32_t code, int32_t value)
{
PushOnePackage(inputDev, EV_REL, code, value);
}
static inline void ReportSync(InputDevice *inputDev)
{
PushOnePackage(inputDev, EV_SYN, SYN_REPORT, 0);
}
static inline void ReportMtSync(InputDevice *inputDev)
{
PushOnePackage(inputDev, EV_SYN, SYN_MT_REPORT, 0);
}
#endif