/*
 *
 * Copyright (C) 2012-2019, Samsung Electronics Co., Ltd.
 *
 * Touch Queue header file
 */

#ifndef _TOUCH_QUEUE_H_
#define _TOUCH_QUEUE_H_

#include <atomic.h>
#include <tee_internal_api.h>

#include "tuiHal.h"

#define TUI_MAX_NUM_OF_FINGERS 3

#define TUI_TQ_SIZE 50

struct touch_queue {
    touch_info_t tracker[TUI_MAX_NUM_OF_FINGERS];
    touch_info_t buf[TUI_TQ_SIZE];
    int finger_count;
    atomic_t roffset;
    atomic_t woffset;
};

int touch_event_count(void);
int get_touch_event(mt_touch_info_t *info, unsigned int buff_size);
int get_touch_queue_wsize(void);
void add_touch_event(int n_finger, uint16_t x, uint16_t y, enum tui_ts_event ev_type);
void release_all_fingers(void);
int get_finger_state(int n_finger);
int get_finger_xpos(int n_finger);
int get_finger_ypos(int n_finger);
uint8_t get_finger_count(void);
void init_touch_queue(void);

#endif /* _TOUCH_QUEUE_H_ */