Microchip® Advanced Software Framework

ui.h File Reference

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...
 

static void ui_flag_new_touch_event ( void  )
inlinestatic

Flag to UI that touch event is pending.

References ui_new_touch_event.

Referenced by main().

void ui_init ( void  )
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.

Parameters
framenumberCurrent USB frame number
Note
This function should be called every millisecond, e.g., for each USB frame.

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  )

Wake the user interface up.

References LED0_GPIO, and LED_On().

Referenced by main_resume_action().

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().