User interface for mXT143E Xplained trackpad demo.
Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
#include <asf.h>
Functions | |
static void | ui_flag_new_touch_event (void) |
Flag to UI that touch event is pending. More... | |
void | ui_init (void) |
Initialize the user interface. More... | |
void | ui_powerdown (void) |
Put the user interface in power down. More... | |
void | ui_process (uint16_t framenumber) |
Process the user interface. More... | |
void | ui_wakeup (void) |
Wake the user interface up. More... | |
void | ui_wakeup_disable (void) |
Disable asynchronous interrupts of the user interface. More... | |
void | ui_wakeup_enable (void) |
Enable asynchronous interrupts of the user interface. More... | |
Variables | |
bool | ui_new_touch_event |
Flag that a new touch event is pending. More... | |
struct mxt_touch_event | ui_touch_event |
Struct to hold touch events to process. More... | |
|
inlinestatic |
void ui_init | ( | void | ) |
Initialize the user interface.
References display_h, display_w, gfx_get_height(), gfx_get_width(), LED0_GPIO, LED1_GPIO, LED_Off, LED_On, NUM_TRACES, trace, ui_new_touch_event, trace_info::x, and trace_info::y.
Referenced by main().
void ui_powerdown | ( | void | ) |
Put the user interface in power down.
References LED0_GPIO, LED1_GPIO, and LED_Off.
Referenced by main(), and main_suspend_action().
void ui_process | ( | uint16_t | framenumber | ) |
Process the user interface.
This function processes user touch events and updates the display.
The first registered touch is used to control the cursor. Its presence is indicated with a red frame around the display. When the cursor touch moves, its movement is visualized with a trace on the display.
The second registered touch is used to control mouse buttons, and is indicated with an inner frame of which the color depends on which side the touch is for: blue for left and green for right button click. The frame is shown until the touch is released. To detect which side click it is, the position relative to the cursor touch is used, i.e., a touch to the left of the first touch will cause a left mouse click.
framenumber | Current USB frame number |
References COLOR_BACKGROUND, draw_frame(), GFX_COLOR_BLUE, GFX_COLOR_GREEN, GFX_COLOR_RED, handle_trace(), HID_MOUSE_BTN_DOWN, HID_MOUSE_BTN_UP, mxt_touch_event::id, LED1_GPIO, LED_Off, LED_On, MXT_DETECT_EVENT, MXT_PRESS_EVENT, MXT_RELEASE_EVENT, mxt_touch_event::status, udi_hid_mouse_btnleft(), udi_hid_mouse_btnright(), udi_hid_mouse_moveX(), udi_hid_mouse_moveY(), ui_new_touch_event, ui_touch_event, mxt_touch_event::x, and mxt_touch_event::y.
Referenced by main(), and main_sof_action().
void ui_wakeup | ( | void | ) |
void ui_wakeup_disable | ( | void | ) |
Disable asynchronous interrupts of the user interface.
Referenced by main_remotewakeup_disable().
void ui_wakeup_enable | ( | void | ) |
Enable asynchronous interrupts of the user interface.
Referenced by main_remotewakeup_enable().
bool ui_new_touch_event |
Flag that a new touch event is pending.
Referenced by ui_flag_new_touch_event(), ui_init(), and ui_process().
struct mxt_touch_event ui_touch_event |
Struct to hold touch events to process.
Referenced by main(), and ui_process().