Atmel Software Framework

components/touch/mxt/example_hid/ui.h File Reference

User interface for mXT143E Xplained trackpad demo.

Copyright (c) 2014-2015 Atmel Corporation. All rights reserved.

#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  )

Initialize the user interface.

Initializes the user interface.

References display_h, display_w, gfx_get_height(), gfx_get_width(), NUM_TRACES, trace, ui_new_touch_event, trace_info::x, and trace_info::y.

void ui_powerdown ( void  )

Put the user interface in power down.

Enters the user interface in power down mode.

void ui_process ( uint16_t  framenumber)

Process the user interface.

This process is called each 1ms It is called only if the USB interface is enabled.

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

void ui_wakeup ( void  )

Wake the user interface up.

Exits the user interface of power down mode.

void ui_wakeup_disable ( void  )

Disable asynchronous interrupts of the user interface.

Disables the asynchronous interrupts of the user interface.

void ui_wakeup_enable ( void  )

Enable asynchronous interrupts of the user interface.

Enables the asynchronous interrupts of the user interface.

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