1 /***************************************************************************
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
10 * Copyright (C) 2008 by Maurus Cuelenaere
11 * Copyright (C) 2009 by Karl Kurbjun
13 * This program is free software; you can redistribute it and/or
14 * modify it under the terms of the GNU General Public License
15 * as published by the Free Software Foundation; either version 2
16 * of the License, or (at your option) any later version.
18 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
19 * KIND, either express or implied.
21 ****************************************************************************/
23 #ifndef _PLUGIN_LIB_TOUCHSCREEN_H_
24 #define _PLUGIN_LIB_TOUCHSCREEN_H_
28 #ifdef HAVE_TOUCHSCREEN
30 /*******************************************************************************
32 ******************************************************************************/
34 /* Each button has it's own viewport to define colors, drawstyle, location*/
36 bool repeat
; /* requires the area be held for the action */
37 int action
; /* action this button will return */
38 bool invisible
; /* Is this an invisible button? */
39 char *title
; /* Specify a title */
40 fb_data
*pixmap
; /* Currently unused, but will allow for a graphic */
43 /* Check: tests if the result of button_get() beloned to a touch button */
44 int touchbutton_check_button(int button
, struct touchbutton
*data
, int num_buttons
);
45 /* Wait: Wait for input and return the corresponding action */
46 int touchbutton_get(struct touchbutton
*data
, int num_buttons
);
47 /* Wait with timeout */
48 int touchbutton_get_w_tmo(int timeout
, struct touchbutton
*data
, int num_buttons
);
50 /* Draw: Draws all visible buttons */
51 void touchbutton_draw(struct touchbutton
*data
, int num_buttons
);
54 /*******************************************************************************
56 ******************************************************************************/
59 int tl_x
; /* top left */
67 struct ts_mapping
*mappings
;
71 unsigned int touchscreen_map(struct ts_mappings
*map
, int x
, int y
);
75 int tl_x
; /* top left */
83 struct ts_raster_result
89 unsigned int touchscreen_map_raster(struct ts_raster
*map
, int x
, int y
, struct ts_raster_result
*result
);
91 struct ts_raster_button_mapping
93 struct ts_raster
*raster
;
94 bool drag_drop_enable
; /* ... */
95 bool double_click_enable
; /* ... */
96 bool click_enable
; /* ... */
97 bool move_progress_enable
; /* ... */
98 bool two_d_movement_enable
; /* ... */
99 struct ts_raster_result two_d_from
; /* ... */
100 int _prev_x
; /* Internal: DO NOT MODIFY! */
101 int _prev_y
; /* Internal: DO NOT MODIFY! */
102 int _prev_btn_state
; /* Internal: DO NOT MODIFY! */
105 struct ts_raster_button_result
111 TS_ACTION_DOUBLE_CLICK
,
113 TS_ACTION_TWO_D_MOVEMENT
115 struct ts_raster_result from
;
116 struct ts_raster_result to
;
119 struct ts_raster_button_result
touchscreen_raster_map_button(struct ts_raster_button_mapping
*map
, int x
, int y
, int button
);
121 #endif /* HAVE_TOUCHSCREEN */
122 #endif /* _PLUGIN_LIB_TOUCHSCREEN_H_ */