aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/ecore/src/lib/ecore_fb
diff options
context:
space:
mode:
authorDavid Walter Seikel2013-01-13 17:29:19 +1000
committerDavid Walter Seikel2013-01-13 17:29:19 +1000
commit07274513e984f0b5544586c74508ccd16e7dcafa (patch)
treeb32ff2a9136fbc1a4a6a0ed1e4d79cde0f5f16d9 /libraries/ecore/src/lib/ecore_fb
parentAdded Irrlicht 1.8, but without all the Windows binaries. (diff)
downloadSledjHamr-07274513e984f0b5544586c74508ccd16e7dcafa.zip
SledjHamr-07274513e984f0b5544586c74508ccd16e7dcafa.tar.gz
SledjHamr-07274513e984f0b5544586c74508ccd16e7dcafa.tar.bz2
SledjHamr-07274513e984f0b5544586c74508ccd16e7dcafa.tar.xz
Remove EFL, since it's been released now.
Diffstat (limited to 'libraries/ecore/src/lib/ecore_fb')
-rw-r--r--libraries/ecore/src/lib/ecore_fb/Ecore_Fb.h100
-rw-r--r--libraries/ecore/src/lib/ecore_fb/Makefile.am34
-rw-r--r--libraries/ecore/src/lib/ecore_fb/Makefile.in845
-rw-r--r--libraries/ecore/src/lib/ecore_fb/ecore_fb.c111
-rw-r--r--libraries/ecore/src/lib/ecore_fb/ecore_fb_keytable.h129
-rw-r--r--libraries/ecore/src/lib/ecore_fb/ecore_fb_li.c708
-rw-r--r--libraries/ecore/src/lib/ecore_fb/ecore_fb_private.h94
-rw-r--r--libraries/ecore/src/lib/ecore_fb/ecore_fb_ts.c355
-rw-r--r--libraries/ecore/src/lib/ecore_fb/ecore_fb_vt.c322
9 files changed, 0 insertions, 2698 deletions
diff --git a/libraries/ecore/src/lib/ecore_fb/Ecore_Fb.h b/libraries/ecore/src/lib/ecore_fb/Ecore_Fb.h
deleted file mode 100644
index 069cccd..0000000
--- a/libraries/ecore/src/lib/ecore_fb/Ecore_Fb.h
+++ /dev/null
@@ -1,100 +0,0 @@
1#ifndef _ECORE_FB_H
2#define _ECORE_FB_H
3
4#include <Eina.h>
5
6#ifdef EAPI
7# undef EAPI
8#endif
9
10#ifdef __GNUC__
11# if __GNUC__ >= 4
12# define EAPI __attribute__ ((visibility("default")))
13# else
14# define EAPI
15# endif
16#else
17# define EAPI
18#endif
19
20/* FIXME:
21 * maybe a new module?
22 * - code to get battery info
23 * - code to get thermal info
24 * ecore evas fb isn't good enough for weird things, like multiple fb's, same happens here.
25 * backlight support using new kernel interface
26 * absolute axis
27 * joystick
28 * ecore_fb_li_device_close_all ? or a shutdown of the subsystem?
29 *
30 */
31
32#ifdef __cplusplus
33extern "C" {
34#endif
35
36/**
37 * @defgroup Ecore_FB_Group Ecore_FB - Frame buffer convenience functions.
38 *
39 * Functions used to set up and shut down the Ecore_Framebuffer functions.
40 *
41 * @{
42 */
43
44/**
45 * @typedef Ecore_Fb_Input_Device
46 * Input device handler.
47 */
48typedef struct _Ecore_Fb_Input_Device Ecore_Fb_Input_Device;
49
50/**
51 * @enum _Ecore_Fb_Input_Device_Cap
52 * Device capabilities.
53 */
54enum _Ecore_Fb_Input_Device_Cap
55{
56 ECORE_FB_INPUT_DEVICE_CAP_NONE = 0x00000000,
57 ECORE_FB_INPUT_DEVICE_CAP_RELATIVE = 0x00000001,
58 ECORE_FB_INPUT_DEVICE_CAP_ABSOLUTE = 0x00000002,
59 ECORE_FB_INPUT_DEVICE_CAP_KEYS_OR_BUTTONS = 0x00000004
60};
61
62/**
63 * @typedef Ecore_Fb_Input_Device_Cap
64 * Device capabilities.
65 */
66typedef enum _Ecore_Fb_Input_Device_Cap Ecore_Fb_Input_Device_Cap;
67
68/* ecore_fb_vt.c */
69EAPI void ecore_fb_callback_gain_set(void (*func) (void *data), void *data);
70EAPI void ecore_fb_callback_lose_set(void (*func) (void *data), void *data);
71
72/* ecore_fb_li.c */
73EAPI Ecore_Fb_Input_Device *ecore_fb_input_device_open(const char *dev);
74EAPI void ecore_fb_input_device_close(Ecore_Fb_Input_Device *dev);
75EAPI void ecore_fb_input_device_listen(Ecore_Fb_Input_Device *dev, Eina_Bool listen);
76EAPI const char *ecore_fb_input_device_name_get(Ecore_Fb_Input_Device *dev);
77EAPI Ecore_Fb_Input_Device_Cap ecore_fb_input_device_cap_get(Ecore_Fb_Input_Device *dev);
78EAPI void ecore_fb_input_device_axis_size_set(Ecore_Fb_Input_Device *dev, int w, int h);
79EAPI void ecore_fb_input_threshold_click_set(Ecore_Fb_Input_Device *dev, double threshold);
80EAPI double ecore_fb_input_threshold_click_get(Ecore_Fb_Input_Device *dev);
81EAPI void ecore_fb_input_device_window_set(Ecore_Fb_Input_Device *dev, void *window);
82
83/* ecore_fb.c */
84
85EAPI int ecore_fb_init(const char *name);
86EAPI int ecore_fb_shutdown(void);
87EAPI void ecore_fb_size_get(int *w, int *h);
88
89EAPI void ecore_fb_touch_screen_calibrate_set(int xscale, int xtrans, int yscale, int ytrans, int xyswap);
90EAPI void ecore_fb_touch_screen_calibrate_get(int *xscale, int *xtrans, int *yscale, int *ytrans, int *xyswap);
91
92/**
93 * @}
94 */
95
96#ifdef __cplusplus
97}
98#endif
99
100#endif
diff --git a/libraries/ecore/src/lib/ecore_fb/Makefile.am b/libraries/ecore/src/lib/ecore_fb/Makefile.am
deleted file mode 100644
index 9129fec..0000000
--- a/libraries/ecore/src/lib/ecore_fb/Makefile.am
+++ /dev/null
@@ -1,34 +0,0 @@
1MAINTAINERCLEANFILES = Makefile.in
2
3AM_CPPFLAGS = \
4-I$(top_srcdir)/src/lib/ecore \
5-I$(top_builddir)/src/lib/ecore \
6-I$(top_srcdir)/src/lib/ecore_input \
7@TSLIB_CFLAGS@ \
8@EINA_CFLAGS@
9
10
11lib_LTLIBRARIES = libecore_fb.la
12includes_HEADERS = Ecore_Fb.h
13includesdir = $(includedir)/ecore-@VMAJ@
14
15libecore_fb_la_SOURCES = \
16ecore_fb.c \
17ecore_fb_vt.c \
18ecore_fb_li.c \
19ecore_fb_ts.c
20# deprecated sources (might not compile):
21# ecore_fb_kbd.c
22# ecore_fb_ps2.c
23
24libecore_fb_la_LIBADD = \
25@TSLIB_LIBS@ \
26$(top_builddir)/src/lib/ecore/libecore.la \
27$(top_builddir)/src/lib/ecore_input/libecore_input.la \
28@EINA_LIBS@
29
30libecore_fb_la_LDFLAGS = -version-info @version_info@ @release_info@
31
32EXTRA_DIST = \
33ecore_fb_private.h \
34ecore_fb_keytable.h
diff --git a/libraries/ecore/src/lib/ecore_fb/Makefile.in b/libraries/ecore/src/lib/ecore_fb/Makefile.in
deleted file mode 100644
index e8030b1..0000000
--- a/libraries/ecore/src/lib/ecore_fb/Makefile.in
+++ /dev/null
@@ -1,845 +0,0 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18
19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
23pkglibexecdir = $(libexecdir)/@PACKAGE@
24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25install_sh_DATA = $(install_sh) -c -m 644
26install_sh_PROGRAM = $(install_sh) -c
27install_sh_SCRIPT = $(install_sh) -c
28INSTALL_HEADER = $(INSTALL_DATA)
29transform = $(program_transform_name)
30NORMAL_INSTALL = :
31PRE_INSTALL = :
32POST_INSTALL = :
33NORMAL_UNINSTALL = :
34PRE_UNINSTALL = :
35POST_UNINSTALL = :
36build_triplet = @build@
37host_triplet = @host@
38subdir = src/lib/ecore_fb
39DIST_COMMON = $(includes_HEADERS) $(srcdir)/Makefile.am \
40 $(srcdir)/Makefile.in
41ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
43 $(top_srcdir)/m4/ac_path_generic.m4 \
44 $(top_srcdir)/m4/check_x_extension.m4 \
45 $(top_srcdir)/m4/ecore_check_module.m4 \
46 $(top_srcdir)/m4/ecore_check_options.m4 \
47 $(top_srcdir)/m4/efl_compiler_flag.m4 \
48 $(top_srcdir)/m4/efl_doxygen.m4 \
49 $(top_srcdir)/m4/efl_examples.m4 \
50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
53 $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
54 $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
55 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
56 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
57 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
58 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
59am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
60 $(ACLOCAL_M4)
61mkinstalldirs = $(install_sh) -d
62CONFIG_HEADER = $(top_builddir)/config.h
63CONFIG_CLEAN_FILES =
64CONFIG_CLEAN_VPATH_FILES =
65am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
66am__vpath_adj = case $$p in \
67 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
68 *) f=$$p;; \
69 esac;
70am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
71am__install_max = 40
72am__nobase_strip_setup = \
73 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
74am__nobase_strip = \
75 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
76am__nobase_list = $(am__nobase_strip_setup); \
77 for p in $$list; do echo "$$p $$p"; done | \
78 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
79 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
80 if (++n[$$2] == $(am__install_max)) \
81 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
82 END { for (dir in files) print dir, files[dir] }'
83am__base_list = \
84 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
85 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
86am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includesdir)"
87LTLIBRARIES = $(lib_LTLIBRARIES)
88libecore_fb_la_DEPENDENCIES = \
89 $(top_builddir)/src/lib/ecore/libecore.la \
90 $(top_builddir)/src/lib/ecore_input/libecore_input.la
91am_libecore_fb_la_OBJECTS = ecore_fb.lo ecore_fb_vt.lo ecore_fb_li.lo \
92 ecore_fb_ts.lo
93libecore_fb_la_OBJECTS = $(am_libecore_fb_la_OBJECTS)
94AM_V_lt = $(am__v_lt_$(V))
95am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
96am__v_lt_0 = --silent
97libecore_fb_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
98 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
99 $(AM_CFLAGS) $(CFLAGS) $(libecore_fb_la_LDFLAGS) $(LDFLAGS) -o \
100 $@
101DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
102depcomp = $(SHELL) $(top_srcdir)/depcomp
103am__depfiles_maybe = depfiles
104am__mv = mv -f
105COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
106 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
107LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
108 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
109 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
110 $(AM_CFLAGS) $(CFLAGS)
111AM_V_CC = $(am__v_CC_$(V))
112am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
113am__v_CC_0 = @echo " CC " $@;
114AM_V_at = $(am__v_at_$(V))
115am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
116am__v_at_0 = @
117CCLD = $(CC)
118LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
119 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
120 $(AM_LDFLAGS) $(LDFLAGS) -o $@
121AM_V_CCLD = $(am__v_CCLD_$(V))
122am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
123am__v_CCLD_0 = @echo " CCLD " $@;
124AM_V_GEN = $(am__v_GEN_$(V))
125am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
126am__v_GEN_0 = @echo " GEN " $@;
127SOURCES = $(libecore_fb_la_SOURCES)
128DIST_SOURCES = $(libecore_fb_la_SOURCES)
129HEADERS = $(includes_HEADERS)
130ETAGS = etags
131CTAGS = ctags
132DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
133ACLOCAL = @ACLOCAL@
134ALLOCA = @ALLOCA@
135AMTAR = @AMTAR@
136AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
137AR = @AR@
138AS = @AS@
139AUTOCONF = @AUTOCONF@
140AUTOHEADER = @AUTOHEADER@
141AUTOMAKE = @AUTOMAKE@
142AWK = @AWK@
143CARES_CFLAGS = @CARES_CFLAGS@
144CARES_LIBS = @CARES_LIBS@
145CC = @CC@
146CCDEPMODE = @CCDEPMODE@
147CFLAGS = @CFLAGS@
148CHECK_CFLAGS = @CHECK_CFLAGS@
149CHECK_LIBS = @CHECK_LIBS@
150CPP = @CPP@
151CPPFLAGS = @CPPFLAGS@
152CURL_CFLAGS = @CURL_CFLAGS@
153CURL_LIBS = @CURL_LIBS@
154CXX = @CXX@
155CXXCPP = @CXXCPP@
156CXXDEPMODE = @CXXDEPMODE@
157CXXFLAGS = @CXXFLAGS@
158CYGPATH_W = @CYGPATH_W@
159DEFS = @DEFS@
160DEPDIR = @DEPDIR@
161DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
162DIRECTFB_LIBS = @DIRECTFB_LIBS@
163DLLTOOL = @DLLTOOL@
164DSYMUTIL = @DSYMUTIL@
165DUMPBIN = @DUMPBIN@
166ECHO_C = @ECHO_C@
167ECHO_N = @ECHO_N@
168ECHO_T = @ECHO_T@
169ECORE_XCB_CFLAGS = @ECORE_XCB_CFLAGS@
170ECORE_XCB_LIBS = @ECORE_XCB_LIBS@
171EFL_ECORE_BUILD = @EFL_ECORE_BUILD@
172EFL_ECORE_CON_BUILD = @EFL_ECORE_CON_BUILD@
173EFL_ECORE_EVAS_BUILD = @EFL_ECORE_EVAS_BUILD@
174EFL_ECORE_FILE_BUILD = @EFL_ECORE_FILE_BUILD@
175EFL_ECORE_IMF_BUILD = @EFL_ECORE_IMF_BUILD@
176EFL_ECORE_IMF_EVAS_BUILD = @EFL_ECORE_IMF_EVAS_BUILD@
177EFL_ECORE_INPUT_BUILD = @EFL_ECORE_INPUT_BUILD@
178EFL_ECORE_INPUT_EVAS_BUILD = @EFL_ECORE_INPUT_EVAS_BUILD@
179EFL_ECORE_IPC_BUILD = @EFL_ECORE_IPC_BUILD@
180EFL_ECORE_PSL1GHT_BUILD = @EFL_ECORE_PSL1GHT_BUILD@
181EFL_ECORE_SDL_BUILD = @EFL_ECORE_SDL_BUILD@
182EFL_ECORE_WIN32_BUILD = @EFL_ECORE_WIN32_BUILD@
183EFL_ECORE_WINCE_BUILD = @EFL_ECORE_WINCE_BUILD@
184EFL_PTHREAD_CFLAGS = @EFL_PTHREAD_CFLAGS@
185EFL_PTHREAD_LIBS = @EFL_PTHREAD_LIBS@
186EGREP = @EGREP@
187EINA_CFLAGS = @EINA_CFLAGS@
188EINA_LIBS = @EINA_LIBS@
189ESCAPE_CFLAGS = @ESCAPE_CFLAGS@
190ESCAPE_LIBS = @ESCAPE_LIBS@
191EVAS_CFLAGS = @EVAS_CFLAGS@
192EVAS_LIBS = @EVAS_LIBS@
193EVIL_CFLAGS = @EVIL_CFLAGS@
194EVIL_LIBS = @EVIL_LIBS@
195EXEEXT = @EXEEXT@
196EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
197EXOTIC_LIBS = @EXOTIC_LIBS@
198FGREP = @FGREP@
199GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
200GLIB_CFLAGS = @GLIB_CFLAGS@
201GLIB_LIBS = @GLIB_LIBS@
202GMSGFMT = @GMSGFMT@
203GMSGFMT_015 = @GMSGFMT_015@
204GREP = @GREP@
205INSTALL = @INSTALL@
206INSTALL_DATA = @INSTALL_DATA@
207INSTALL_PROGRAM = @INSTALL_PROGRAM@
208INSTALL_SCRIPT = @INSTALL_SCRIPT@
209INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
210INTLLIBS = @INTLLIBS@
211INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
212KEYSYMDEFS = @KEYSYMDEFS@
213LD = @LD@
214LDFLAGS = @LDFLAGS@
215LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
216LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
217LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
218LIBICONV = @LIBICONV@
219LIBINTL = @LIBINTL@
220LIBOBJS = @LIBOBJS@
221LIBS = @LIBS@
222LIBTOOL = @LIBTOOL@
223LIPO = @LIPO@
224LN_S = @LN_S@
225LTLIBICONV = @LTLIBICONV@
226LTLIBINTL = @LTLIBINTL@
227LTLIBOBJS = @LTLIBOBJS@
228MAKEINFO = @MAKEINFO@
229MKDIR_P = @MKDIR_P@
230MSGFMT = @MSGFMT@
231MSGFMT_015 = @MSGFMT_015@
232MSGMERGE = @MSGMERGE@
233NM = @NM@
234NMEDIT = @NMEDIT@
235OBJC = @OBJC@
236OBJCDEPMODE = @OBJCDEPMODE@
237OBJCFLAGS = @OBJCFLAGS@
238OBJDUMP = @OBJDUMP@
239OBJEXT = @OBJEXT@
240OTOOL = @OTOOL@
241OTOOL64 = @OTOOL64@
242PACKAGE = @PACKAGE@
243PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
244PACKAGE_NAME = @PACKAGE_NAME@
245PACKAGE_STRING = @PACKAGE_STRING@
246PACKAGE_TARNAME = @PACKAGE_TARNAME@
247PACKAGE_URL = @PACKAGE_URL@
248PACKAGE_VERSION = @PACKAGE_VERSION@
249PATH_SEPARATOR = @PATH_SEPARATOR@
250PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
251PIXMAN_LIBS = @PIXMAN_LIBS@
252PKG_CONFIG = @PKG_CONFIG@
253PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
254PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
255POSUB = @POSUB@
256RANLIB = @RANLIB@
257SCIM_CFLAGS = @SCIM_CFLAGS@
258SCIM_LIBS = @SCIM_LIBS@
259SDL_CFLAGS = @SDL_CFLAGS@
260SDL_CONFIG = @SDL_CONFIG@
261SDL_LIBS = @SDL_LIBS@
262SED = @SED@
263SET_MAKE = @SET_MAKE@
264SHELL = @SHELL@
265SHM_OPEN_LIBS = @SHM_OPEN_LIBS@
266SSL_CFLAGS = @SSL_CFLAGS@
267SSL_LIBS = @SSL_LIBS@
268STRIP = @STRIP@
269TLS2_CFLAGS = @TLS2_CFLAGS@
270TLS2_LIBS = @TLS2_LIBS@
271TLS_CFLAGS = @TLS_CFLAGS@
272TLS_LIBS = @TLS_LIBS@
273TSLIB_CFLAGS = @TSLIB_CFLAGS@
274TSLIB_LIBS = @TSLIB_LIBS@
275USE_NLS = @USE_NLS@
276VERSION = @VERSION@
277VMAJ = @VMAJ@
278WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
279WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
280WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
281WAYLAND_LIBS = @WAYLAND_LIBS@
282WIN32_CFLAGS = @WIN32_CFLAGS@
283WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
284WIN32_LIBS = @WIN32_LIBS@
285XCB_COMPOSITE_CFLAGS = @XCB_COMPOSITE_CFLAGS@
286XCB_COMPOSITE_LIBS = @XCB_COMPOSITE_LIBS@
287XCB_CURSOR_CFLAGS = @XCB_CURSOR_CFLAGS@
288XCB_CURSOR_LIBS = @XCB_CURSOR_LIBS@
289XCB_DAMAGE_CFLAGS = @XCB_DAMAGE_CFLAGS@
290XCB_DAMAGE_LIBS = @XCB_DAMAGE_LIBS@
291XCB_DPMS_CFLAGS = @XCB_DPMS_CFLAGS@
292XCB_DPMS_LIBS = @XCB_DPMS_LIBS@
293XCB_RANDR_CFLAGS = @XCB_RANDR_CFLAGS@
294XCB_RANDR_LIBS = @XCB_RANDR_LIBS@
295XCB_RENDER_CFLAGS = @XCB_RENDER_CFLAGS@
296XCB_RENDER_LIBS = @XCB_RENDER_LIBS@
297XCB_SCREENSAVER_CFLAGS = @XCB_SCREENSAVER_CFLAGS@
298XCB_SCREENSAVER_LIBS = @XCB_SCREENSAVER_LIBS@
299XCB_SHAPE_CFLAGS = @XCB_SHAPE_CFLAGS@
300XCB_SHAPE_LIBS = @XCB_SHAPE_LIBS@
301XCB_SYNC_CFLAGS = @XCB_SYNC_CFLAGS@
302XCB_SYNC_LIBS = @XCB_SYNC_LIBS@
303XCB_X11_CFLAGS = @XCB_X11_CFLAGS@
304XCB_X11_LIBS = @XCB_X11_LIBS@
305XCB_XFIXES_CFLAGS = @XCB_XFIXES_CFLAGS@
306XCB_XFIXES_LIBS = @XCB_XFIXES_LIBS@
307XCB_XGESTURE_CFLAGS = @XCB_XGESTURE_CFLAGS@
308XCB_XGESTURE_LIBS = @XCB_XGESTURE_LIBS@
309XCB_XINERAMA_CFLAGS = @XCB_XINERAMA_CFLAGS@
310XCB_XINERAMA_LIBS = @XCB_XINERAMA_LIBS@
311XCB_XINPUT_CFLAGS = @XCB_XINPUT_CFLAGS@
312XCB_XINPUT_LIBS = @XCB_XINPUT_LIBS@
313XCB_XPRINT_CFLAGS = @XCB_XPRINT_CFLAGS@
314XCB_XPRINT_LIBS = @XCB_XPRINT_LIBS@
315XCB_XTEST_CFLAGS = @XCB_XTEST_CFLAGS@
316XCB_XTEST_LIBS = @XCB_XTEST_LIBS@
317XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
318XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
319XDAMAGE_CFLAGS = @XDAMAGE_CFLAGS@
320XDAMAGE_LIBS = @XDAMAGE_LIBS@
321XDPMS_CFLAGS = @XDPMS_CFLAGS@
322XDPMS_LIBS = @XDPMS_LIBS@
323XFIXES_CFLAGS = @XFIXES_CFLAGS@
324XFIXES_LIBS = @XFIXES_LIBS@
325XGESTURE_CFLAGS = @XGESTURE_CFLAGS@
326XGESTURE_LIBS = @XGESTURE_LIBS@
327XGETTEXT = @XGETTEXT@
328XGETTEXT_015 = @XGETTEXT_015@
329XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
330XI2_CFLAGS = @XI2_CFLAGS@
331XI2_LIBS = @XI2_LIBS@
332XINERAMA_CFLAGS = @XINERAMA_CFLAGS@
333XINERAMA_LIBS = @XINERAMA_LIBS@
334XKB_CFLAGS = @XKB_CFLAGS@
335XKB_LIBS = @XKB_LIBS@
336XMKMF = @XMKMF@
337XPRINT_CFLAGS = @XPRINT_CFLAGS@
338XPRINT_LIBS = @XPRINT_LIBS@
339XRANDR_CFLAGS = @XRANDR_CFLAGS@
340XRANDR_LIBS = @XRANDR_LIBS@
341XRENDER_CFLAGS = @XRENDER_CFLAGS@
342XRENDER_LIBS = @XRENDER_LIBS@
343XSS_CFLAGS = @XSS_CFLAGS@
344XSS_LIBS = @XSS_LIBS@
345XTEST_CFLAGS = @XTEST_CFLAGS@
346XTEST_LIBS = @XTEST_LIBS@
347X_CFLAGS = @X_CFLAGS@
348X_EXTRA_LIBS = @X_EXTRA_LIBS@
349X_LIBS = @X_LIBS@
350X_PRE_LIBS = @X_PRE_LIBS@
351Xcursor_cflags = @Xcursor_cflags@
352Xcursor_libs = @Xcursor_libs@
353abs_builddir = @abs_builddir@
354abs_srcdir = @abs_srcdir@
355abs_top_builddir = @abs_top_builddir@
356abs_top_srcdir = @abs_top_srcdir@
357ac_ct_CC = @ac_ct_CC@
358ac_ct_CXX = @ac_ct_CXX@
359ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
360ac_ct_OBJC = @ac_ct_OBJC@
361am__include = @am__include@
362am__leading_dot = @am__leading_dot@
363am__quote = @am__quote@
364am__tar = @am__tar@
365am__untar = @am__untar@
366bindir = @bindir@
367build = @build@
368build_alias = @build_alias@
369build_cpu = @build_cpu@
370build_os = @build_os@
371build_vendor = @build_vendor@
372builddir = @builddir@
373cocoa_ldflags = @cocoa_ldflags@
374datadir = @datadir@
375datarootdir = @datarootdir@
376dlopen_libs = @dlopen_libs@
377docdir = @docdir@
378dvidir = @dvidir@
379ecore_cocoa_cflags = @ecore_cocoa_cflags@
380ecore_cocoa_libs = @ecore_cocoa_libs@
381ecore_con_cflags = @ecore_con_cflags@
382ecore_con_libs = @ecore_con_libs@
383ecore_directfb_cflags = @ecore_directfb_cflags@
384ecore_directfb_libs = @ecore_directfb_libs@
385ecore_evas_cflags = @ecore_evas_cflags@
386ecore_evas_libs = @ecore_evas_libs@
387ecore_fb_cflags = @ecore_fb_cflags@
388ecore_fb_libs = @ecore_fb_libs@
389ecore_file_cflags = @ecore_file_cflags@
390ecore_file_libs = @ecore_file_libs@
391ecore_imf_cflags = @ecore_imf_cflags@
392ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
393ecore_imf_evas_libs = @ecore_imf_evas_libs@
394ecore_imf_libs = @ecore_imf_libs@
395ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
396ecore_imf_scim_libs = @ecore_imf_scim_libs@
397ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
398ecore_imf_xim_libs = @ecore_imf_xim_libs@
399ecore_input_cflags = @ecore_input_cflags@
400ecore_input_evas_cflags = @ecore_input_evas_cflags@
401ecore_input_evas_libs = @ecore_input_evas_libs@
402ecore_input_libs = @ecore_input_libs@
403ecore_ipc_cflags = @ecore_ipc_cflags@
404ecore_ipc_libs = @ecore_ipc_libs@
405ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
406ecore_psl1ght_libs = @ecore_psl1ght_libs@
407ecore_sdl_cflags = @ecore_sdl_cflags@
408ecore_sdl_libs = @ecore_sdl_libs@
409ecore_wayland_cflags = @ecore_wayland_cflags@
410ecore_wayland_libs = @ecore_wayland_libs@
411ecore_win32_cflags = @ecore_win32_cflags@
412ecore_win32_libs = @ecore_win32_libs@
413ecore_wince_cflags = @ecore_wince_cflags@
414ecore_wince_libs = @ecore_wince_libs@
415ecore_x_cflags = @ecore_x_cflags@
416ecore_x_libs = @ecore_x_libs@
417ecore_x_libs_private = @ecore_x_libs_private@
418efl_doxygen = @efl_doxygen@
419efl_have_doxygen = @efl_have_doxygen@
420exec_prefix = @exec_prefix@
421have_ecore_x_xcb_define = @have_ecore_x_xcb_define@
422host = @host@
423host_alias = @host_alias@
424host_cpu = @host_cpu@
425host_os = @host_os@
426host_vendor = @host_vendor@
427htmldir = @htmldir@
428includedir = @includedir@
429infodir = @infodir@
430install_sh = @install_sh@
431libdir = @libdir@
432libexecdir = @libexecdir@
433localedir = @localedir@
434localstatedir = @localstatedir@
435lt_ECHO = @lt_ECHO@
436lt_enable_auto_import = @lt_enable_auto_import@
437mandir = @mandir@
438mkdir_p = @mkdir_p@
439oldincludedir = @oldincludedir@
440pdfdir = @pdfdir@
441pkgconfig_requires_private = @pkgconfig_requires_private@
442prefix = @prefix@
443program_transform_name = @program_transform_name@
444psdir = @psdir@
445release_info = @release_info@
446requirements_ecore = @requirements_ecore@
447requirements_ecore_cocoa = @requirements_ecore_cocoa@
448requirements_ecore_con = @requirements_ecore_con@
449requirements_ecore_directfb = @requirements_ecore_directfb@
450requirements_ecore_evas = @requirements_ecore_evas@
451requirements_ecore_fb = @requirements_ecore_fb@
452requirements_ecore_file = @requirements_ecore_file@
453requirements_ecore_imf = @requirements_ecore_imf@
454requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
455requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
456requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
457requirements_ecore_input = @requirements_ecore_input@
458requirements_ecore_input_evas = @requirements_ecore_input_evas@
459requirements_ecore_ipc = @requirements_ecore_ipc@
460requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
461requirements_ecore_sdl = @requirements_ecore_sdl@
462requirements_ecore_wayland = @requirements_ecore_wayland@
463requirements_ecore_win32 = @requirements_ecore_win32@
464requirements_ecore_wince = @requirements_ecore_wince@
465requirements_ecore_x = @requirements_ecore_x@
466rt_libs = @rt_libs@
467sbindir = @sbindir@
468sharedstatedir = @sharedstatedir@
469srcdir = @srcdir@
470sysconfdir = @sysconfdir@
471target_alias = @target_alias@
472top_build_prefix = @top_build_prefix@
473top_builddir = @top_builddir@
474top_srcdir = @top_srcdir@
475version_info = @version_info@
476x_cflags = @x_cflags@
477x_includes = @x_includes@
478x_libs = @x_libs@
479MAINTAINERCLEANFILES = Makefile.in
480AM_CPPFLAGS = \
481-I$(top_srcdir)/src/lib/ecore \
482-I$(top_builddir)/src/lib/ecore \
483-I$(top_srcdir)/src/lib/ecore_input \
484@TSLIB_CFLAGS@ \
485@EINA_CFLAGS@
486
487lib_LTLIBRARIES = libecore_fb.la
488includes_HEADERS = Ecore_Fb.h
489includesdir = $(includedir)/ecore-@VMAJ@
490libecore_fb_la_SOURCES = \
491ecore_fb.c \
492ecore_fb_vt.c \
493ecore_fb_li.c \
494ecore_fb_ts.c
495
496# deprecated sources (might not compile):
497# ecore_fb_kbd.c
498# ecore_fb_ps2.c
499libecore_fb_la_LIBADD = \
500@TSLIB_LIBS@ \
501$(top_builddir)/src/lib/ecore/libecore.la \
502$(top_builddir)/src/lib/ecore_input/libecore_input.la \
503@EINA_LIBS@
504
505libecore_fb_la_LDFLAGS = -version-info @version_info@ @release_info@
506EXTRA_DIST = \
507ecore_fb_private.h \
508ecore_fb_keytable.h
509
510all: all-am
511
512.SUFFIXES:
513.SUFFIXES: .c .lo .o .obj
514$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
515 @for dep in $?; do \
516 case '$(am__configure_deps)' in \
517 *$$dep*) \
518 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
519 && { if test -f $@; then exit 0; else break; fi; }; \
520 exit 1;; \
521 esac; \
522 done; \
523 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/lib/ecore_fb/Makefile'; \
524 $(am__cd) $(top_srcdir) && \
525 $(AUTOMAKE) --gnu src/lib/ecore_fb/Makefile
526.PRECIOUS: Makefile
527Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
528 @case '$?' in \
529 *config.status*) \
530 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
531 *) \
532 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
533 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
534 esac;
535
536$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
537 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
538
539$(top_srcdir)/configure: $(am__configure_deps)
540 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
541$(ACLOCAL_M4): $(am__aclocal_m4_deps)
542 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
543$(am__aclocal_m4_deps):
544install-libLTLIBRARIES: $(lib_LTLIBRARIES)
545 @$(NORMAL_INSTALL)
546 test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
547 @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
548 list2=; for p in $$list; do \
549 if test -f $$p; then \
550 list2="$$list2 $$p"; \
551 else :; fi; \
552 done; \
553 test -z "$$list2" || { \
554 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
555 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
556 }
557
558uninstall-libLTLIBRARIES:
559 @$(NORMAL_UNINSTALL)
560 @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
561 for p in $$list; do \
562 $(am__strip_dir) \
563 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
564 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
565 done
566
567clean-libLTLIBRARIES:
568 -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
569 @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
570 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
571 test "$$dir" != "$$p" || dir=.; \
572 echo "rm -f \"$${dir}/so_locations\""; \
573 rm -f "$${dir}/so_locations"; \
574 done
575libecore_fb.la: $(libecore_fb_la_OBJECTS) $(libecore_fb_la_DEPENDENCIES)
576 $(AM_V_CCLD)$(libecore_fb_la_LINK) -rpath $(libdir) $(libecore_fb_la_OBJECTS) $(libecore_fb_la_LIBADD) $(LIBS)
577
578mostlyclean-compile:
579 -rm -f *.$(OBJEXT)
580
581distclean-compile:
582 -rm -f *.tab.c
583
584@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_fb.Plo@am__quote@
585@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_fb_li.Plo@am__quote@
586@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_fb_ts.Plo@am__quote@
587@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_fb_vt.Plo@am__quote@
588
589.c.o:
590@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
591@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
592@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
593@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
594@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
595@am__fastdepCC_FALSE@ $(COMPILE) -c $<
596
597.c.obj:
598@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
599@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
600@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
601@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
602@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
603@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
604
605.c.lo:
606@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
607@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
608@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
609@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
610@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
611@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
612
613mostlyclean-libtool:
614 -rm -f *.lo
615
616clean-libtool:
617 -rm -rf .libs _libs
618install-includesHEADERS: $(includes_HEADERS)
619 @$(NORMAL_INSTALL)
620 test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
621 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
622 for p in $$list; do \
623 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
624 echo "$$d$$p"; \
625 done | $(am__base_list) | \
626 while read files; do \
627 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
628 $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
629 done
630
631uninstall-includesHEADERS:
632 @$(NORMAL_UNINSTALL)
633 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
634 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
635 test -n "$$files" || exit 0; \
636 echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
637 cd "$(DESTDIR)$(includesdir)" && rm -f $$files
638
639ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
640 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
641 unique=`for i in $$list; do \
642 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
643 done | \
644 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
645 END { if (nonempty) { for (i in files) print i; }; }'`; \
646 mkid -fID $$unique
647tags: TAGS
648
649TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
650 $(TAGS_FILES) $(LISP)
651 set x; \
652 here=`pwd`; \
653 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
654 unique=`for i in $$list; do \
655 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
656 done | \
657 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
658 END { if (nonempty) { for (i in files) print i; }; }'`; \
659 shift; \
660 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
661 test -n "$$unique" || unique=$$empty_fix; \
662 if test $$# -gt 0; then \
663 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
664 "$$@" $$unique; \
665 else \
666 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
667 $$unique; \
668 fi; \
669 fi
670ctags: CTAGS
671CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
672 $(TAGS_FILES) $(LISP)
673 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
674 unique=`for i in $$list; do \
675 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
676 done | \
677 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
678 END { if (nonempty) { for (i in files) print i; }; }'`; \
679 test -z "$(CTAGS_ARGS)$$unique" \
680 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
681 $$unique
682
683GTAGS:
684 here=`$(am__cd) $(top_builddir) && pwd` \
685 && $(am__cd) $(top_srcdir) \
686 && gtags -i $(GTAGS_ARGS) "$$here"
687
688distclean-tags:
689 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
690
691distdir: $(DISTFILES)
692 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
693 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
694 list='$(DISTFILES)'; \
695 dist_files=`for file in $$list; do echo $$file; done | \
696 sed -e "s|^$$srcdirstrip/||;t" \
697 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
698 case $$dist_files in \
699 */*) $(MKDIR_P) `echo "$$dist_files" | \
700 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
701 sort -u` ;; \
702 esac; \
703 for file in $$dist_files; do \
704 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
705 if test -d $$d/$$file; then \
706 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
707 if test -d "$(distdir)/$$file"; then \
708 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
709 fi; \
710 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
711 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
712 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
713 fi; \
714 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
715 else \
716 test -f "$(distdir)/$$file" \
717 || cp -p $$d/$$file "$(distdir)/$$file" \
718 || exit 1; \
719 fi; \
720 done
721check-am: all-am
722check: check-am
723all-am: Makefile $(LTLIBRARIES) $(HEADERS)
724installdirs:
725 for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includesdir)"; do \
726 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
727 done
728install: install-am
729install-exec: install-exec-am
730install-data: install-data-am
731uninstall: uninstall-am
732
733install-am: all-am
734 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
735
736installcheck: installcheck-am
737install-strip:
738 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
739 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
740 `test -z '$(STRIP)' || \
741 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
742mostlyclean-generic:
743
744clean-generic:
745
746distclean-generic:
747 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
748 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
749
750maintainer-clean-generic:
751 @echo "This command is intended for maintainers to use"
752 @echo "it deletes files that may require special tools to rebuild."
753 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
754clean: clean-am
755
756clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
757 mostlyclean-am
758
759distclean: distclean-am
760 -rm -rf ./$(DEPDIR)
761 -rm -f Makefile
762distclean-am: clean-am distclean-compile distclean-generic \
763 distclean-tags
764
765dvi: dvi-am
766
767dvi-am:
768
769html: html-am
770
771html-am:
772
773info: info-am
774
775info-am:
776
777install-data-am: install-includesHEADERS
778
779install-dvi: install-dvi-am
780
781install-dvi-am:
782
783install-exec-am: install-libLTLIBRARIES
784
785install-html: install-html-am
786
787install-html-am:
788
789install-info: install-info-am
790
791install-info-am:
792
793install-man:
794
795install-pdf: install-pdf-am
796
797install-pdf-am:
798
799install-ps: install-ps-am
800
801install-ps-am:
802
803installcheck-am:
804
805maintainer-clean: maintainer-clean-am
806 -rm -rf ./$(DEPDIR)
807 -rm -f Makefile
808maintainer-clean-am: distclean-am maintainer-clean-generic
809
810mostlyclean: mostlyclean-am
811
812mostlyclean-am: mostlyclean-compile mostlyclean-generic \
813 mostlyclean-libtool
814
815pdf: pdf-am
816
817pdf-am:
818
819ps: ps-am
820
821ps-am:
822
823uninstall-am: uninstall-includesHEADERS uninstall-libLTLIBRARIES
824
825.MAKE: install-am install-strip
826
827.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
828 clean-libLTLIBRARIES clean-libtool ctags distclean \
829 distclean-compile distclean-generic distclean-libtool \
830 distclean-tags distdir dvi dvi-am html html-am info info-am \
831 install install-am install-data install-data-am install-dvi \
832 install-dvi-am install-exec install-exec-am install-html \
833 install-html-am install-includesHEADERS install-info \
834 install-info-am install-libLTLIBRARIES install-man install-pdf \
835 install-pdf-am install-ps install-ps-am install-strip \
836 installcheck installcheck-am installdirs maintainer-clean \
837 maintainer-clean-generic mostlyclean mostlyclean-compile \
838 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
839 tags uninstall uninstall-am uninstall-includesHEADERS \
840 uninstall-libLTLIBRARIES
841
842
843# Tell versions [3.59,3.63) of GNU make to not export all variables.
844# Otherwise a system limit (for SysV at least) may be exceeded.
845.NOEXPORT:
diff --git a/libraries/ecore/src/lib/ecore_fb/ecore_fb.c b/libraries/ecore/src/lib/ecore_fb/ecore_fb.c
deleted file mode 100644
index daeea0f..0000000
--- a/libraries/ecore/src/lib/ecore_fb/ecore_fb.c
+++ /dev/null
@@ -1,111 +0,0 @@
1#ifdef HAVE_CONFIG_H
2# include <config.h>
3#endif
4
5#include "Ecore_Fb.h"
6#include "ecore_fb_private.h"
7
8static void _ecore_fb_size_get(int *w, int *h);
9
10static int _ecore_fb_init_count = 0;
11static int _ecore_fb_console_w = 0;
12static int _ecore_fb_console_h = 0;
13
14/**
15 * @addtogroup Ecore_FB_Group Ecore_FB - Frame buffer convenience functions.
16 *
17 * @{
18 */
19
20/**
21 * @brief Initialize the Ecore_Fb library.
22 *
23 * @param name Device target name.
24 * @return 1 or greater on success, 0 on error.
25 *
26 * This function sets up all the Ecore_Fb library. It returns 0 on
27 * failure, otherwise it returns the number of times it has already
28 * been called.
29 *
30 * When Ecore_Fb is not used anymore, call ecore_fb_shutdown() to shut down
31 * the Ecore_Fb library.
32 */
33EAPI int
34ecore_fb_init(const char *name __UNUSED__)
35{
36 if (++_ecore_fb_init_count != 1)
37 return _ecore_fb_init_count;
38
39 if (!ecore_fb_vt_init())
40 return --_ecore_fb_init_count;
41
42 _ecore_fb_size_get(&_ecore_fb_console_w, &_ecore_fb_console_h);
43
44 return _ecore_fb_init_count;
45}
46
47/**
48 * @brief Shut down the Ecore_Fb library.
49 *
50 * @return 0 when the library is completely shut down, 1 or
51 * greater otherwise.
52 *
53 * This function shuts down the Ecore_Fb library. It returns 0 when it has
54 * been called the same number of times than ecore_fb_init().
55 */
56EAPI int
57ecore_fb_shutdown(void)
58{
59 if (--_ecore_fb_init_count != 0)
60 return _ecore_fb_init_count;
61
62 ecore_fb_vt_shutdown();
63
64 return _ecore_fb_init_count;
65}
66
67
68/**
69 * @brief Retrieve the width and height of the current frame buffer in
70 * pixels.
71 *
72 * @param w Pointer to an integer in which to store the width.
73 * @param h Pointer to an interge in which to store the height.
74 *
75 * This function retrieves the size of the current frame buffer in
76 * pixels. @p w and @p h can be buffers that will be filled with the
77 * corresponding values. If one of them is @c NULL, nothing will be
78 * done for that parameter.
79 */
80EAPI void
81ecore_fb_size_get(int *w, int *h)
82{
83 if (w) *w = _ecore_fb_console_w;
84 if (h) *h = _ecore_fb_console_h;
85}
86
87static void
88_ecore_fb_size_get(int *w, int *h)
89{
90 struct fb_var_screeninfo fb_var;
91 int fb;
92
93 fb = open("/dev/fb0", O_RDWR);
94 if (fb < 0)
95 goto exit;
96
97 if (ioctl(fb, FBIOGET_VSCREENINFO, &fb_var) == -1)
98 goto err_ioctl;
99
100 *w = fb_var.xres;
101 *h = fb_var.yres;
102
103err_ioctl:
104 close(fb);
105exit:
106 return;
107}
108
109/**
110 * @}
111 */
diff --git a/libraries/ecore/src/lib/ecore_fb/ecore_fb_keytable.h b/libraries/ecore/src/lib/ecore_fb/ecore_fb_keytable.h
deleted file mode 100644
index 38de7bf..0000000
--- a/libraries/ecore/src/lib/ecore_fb/ecore_fb_keytable.h
+++ /dev/null
@@ -1,129 +0,0 @@
1/* this table was taken from ecore_fb, is the default en layout */
2 "0x00", "0x00", "0x00", /**/"", "", "",/***/
3 "Escape", "Escape", "Escape", /**/"", "", "",/***/
4 "1", "exclam", "1", /**/"1", "!", "1",/***/
5 "2", "at", "2", /**/"2", "@", "2",/***/
6 "3", "numbersign", "3", /**/"3", "#", "3",/***/
7 "4", "dollar", "4", /**/"4", "$", "4",/***/
8 "5", "percent", "5", /**/"5", "%", "5",/***/
9 "6", "asciicircumm", "6", /**/"6", "^", "6",/***/
10 "7", "ampersand", "7", /**/"7", "&", "7",/***/
11 "8", "asterisk", "8", /**/"8", "*", "8",/***/
12 "9", "parenleft", "9", /**/"9", "(", "9",/***/
13 "0", "parenright", "0", /**/"0", ")", "0",/***/
14 "minus", "underscore", "minus", /**/"-", "_", "-",/***/
15 "equal", "plus", "equal", /**/"=", "+", "=",/***/
16 "BackSpace", "BackSpace", "BackSpace", /**/"\010","\010","\010",/***/
17 "Tab", "ISO_Left_Tab", "Tab", /**/"\011","", "\011",/***/
18 "q", "Q", "Q", /**/"q", "Q", "Q",/***/
19 "w", "W", "W", /**/"w", "W", "W",/***/
20 "e", "E", "E", /**/"e", "E", "E",/***/
21 "r", "R", "R", /**/"r", "R", "R",/***/
22 "t", "T", "T", /**/"t", "T", "T",/***/
23 "y", "Y", "Y", /**/"y", "Y", "Y",/***/
24 "u", "U", "U", /**/"u", "U", "U",/***/
25 "i", "I", "I", /**/"i", "I", "I",/***/
26 "o", "O", "O", /**/"o", "O", "O",/***/
27 "p", "P", "P", /**/"p", "P", "P",/***/
28 "bracketleft", "braceleft", "bracketleft", /**/"[", "{", "[",/***/
29 "bracketright", "braceright", "bracketright", /**/"]", "}", "]",/***/
30 "Return", "Return", "Return", /**/"\015","\015","\015",/***/
31 "Control_L", "Control_L", "Control_L", /**/"", "", "",/***/
32 "a", "A", "A", /**/"a", "A", "A",/***/
33 "s", "S", "S", /**/"s", "S", "S",/***/
34 "d", "D", "D", /**/"d", "D", "D",/***/
35 "f", "F", "F", /**/"f", "F", "F",/***/
36 "g", "G", "G", /**/"g", "G", "G",/***/
37 "h", "h", "H", /**/"h", "H", "H",/***/
38 "j", "J", "J", /**/"j", "J", "J",/***/
39 "k", "K", "K", /**/"k", "K", "K",/***/
40 "l", "L", "L", /**/"l", "L", "L",/***/
41 "semicolon", "colon", "semicolon", /**/";", ":", ";",/***/
42 "apostrophe", "quotedbl", "apostrophe", /**/"'", "\"", "'",/***/
43 "grave", "asciitilde", "grave", /**/"`", "~", "`",/***/
44 "Shift_L", "Shift_L", "Shift_L", /**/"", "", "",/***/
45 "backslash", "bar", "backslash", /**/"\\", "|", "\\",/***/
46 "z", "Z", "Z", /**/"z", "Z", "Z",/***/
47 "x", "X", "X", /**/"x", "X", "X",/***/
48 "c", "C", "C", /**/"c", "C", "C",/***/
49 "v", "V", "V", /**/"v", "V", "V",/***/
50 "b", "B", "B", /**/"b", "B", "B",/***/
51 "n", "N", "N", /**/"n", "N", "N",/***/
52 "m", "M", "M", /**/"m", "M", "M",/***/
53 "comma", "less", "comma", /**/",", "<", ",",/***/
54 "period", "greater", "period", /**/".", ">", ".",/***/
55 "slash", "question", "slash", /**/"/", "?", "/",/***/
56 "Shift_R", "Shift_R", "Shift_R", /**/"", "", "",/***/
57 "KP_Multiply", "KP_Multiply", "KP_Multiply", /**/"", "*", "",/***/
58 "Alt_L", "Alt_L", "Alt_L", /**/"", "", "",/***/
59 "space", "space", "space", /**/" ", " ", " ",/***/
60 "Caps_Lock", "Caps_Lock", "Caps_Lock", /**/"", "", "",/***/
61 "F1", "F1", "F1", /**/"", "", "",/***/
62 "F2", "F2", "F2", /**/"", "", "",/***/
63 "F3", "F3", "F3", /**/"", "", "",/***/
64 "F4", "F4", "F4", /**/"", "", "",/***/
65 "F5", "F5", "F5", /**/"", "", "",/***/
66 "F6", "F6", "F6", /**/"", "", "",/***/
67 "F7", "F7", "F7", /**/"", "", "",/***/
68 "F8", "F8", "F8", /**/"", "", "",/***/
69 "F9", "F9", "F9", /**/"", "", "",/***/
70 "F10", "F10", "F10", /**/"", "", "",/***/
71 "Num_Lock", "Num_Lock", "Num_Lock", /**/"", "", "",/***/
72 "Scroll_Lock", "Scroll_Lock", "Scroll_Lock", /**/"", "", "",/***/
73 "KP_Home", "KP_7", "KP_Home", /**/"", "7", "",/***/
74 "KP_Up", "KP_8", "KP_Up", /**/"", "8", "",/***/
75 "KP_Prior", "KP_9", "KP_Prior", /**/"", "9", "",/***/
76 "KP_Subtract", "KP_Subtract", "KP_Subtract", /**/"", "", "",/***/
77 "KP_Left", "KP_4", "KP_Left", /**/"", "4", "",/***/
78 "KP_Begin", "KP_5", "KP_Begin", /**/"", "5", "",/***/
79 "KP_Right", "KP_6", "KP_Right", /**/"", "6", "",/***/
80 "KP_Add", "KP_Add", "KP_Add", /**/"", "", "",/***/
81 "KP_End", "KP_1", "KP_End", /**/"", "1", "",/***/
82 "KP_Down", "KP_2", "KP_Down", /**/"", "2", "",/***/
83 "KP_Next", "KP_3", "KP_Next", /**/"", "3", "",/***/
84 "KP_Insert", "KP_0", "KP_Insert", /**/"", "0", "",/***/
85 "KP_Delete", "KP_Decimal", "KP_Delete", /**/"", ".", "",/***/
86 "0x54", "0x54", "0x54", /**/"", "", "",/***/
87 "0x55", "0x55", "0x55", /**/"", "", "",/***/
88 "0x56", "0x56", "0x56", /**/"", "", "",/***/
89 "F11", "F11", "F11", /**/"", "", "",/***/
90 "F12", "F12", "F12", /**/"", "", "",/***/
91 "0x59", "0x59", "0x59", /**/"", "", "",/***/
92 "0x5a", "0x5a", "0x5a", /**/"", "", "",/***/
93 "0x5b", "0x5b", "0x5b", /**/"", "", "",/***/
94 "0x5c", "0x5c", "0x5c", /**/"", "", "",/***/
95 "0x5d", "0x5d", "0x5d", /**/"", "", "",/***/
96 "0x5e", "0x5e", "0x5e", /**/"", "", "",/***/
97 "0x5f", "0x5f", "0x5f", /**/"", "", "",/***/
98 "KP_Enter", "KP_Enter", "KP_Enter", /**/"", "", "",/***/
99 "Control_R", "Control_R", "Control_R", /**/"", "", "",/***/
100 "KP_Divide", "KP_Divide", "KP_Divide", /**/"", "", "",/***/
101 "Print", "Print", "Print", /**/"", "", "",/***/
102 "Alt_R", "Alt_R", "Alt_R", /**/"", "", "",/***/
103 "0x65", "0x65", "0x65", /**/"", "", "",/***/
104 "Home", "Home", "Home", /**/"", "", "",/***/
105 "Up", "Up", "Up", /**/"", "", "",/***/
106 "Prior", "Prior", "Prior", /**/"", "", "",/***/
107 "Left", "Left", "Left", /**/"", "", "",/***/
108 "Right", "Right", "Right", /**/"", "", "",/***/
109 "End", "End", "End", /**/"", "", "",/***/
110 "Down", "Down", "Down", /**/"", "", "",/***/
111 "Next", "Next", "Next", /**/"", "", "",/***/
112 "Insert", "Insert", "Insert", /**/"", "", "",/***/
113 "Delete", "Delete", "Delete", /**/"\177","\177","\177",/***/
114 "0x70", "0x70", "0x70", /**/"", "", "",/***/
115 "0x71", "0x71", "0x71", /**/"", "", "",/***/
116 "0x72", "0x72", "0x72", /**/"", "", "",/***/
117 "0x73", "0x73", "0x73", /**/"", "", "",/***/
118 "0x74", "0x74", "0x74", /**/"", "", "",/***/
119 "0x75", "0x75", "0x75", /**/"", "", "",/***/
120 "0x76", "0x76", "0x76", /**/"", "", "",/***/
121 "Pause", "Pause", "Pause", /**/"", "", "",/***/
122 "0x78", "0x78", "0x78", /**/"", "", "",/***/
123 "0x79", "0x79", "0x79", /**/"", "", "",/***/
124 "0x7a", "0x7a", "0x7a", /**/"", "", "",/***/
125 "0x7b", "0x7b", "0x7b", /**/"", "", "",/***/
126 "0x7c", "0x7c", "0x7c", /**/"", "", "",/***/
127 "Super_L", "Super_L", "Super_L", /**/"", "", "",/***/
128 "Super_R", "Super_R", "Super_R", /**/"", "", "",/***/
129 "0x7f", "0x7f", "0x7f", /**/"", "", "" /***/
diff --git a/libraries/ecore/src/lib/ecore_fb/ecore_fb_li.c b/libraries/ecore/src/lib/ecore_fb/ecore_fb_li.c
deleted file mode 100644
index 3850792..0000000
--- a/libraries/ecore/src/lib/ecore_fb/ecore_fb_li.c
+++ /dev/null
@@ -1,708 +0,0 @@
1#ifdef HAVE_CONFIG_H
2# include <config.h>
3#endif
4
5#include <stdlib.h>
6
7#include "Ecore_Fb.h"
8#include "ecore_fb_private.h"
9
10#define CLICK_THRESHOLD_DEFAULT 0.25
11
12static Eina_List *_ecore_fb_li_devices = NULL;
13
14static const char *_ecore_fb_li_kbd_syms[128 * 6] =
15{
16#include "ecore_fb_keytable.h"
17};
18
19/* Initial Copyright (C) Brad Hards (1999-2002),
20 * this function is used to tell if "bit" is set in "array"
21 * it selects a byte from the array, and does a boolean AND
22 * operation with a byte that only has the relevant bit set.
23 * eg. to check for the 12th bit, we do (array[1] & 1<<4).
24 * Moved to static inline in order to force compiler to otimized
25 * the unsued part away or force a link error if long has an unexpected
26 * size.
27 * - bigeasy
28 */
29extern int long_has_neither_32_nor_64_bits(void);
30static inline int
31test_bit(int bit, unsigned long *array)
32{
33 if (sizeof(long) == 4)
34 return array[bit / 32] & (1 << (bit % 32));
35 else if (sizeof(long) == 8)
36 return array[bit / 64] & (1 << (bit % 64));
37 else long_has_neither_32_nor_64_bits();
38}
39
40static void
41_ecore_fb_li_device_event_key(Ecore_Fb_Input_Device *dev, struct input_event *iev)
42{
43 if (!dev->listen) return;
44
45 /* check for basic keyboard keys */
46 if ((iev->code >= KEY_ESC) && (iev->code <= KEY_COMPOSE))
47 {
48 int offset = 0;
49 const char *keyname = _ecore_fb_li_kbd_syms[iev->code * 6];
50 /* check the key table */
51 if (iev->value)
52 {
53 /* its a repeated key, dont increment */
54 if (iev->value == 2)
55 return;
56 if (!strcmp(keyname, "Control_L"))
57 dev->keyboard.ctrl++;
58 else if (!strcmp(keyname, "Control_R"))
59 dev->keyboard.ctrl++;
60 else if (!strcmp(keyname, "Alt_L"))
61 dev->keyboard.alt++;
62 else if (!strcmp(keyname, "Alt_R"))
63 dev->keyboard.alt++;
64 else if (!strcmp(keyname, "Shift_L"))
65 dev->keyboard.shift++;
66 else if (!strcmp(keyname, "Shift_R"))
67 dev->keyboard.shift++;
68 else if (!strcmp(keyname, "Caps_Lock"))
69 dev->keyboard.lock = !dev->keyboard.lock;
70 if (dev->keyboard.ctrl > 2) dev->keyboard.ctrl = 2;
71 if (dev->keyboard.alt > 2) dev->keyboard.alt = 2;
72 if (dev->keyboard.shift > 2) dev->keyboard.shift = 2;
73 if (dev->keyboard.lock > 1) dev->keyboard.lock = 1;
74 }
75 else
76 {
77 if (!strcmp(keyname, "Control_L"))
78 dev->keyboard.ctrl--;
79 else if (!strcmp(keyname, "Control_R"))
80 dev->keyboard.ctrl--;
81 else if (!strcmp(keyname, "Alt_L"))
82 dev->keyboard.alt--;
83 else if (!strcmp(keyname, "Alt_R"))
84 dev->keyboard.alt--;
85 else if (!strcmp(keyname, "Shift_L"))
86 dev->keyboard.shift--;
87 else if (!strcmp(keyname, "Shift_R"))
88 dev->keyboard.shift--;
89 if (dev->keyboard.ctrl < 0) dev->keyboard.ctrl = 0;
90 if (dev->keyboard.alt < 0) dev->keyboard.alt = 0;
91 if (dev->keyboard.shift < 0) dev->keyboard.shift = 0;
92 if (dev->keyboard.lock < 0) dev->keyboard.lock = 0;
93 }
94
95 /* sending ecore_input_evas events */
96 Ecore_Event_Key *e;
97
98 if (dev->keyboard.shift) offset = 1;
99 else if (dev->keyboard.lock) offset = 2;
100
101 const char *key = _ecore_fb_li_kbd_syms[(iev->code * 6) + offset];
102 const char *compose = _ecore_fb_li_kbd_syms[(iev->code * 6) + 3 + offset];
103
104 e = calloc(1, sizeof(Ecore_Event_Key) + strlen(key) +
105 strlen(keyname) + (compose ? strlen(compose) : 0) + 3);
106 e->keyname = (char *)(e + 1);
107 e->key = e->keyname + strlen(keyname) + 1;
108 e->compose = (compose) ? e->key + strlen(key) + 1 : NULL;
109 e->string = e->compose;
110
111 strcpy((char *)e->keyname, keyname);
112 strcpy((char *)e->key, key);
113 if (compose)
114 strcpy((char *)e->compose, compose);
115
116 e->modifiers = 0;
117 if (dev->keyboard.shift)
118 e->modifiers |= ECORE_EVENT_MODIFIER_SHIFT;
119 if (dev->keyboard.ctrl) e->modifiers |= ECORE_EVENT_MODIFIER_CTRL;
120 if (dev->keyboard.alt) e->modifiers |= ECORE_EVENT_MODIFIER_SHIFT;
121 if (dev->keyboard.lock) e->modifiers |= ECORE_EVENT_LOCK_CAPS;
122
123 e->timestamp = ecore_time_get();
124 e->window = (Ecore_Window)dev->window;
125 e->event_window = (Ecore_Window)dev->window;
126 e->root_window = (Ecore_Window)dev->window;
127 e->same_screen = 1;
128
129 if (iev->value)
130 ecore_event_add(ECORE_EVENT_KEY_DOWN, e, NULL, NULL);
131 else
132 ecore_event_add(ECORE_EVENT_KEY_UP, e, NULL, NULL);
133 }
134 /* check for mouse button events */
135 else if ((iev->code >= BTN_MOUSE) && (iev->code < BTN_JOYSTICK))
136 {
137 int button;
138 Ecore_Event_Mouse_Button *e;
139 double current = ecore_time_get();
140
141 button = ((iev->code & 0x00F) + 1);
142 if (iev->value)
143 {
144 dev->mouse.did_double = EINA_FALSE;
145 dev->mouse.did_triple = EINA_FALSE;
146
147 if (((current - dev->mouse.prev) <= dev->mouse.threshold) &&
148 (button == dev->mouse.prev_button))
149 {
150 dev->mouse.did_double = EINA_TRUE;
151 if (((current - dev->mouse.last) <= (2 * dev->mouse.threshold)) &&
152 (button == dev->mouse.last_button))
153 {
154 dev->mouse.did_triple = EINA_TRUE;
155 /* reset */
156 dev->mouse.prev = 0;
157 dev->mouse.last = 0;
158 current = 0;
159 }
160 }
161 dev->mouse.last = dev->mouse.prev;
162 dev->mouse.prev = current;
163 dev->mouse.last_button = dev->mouse.prev_button;
164 dev->mouse.prev_button = button;
165 }
166
167 e = calloc(1, sizeof(Ecore_Event_Mouse_Button));
168 if (!e)
169 return;
170
171 e->timestamp = current;
172 e->window = (Ecore_Window)dev->window;
173 e->event_window = (Ecore_Window)dev->window;
174 e->root_window = (Ecore_Window)dev->window;
175 e->same_screen = 1;
176
177 e->modifiers = 0;
178 if (dev->keyboard.shift)
179 e->modifiers |= ECORE_EVENT_MODIFIER_SHIFT;
180 if (dev->keyboard.ctrl) e->modifiers |= ECORE_EVENT_MODIFIER_CTRL;
181 if (dev->keyboard.alt) e->modifiers |= ECORE_EVENT_MODIFIER_SHIFT;
182 if (dev->keyboard.lock) e->modifiers |= ECORE_EVENT_LOCK_CAPS;
183
184 e->x = dev->mouse.x;
185 e->y = dev->mouse.y;
186 e->root.x = e->x;
187 e->root.y = e->y;
188 e->buttons = button;
189
190 if (dev->mouse.did_double)
191 e->double_click = 1;
192 if (dev->mouse.did_triple)
193 e->triple_click = 1;
194
195 if (iev->value)
196 ecore_event_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, e, NULL, NULL);
197 else
198 ecore_event_add(ECORE_EVENT_MOUSE_BUTTON_UP, e, NULL, NULL);
199 }
200}
201
202static void
203_ecore_fb_li_device_event_rel(Ecore_Fb_Input_Device *dev, struct input_event *iev)
204{
205 if (!dev->listen) return;
206 /* dispatch the button events if they are queued */
207 switch (iev->code)
208 {
209 case REL_X:
210 case REL_Y:
211 {
212 Ecore_Event_Mouse_Move *e;
213 if(iev->code == REL_X)
214 {
215 dev->mouse.x += iev->value;
216 if(dev->mouse.x > dev->mouse.w - 1)
217 dev->mouse.x = dev->mouse.w;
218 else if(dev->mouse.x < 0)
219 dev->mouse.x = 0;
220 }
221 else
222 {
223 dev->mouse.y += iev->value;
224 if(dev->mouse.y > dev->mouse.h - 1)
225 dev->mouse.y = dev->mouse.h;
226 else if(dev->mouse.y < 0)
227 dev->mouse.y = 0;
228 }
229
230 e = calloc(1, sizeof(Ecore_Event_Mouse_Move));
231 if (!e)
232 return;
233
234 e->window = (Ecore_Window)dev->window;
235 e->event_window = (Ecore_Window)dev->window;
236 e->root_window = (Ecore_Window)dev->window;
237 e->same_screen = 1;
238
239 e->modifiers = 0;
240 if (dev->keyboard.shift) e->modifiers |= ECORE_EVENT_MODIFIER_SHIFT;
241 if (dev->keyboard.ctrl) e->modifiers |= ECORE_EVENT_MODIFIER_CTRL;
242 if (dev->keyboard.alt) e->modifiers |= ECORE_EVENT_MODIFIER_SHIFT;
243 if (dev->keyboard.lock) e->modifiers |= ECORE_EVENT_LOCK_CAPS;
244
245 e->x = dev->mouse.x;
246 e->y = dev->mouse.y;
247 e->root.x = e->x;
248 e->root.y = e->y;
249
250 e->timestamp = ecore_time_get();
251
252 ecore_event_add(ECORE_EVENT_MOUSE_MOVE, e, NULL, NULL);
253
254 break;
255 }
256 case REL_WHEEL:
257 case REL_HWHEEL:
258 {
259 Ecore_Event_Mouse_Wheel *e;
260
261 e = calloc(1, sizeof(Ecore_Event_Mouse_Wheel));
262 if (!e)
263 return;
264
265 e->x = dev->mouse.x;
266 e->y = dev->mouse.y;
267 if (iev->code == REL_HWHEEL) e->direction = 1;
268 e->z = iev->value;
269 e->root.x = dev->mouse.x;
270 e->root.y = dev->mouse.y;
271
272 e->window = (Ecore_Window)dev->window;
273 e->event_window = (Ecore_Window)dev->window;
274 e->root_window = (Ecore_Window)dev->window;
275 e->same_screen = 1;
276
277 e->modifiers = 0;
278 if (dev->keyboard.shift) e->modifiers |= ECORE_EVENT_MODIFIER_SHIFT;
279 if (dev->keyboard.ctrl) e->modifiers |= ECORE_EVENT_MODIFIER_CTRL;
280 if (dev->keyboard.alt) e->modifiers |= ECORE_EVENT_MODIFIER_SHIFT;
281 if (dev->keyboard.lock) e->modifiers |= ECORE_EVENT_LOCK_CAPS;
282
283 e->timestamp = ecore_time_get();
284
285 ecore_event_add(ECORE_EVENT_MOUSE_WHEEL, e, NULL, NULL);
286
287 break;
288 }
289 default:
290 break;
291 }
292}
293
294static void
295_ecore_fb_li_device_event_abs(Ecore_Fb_Input_Device *dev, struct input_event *iev)
296{
297 static int prev_pressure = 0;
298 int pressure;
299
300 if (!dev->listen) return;
301 switch (iev->code)
302 {
303 case ABS_X:
304 if (dev->mouse.w != 0)
305 {
306 int tmp;
307
308 tmp = (int)((double)(iev->value - dev->mouse.min_w) / dev->mouse.rel_w);
309 if (tmp < 0) dev->mouse.x = 0;
310 else if (tmp > dev->mouse.w) dev->mouse.x = dev->mouse.w;
311 else dev->mouse.x = tmp;
312 dev->mouse.event = ECORE_EVENT_MOUSE_MOVE;
313 }
314 break;
315
316 case ABS_Y:
317 if(dev->mouse.h != 0)
318 {
319 int tmp;
320
321 tmp = (int)((double)(iev->value - dev->mouse.min_h) / dev->mouse.rel_h);
322 if (tmp < 0) dev->mouse.y = 0;
323 else if (tmp > dev->mouse.h) dev->mouse.y = dev->mouse.h;
324 else dev->mouse.y = tmp;
325 dev->mouse.event = ECORE_EVENT_MOUSE_MOVE;
326 }
327 break;
328
329 case ABS_PRESSURE:
330 pressure = iev->value;
331 if ((pressure) && (!prev_pressure))
332 {
333 /* DOWN: mouse is down, but was not before */
334 dev->mouse.event = ECORE_EVENT_MOUSE_BUTTON_DOWN;
335 }
336 else if ((!pressure) && (prev_pressure))
337 {
338 /* UP: mouse was down, but is not now */
339 dev->mouse.event = ECORE_EVENT_MOUSE_BUTTON_UP;
340 }
341 prev_pressure = pressure;
342 break;
343 }
344}
345
346static void
347_ecore_fb_li_device_event_syn(Ecore_Fb_Input_Device *dev, struct input_event *iev __UNUSED__)
348{
349 if (!dev->listen) return;
350
351 if (dev->mouse.event == ECORE_EVENT_MOUSE_MOVE)
352 {
353 Ecore_Event_Mouse_Move *ev;
354 ev = calloc(1,sizeof(Ecore_Event_Mouse_Move));
355 ev->x = dev->mouse.x;
356 ev->y = dev->mouse.y;
357 ev->root.x = ev->x;
358 ev->root.y = ev->y;
359 ev->timestamp = ecore_time_get();
360 }
361 else if (dev->mouse.event == ECORE_EVENT_MOUSE_BUTTON_DOWN)
362 {
363 Ecore_Event_Mouse_Button *ev;
364 ev = calloc(1, sizeof(Ecore_Event_Mouse_Button));
365 ev->x = dev->mouse.x;
366 ev->y = dev->mouse.y;
367 ev->root.x = ev->x;
368 ev->root.y = ev->y;
369 ev->buttons = 1;
370 ev->timestamp = ecore_time_get();
371 ecore_event_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, ev, NULL, NULL);
372 }
373 else if (dev->mouse.event == ECORE_EVENT_MOUSE_BUTTON_UP)
374 {
375 Ecore_Event_Mouse_Button *ev;
376 ev = calloc(1, sizeof(Ecore_Event_Mouse_Button));
377 ev->x = dev->mouse.x;
378 ev->y = dev->mouse.y;
379 ev->root.x = ev->x;
380 ev->root.y = ev->y;
381 ev->buttons = 1;
382 ev->timestamp = ecore_time_get();
383 ecore_event_add(ECORE_EVENT_MOUSE_BUTTON_UP, ev, NULL, NULL);
384 }
385}
386
387static Eina_Bool
388_ecore_fb_li_device_fd_callback(void *data, Ecore_Fd_Handler *fdh __UNUSED__)
389{
390 Ecore_Fb_Input_Device *dev;
391 struct input_event ev[64];
392 int len;
393 int i;
394
395 dev = (Ecore_Fb_Input_Device*)data;
396 /* read up to 64 events at once */
397 len = read(dev->fd, &ev, sizeof(ev));
398 for(i = 0; i < (int)(len / sizeof(ev[0])); i++)
399 {
400 switch(ev[i].type)
401 {
402 case EV_SYN:
403 _ecore_fb_li_device_event_syn(dev, &ev[i]);
404 break;
405 case EV_ABS:
406 _ecore_fb_li_device_event_abs(dev, &ev[i]);
407 break;
408 case EV_REL:
409 _ecore_fb_li_device_event_rel(dev, &ev[i]);
410 break;
411 case EV_KEY:
412 _ecore_fb_li_device_event_key(dev, &ev[i]);
413 break;
414 default:
415 break;
416 }
417 }
418 return EINA_TRUE;
419}
420
421/**
422 * @addtogroup Ecore_FB_Group Ecore_FB - Frame buffer convenience functions.
423 *
424 * @{
425 */
426
427/**
428 * @brief Set the listen mode for an input device .
429 *
430 * @param dev The device to set the mode of.
431 * @param listen EINA_FALSE to disable listening mode, EINA_TRUE to enable it.
432 *
433 * This function enables or disables listening on the input device @p
434 * dev. If @p listen is #EINA_FALSE, listening mode is disabled, if it
435 * is #EINA_TRUE, it is enabled.
436 */
437EAPI void
438ecore_fb_input_device_listen(Ecore_Fb_Input_Device *dev, Eina_Bool listen)
439{
440 if (!dev) return;
441 if ((listen && dev->listen) || (!listen && !dev->listen)) return;
442 if (listen)
443 {
444 /* if the device already had a handler */
445 if (!dev->handler)
446 dev->handler = ecore_main_fd_handler_add(dev->fd, ECORE_FD_READ, _ecore_fb_li_device_fd_callback, dev, NULL, NULL);
447
448 }
449 dev->listen = listen;
450}
451
452#ifndef EV_CNT
453# define EV_CNT (EV_MAX+1)
454#endif
455
456/**
457 * @brief Associates an input device with the given @ref Ecore_Evas_Group.
458 *
459 * @param dev The input being associated with an @ref Ecore_Evas_Group (not @c NULL).
460 * @param window The window which this input is being associated to.
461 * @c NULL will remove any previous association.
462 *
463 * Events generated by this device will have a pointer to @p window. If this @p
464 * window is registered with ecore_event_window_register() or
465 * ecore_evas_input_event_register(), respective evas events will be delivered
466 * by the ecore_input_evas system. An example can be seen in the following code:
467 *
468 * @code
469 * Ecore_Evas *ee = ecore_evas_new(NULL, 0, 0, 800, 600, NULL);
470 *
471 * ecore_evas_input_event_register(ee);
472 *
473 * device = ecore_fb_input_device_open(device_path);
474 * if (device)
475 * ecore_fb_input_device_window_set(device, ee);
476 *
477 * @endcode
478 *
479 * On the previous code, all input captured on the mentioned device will be
480 * delivered to the @c Ecore_Evas @c ee.
481 *
482 * @since 1.1
483 */
484EAPI void
485ecore_fb_input_device_window_set(Ecore_Fb_Input_Device *dev, void *window)
486{
487 if (!dev) return;
488
489 dev->window = window;
490}
491
492/**
493 * @brief Open an input device.
494 *
495 * @param dev The device to open.
496 * @return The @ref Ecore_Fb_Input_Device object that has been opened.
497 *
498 * This function opens the input device named @p dev and returns the
499 * object for it, or returns @c NULL on failure.
500 */
501EAPI Ecore_Fb_Input_Device *
502ecore_fb_input_device_open(const char *dev)
503{
504 Ecore_Fb_Input_Device *device;
505 unsigned long event_type_bitmask[EV_CNT / 32 + 1];
506 int event_type;
507 int fd;
508
509 if (!dev) return NULL;
510 device = calloc(1, sizeof(Ecore_Fb_Input_Device));
511 if (!device) return NULL;
512
513 if ((fd = open(dev, O_RDONLY, O_NONBLOCK)) < 0)
514 {
515 fprintf(stderr, "[ecore_fb_li:device_open] %s %s", dev, strerror(errno));
516 goto error_open;
517 }
518 /* query capabilities */
519 if (ioctl(fd, EVIOCGBIT(0, EV_MAX), event_type_bitmask) < 0)
520 {
521 fprintf(stderr,"[ecore_fb_li:device_open] query capabilities %s %s", dev, strerror(errno));
522 goto error_caps;
523 }
524 /* query name */
525 device->info.name = calloc(256, sizeof(char));
526 if (ioctl(fd, EVIOCGNAME(sizeof(char) * 256), device->info.name) < 0)
527 {
528 fprintf(stderr, "[ecore_fb_li:device_open] get name %s %s", dev, strerror(errno));
529 strcpy(device->info.name, "Unknown");
530 }
531 device->fd = fd;
532 device->info.dev = strdup(dev);
533 /* common */
534 device->mouse.threshold = CLICK_THRESHOLD_DEFAULT;
535
536 /* set info */
537 for (event_type = 0; event_type < EV_MAX; event_type++)
538 {
539 if(!test_bit(event_type, event_type_bitmask))
540 continue;
541 switch (event_type)
542 {
543 case EV_SYN:
544 break;
545 case EV_KEY:
546 device->info.cap |= ECORE_FB_INPUT_DEVICE_CAP_KEYS_OR_BUTTONS;
547 break;
548 case EV_REL:
549 device->info.cap |= ECORE_FB_INPUT_DEVICE_CAP_RELATIVE;
550 break;
551 case EV_ABS:
552 device->info.cap |= ECORE_FB_INPUT_DEVICE_CAP_ABSOLUTE;
553 break;
554 case EV_MSC:
555 case EV_LED:
556 case EV_SND:
557 case EV_REP:
558 case EV_FF :
559 case EV_FF_STATUS:
560 case EV_PWR:
561 default:
562 break;
563 }
564 }
565
566 _ecore_fb_li_devices = eina_list_append(_ecore_fb_li_devices, device);
567 return device;
568
569error_caps:
570 close(fd);
571error_open:
572 free(device);
573 return NULL;
574}
575
576/**
577 * @brief Close the given device.
578 *
579 * @param dev The device to close
580 *
581 * This function closes the device @p dev. If @p dev is @c NULL, this
582 * function does nothing.
583 */
584EAPI void
585ecore_fb_input_device_close(Ecore_Fb_Input_Device *dev)
586{
587 if (!dev || dev->fd < 0) return;
588 /* close the fd */
589 close(dev->fd);
590 /* remove the element from the list */
591 _ecore_fb_li_devices = eina_list_remove(_ecore_fb_li_devices, dev);
592 free(dev);
593}
594
595
596/**
597 * @brief Set the axis size of the given device.
598 *
599 * @param dev The device to set the axis size to.
600 * @param w The width of the axis.
601 * @param h The height of the axis.
602 *
603 * This function sets set the width @p w and height @p h of the axis
604 * of device @p dev. If @p dev is a relative input device, a width and
605 * height must set for it. If its absolute set the ioctl correctly, if
606 * not, unsupported device.
607 */
608EAPI void
609ecore_fb_input_device_axis_size_set(Ecore_Fb_Input_Device *dev, int w, int h)
610{
611 if (!dev) return;
612 if ((w < 0) || (h < 0)) return;
613 /* FIXME
614 * this code is for a touchscreen device,
615 * make it configurable (ABSOLUTE | RELATIVE)
616 */
617 if (dev->info.cap & ECORE_FB_INPUT_DEVICE_CAP_ABSOLUTE)
618 {
619 /* FIXME looks like some kernels dont include this struct */
620 struct input_absinfo abs_features;
621
622 ioctl(dev->fd, EVIOCGABS(ABS_X), &abs_features);
623 dev->mouse.min_w = abs_features.minimum;
624 dev->mouse.rel_w = (double)(abs_features.maximum - abs_features.minimum)/(double)(w);
625
626 ioctl(dev->fd, EVIOCGABS(ABS_Y), &abs_features);
627 dev->mouse.min_h = abs_features.minimum;
628 dev->mouse.rel_h = (double)(abs_features.maximum - abs_features.minimum)/(double)(h);
629 }
630 else if (!(dev->info.cap & ECORE_FB_INPUT_DEVICE_CAP_RELATIVE))
631 return;
632
633 /* update the local values */
634 if (dev->mouse.x > w - 1) dev->mouse.x = w -1;
635 if (dev->mouse.y > h - 1) dev->mouse.y = h -1;
636 dev->mouse.w = w;
637 dev->mouse.h = h;
638}
639
640/**
641 * @brief Retrieve the name of the given device.
642 *
643 * @param dev The device to get the name from.
644 * @return The name of the device.
645 *
646 * This function returns the name of the device @p dev. If @p dev is
647 * @c NULL, this function returns @c NULL.
648 */
649EAPI const char *
650ecore_fb_input_device_name_get(Ecore_Fb_Input_Device *dev)
651{
652 if (!dev) return NULL;
653 return dev->info.name;
654}
655
656/**
657 * @brief Retrieve the capability of the given device.
658 *
659 * @param dev The device to get the name from.
660 * @return The capability of the device.
661 *
662 * This function returns the capability of the device @p dev. If @p dev is
663 * @c NULL, this function returns #ECORE_FB_INPUT_DEVICE_CAP_NONE.
664 */
665EAPI Ecore_Fb_Input_Device_Cap
666ecore_fb_input_device_cap_get(Ecore_Fb_Input_Device *dev)
667{
668 if (!dev) return ECORE_FB_INPUT_DEVICE_CAP_NONE;
669 return dev->info.cap;
670}
671
672/**
673 * @brief Set the threshold of mouse clicks of the given device.
674 *
675 * @param dev The device to set the threshodl mouse click to.
676 * @param threshold The threshold value.
677 *
678 * This function sets the threshold of mouse clicks of the device
679 * @p dev to @p threshold. If @p dev is @c NULL, this function does
680 * nothing.
681 */
682EAPI void
683ecore_fb_input_device_threshold_click_set(Ecore_Fb_Input_Device *dev, double threshold)
684{
685 if (!dev) return;
686 if ((threshold == dev->mouse.threshold) || (threshold == 0)) return;
687 dev->mouse.threshold = threshold;
688}
689
690/**
691 * @brief Get the threshold of mouse clicks of the given device.
692 *
693 * @param dev The device to set the threshodl mouse click from.
694 * @return The threshold value.
695 *
696 * This function returns the threshold of mouse clicks of the device
697 * @p dev. If @p dev is @c NULL, this function returns 0.0.
698 */
699EAPI double
700ecore_fb_input_device_threshold_click_get(Ecore_Fb_Input_Device *dev)
701{
702 if (!dev) return 0;
703 return dev->mouse.threshold;
704}
705
706/**
707 * @}
708 */
diff --git a/libraries/ecore/src/lib/ecore_fb/ecore_fb_private.h b/libraries/ecore/src/lib/ecore_fb/ecore_fb_private.h
deleted file mode 100644
index 797f863..0000000
--- a/libraries/ecore/src/lib/ecore_fb/ecore_fb_private.h
+++ /dev/null
@@ -1,94 +0,0 @@
1#ifndef _ECORE_FB_PRIVATE_H
2#define _ECORE_FB_PRIVATE_H
3
4#include "Ecore.h"
5#include "ecore_private.h"
6#include "Ecore_Input.h"
7
8#include <stdio.h>
9#include <stdlib.h>
10#include <string.h>
11#include <unistd.h>
12#include <termios.h>
13#include <sys/types.h>
14#include <sys/stat.h>
15#include <sys/ioctl.h>
16#include <linux/version.h>
17#include <linux/kd.h>
18#include <linux/vt.h>
19#include <linux/fb.h>
20#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18))
21 #define kernel_ulong_t unsigned long
22 #define BITS_PER_LONG 32
23 #include <linux/input.h>
24 #undef kernel_ulong_t
25 #undef BITS_PER_LONG
26#else
27 #include <linux/input.h>
28#endif
29
30#include <signal.h>
31#include <fcntl.h>
32#include <errno.h>
33
34#include <Ecore_Fb.h>
35
36/* ecore_fb_li.c */
37struct _Ecore_Fb_Input_Device
38{
39 int fd;
40 Ecore_Fd_Handler *handler;
41 int listen;
42 struct {
43 Ecore_Fb_Input_Device_Cap cap;
44 char *name;
45 char *dev;
46 } info;
47 struct
48 {
49 /* common mouse */
50 int x,y;
51 int w,h;
52
53 double last;
54 double prev;
55 double threshold;
56 Eina_Bool did_double;
57 Eina_Bool did_triple;
58 /* absolute axis */
59 int min_w, min_h;
60 double rel_w, rel_h;
61 int event;
62 int prev_button;
63 int last_button;
64 } mouse;
65 struct
66 {
67 int shift;
68 int ctrl;
69 int alt;
70 int lock;
71 } keyboard;
72 void *window;
73};
74
75/* ecore_fb_ts.c */
76EAPI int ecore_fb_ts_init(void);
77EAPI void ecore_fb_ts_shutdown(void);
78EAPI void ecore_fb_ts_events_window_set(void *window);
79EAPI void *ecore_fb_ts_events_window_get(void);
80EAPI void ecore_fb_ts_event_window_set(void *window);
81
82/* ecore_fb_vt.c */
83int ecore_fb_vt_init(void);
84void ecore_fb_vt_shutdown(void);
85
86/* hacks to stop people NEEDING #include <linux/h3600_ts.h> */
87#ifndef TS_SET_CAL
88#define TS_SET_CAL 0x4014660b
89#endif
90#ifndef TS_GET_CAL
91#define TS_GET_CAL 0x8014660a
92#endif
93
94#endif
diff --git a/libraries/ecore/src/lib/ecore_fb/ecore_fb_ts.c b/libraries/ecore/src/lib/ecore_fb/ecore_fb_ts.c
deleted file mode 100644
index 395e768..0000000
--- a/libraries/ecore/src/lib/ecore_fb/ecore_fb_ts.c
+++ /dev/null
@@ -1,355 +0,0 @@
1#ifdef HAVE_CONFIG_H
2# include <config.h>
3#endif
4
5#ifdef HAVE_TSLIB
6# include <tslib.h>
7# include <errno.h>
8#endif
9
10#include "Ecore_Fb.h"
11#include "ecore_fb_private.h"
12
13typedef struct _Ecore_Fb_Ts_Event Ecore_Fb_Ts_Event;
14typedef struct _Ecore_Fb_Ts_Calibrate Ecore_Fb_Ts_Calibrate;
15typedef struct _Ecore_Fb_Ts_Backlight Ecore_Fb_Ts_Backlight;
16typedef struct _Ecore_Fb_Ts_Contrast Ecore_Fb_Ts_Contrast;
17typedef struct _Ecore_Fb_Ts_Led Ecore_Fb_Ts_Led;
18typedef struct _Ecore_Fb_Ts_Flite Ecore_Fb_Ts_Flite;
19
20struct _Ecore_Fb_Ts_Event
21{
22 unsigned short pressure;
23 unsigned short x;
24 unsigned short y;
25 unsigned short _unused;
26};
27
28struct _Ecore_Fb_Ts_Calibrate
29{
30 int xscale;
31 int xtrans;
32 int yscale;
33 int ytrans;
34 int xyswap;
35};
36
37struct _Ecore_Fb_Ts_Backlight
38{
39 int on;
40 unsigned char brightness;
41};
42
43struct _Ecore_Fb_Ts_Contrast
44{
45 unsigned char contrast;
46};
47
48struct _Ecore_Fb_Ts_Led
49{
50 unsigned char on;
51 unsigned char blink_time;
52 unsigned char on_time;
53 unsigned char off_time;
54};
55
56struct _Ecore_Fb_Ts_Flite
57{
58 unsigned char mode;
59 unsigned char pwr;
60 unsigned char brightness;
61};
62
63static Eina_Bool _ecore_fb_ts_fd_handler(void *data, Ecore_Fd_Handler *fd_handler);
64static int _ecore_fb_ts_fd = -1;
65static int _ecore_fb_ts_event_byte_count = 0;
66static int _ecore_fb_ts_apply_cal = 0;
67static Ecore_Fb_Ts_Event _ecore_fb_ts_event;
68static Ecore_Fb_Ts_Calibrate _ecore_fb_ts_cal = {1,1,0,0,0};
69static Ecore_Fd_Handler *_ecore_fb_ts_fd_handler_handle = NULL;
70
71#ifdef HAVE_TSLIB
72struct tsdev *_ecore_fb_tslib_tsdev = NULL;
73struct ts_sample _ecore_fb_tslib_event;
74#endif
75
76static double _ecore_fb_double_click_time = 0.25;
77static void *_ecore_fb_ts_event_window = NULL;
78
79EAPI int
80ecore_fb_ts_init(void)
81{
82#ifdef HAVE_TSLIB
83 char *tslib_tsdevice = NULL;
84 if ( (tslib_tsdevice = getenv("TSLIB_TSDEVICE")) )
85 {
86 printf( "ECORE_FB: TSLIB_TSDEVICE = '%s'\n", tslib_tsdevice );
87 _ecore_fb_tslib_tsdev = ts_open( tslib_tsdevice, 1 ); /* 1 = nonblocking, 0 = blocking */
88
89 if ( !_ecore_fb_tslib_tsdev )
90 {
91 printf( "ECORE_FB: Can't ts_open (%s)\n", strerror( errno ) );
92 return 0;
93 }
94
95 if ( ts_config( _ecore_fb_tslib_tsdev ) )
96 {
97 printf( "ECORE_FB: Can't ts_config (%s)\n", strerror( errno ) );
98 return 0;
99 }
100 _ecore_fb_ts_fd = ts_fd( _ecore_fb_tslib_tsdev );
101 if ( _ecore_fb_ts_fd < 0 )
102 {
103 printf( "ECORE_FB: Can't open touchscreen (%s)\n", strerror( errno ) );
104 return 0;
105 }
106 }
107#else
108 _ecore_fb_ts_fd = open("/dev/touchscreen/0", O_RDONLY);
109#endif
110 if (_ecore_fb_ts_fd >= 0)
111 {
112 _ecore_fb_ts_fd_handler_handle = ecore_main_fd_handler_add(_ecore_fb_ts_fd,
113 ECORE_FD_READ,
114 _ecore_fb_ts_fd_handler, NULL,
115 NULL, NULL);
116 if (!_ecore_fb_ts_fd_handler_handle)
117 {
118 close(_ecore_fb_ts_fd);
119 return 0;
120 }
121 // FIXME _ecore_fb_kbd_fd = open("/dev/touchscreen/key", O_RDONLY);
122 return 1;
123 }
124 return 0;
125}
126
127EAPI void
128ecore_fb_ts_shutdown(void)
129{
130 if (_ecore_fb_ts_fd_handler_handle)
131 ecore_main_fd_handler_del(_ecore_fb_ts_fd_handler_handle);
132 if (_ecore_fb_ts_fd >= 0) close(_ecore_fb_ts_fd);
133 _ecore_fb_ts_fd = -1;
134 _ecore_fb_ts_fd_handler_handle = NULL;
135 _ecore_fb_ts_event_window = NULL;
136}
137
138EAPI void
139ecore_fb_ts_event_window_set(void *window)
140{
141 _ecore_fb_ts_event_window = window;
142}
143
144EAPI void *
145ecore_fb_ts_event_window_get(void)
146{
147 return _ecore_fb_ts_event_window;
148}
149
150/**
151 * @defgroup Ecore_FB_Calibrate_Group Framebuffer Calibration Functions
152 *
153 * Functions that calibrate the screen.
154 */
155
156
157/**
158 * Calibrates the touschreen using the given parameters.
159 * @param xscale X scaling, where 256 = 1.0
160 * @param xtrans X translation.
161 * @param yscale Y scaling.
162 * @param ytrans Y translation.
163 * @param xyswap Swap X & Y flag.
164 * @ingroup Ecore_FB_Calibrate_Group
165 */
166EAPI void
167ecore_fb_touch_screen_calibrate_set(int xscale, int xtrans, int yscale, int ytrans, int xyswap)
168{
169 Ecore_Fb_Ts_Calibrate cal;
170
171 if (_ecore_fb_ts_fd < 0) return;
172 cal.xscale = xscale;
173 cal.xtrans = xtrans;
174 cal.yscale = yscale;
175 cal.ytrans = ytrans;
176 cal.xyswap = xyswap;
177 if (ioctl(_ecore_fb_ts_fd, TS_SET_CAL, (void *)&cal))
178 {
179 _ecore_fb_ts_cal = cal;
180 _ecore_fb_ts_apply_cal = 1;
181 }
182}
183
184/**
185 * Retrieves the calibration parameters of the touchscreen.
186 * @param xscale Pointer to an integer in which to store the X scaling.
187 * Note that 256 = 1.0.
188 * @param xtrans Pointer to an integer in which to store the X translation.
189 * @param yscale Pointer to an integer in which to store the Y scaling.
190 * @param ytrans Pointer to an integer in which to store the Y translation.
191 * @param xyswap Pointer to an integer in which to store the Swap X & Y flag.
192 * @ingroup Ecore_FB_Calibrate_Group
193 */
194EAPI void
195ecore_fb_touch_screen_calibrate_get(int *xscale, int *xtrans, int *yscale, int *ytrans, int *xyswap)
196{
197 Ecore_Fb_Ts_Calibrate cal;
198
199 if (_ecore_fb_ts_fd < 0) return;
200 if (!_ecore_fb_ts_apply_cal)
201 {
202 if (ioctl(_ecore_fb_ts_fd, TS_GET_CAL, (void *)&cal))
203 _ecore_fb_ts_cal = cal;
204 }
205 else
206 cal = _ecore_fb_ts_cal;
207 if (xscale) *xscale = cal.xscale;
208 if (xtrans) *xtrans = cal.xtrans;
209 if (yscale) *yscale = cal.yscale;
210 if (ytrans) *ytrans = cal.ytrans;
211 if (xyswap) *xyswap = cal.xyswap;
212}
213
214static Eina_Bool
215_ecore_fb_ts_fd_handler(void *data __UNUSED__, Ecore_Fd_Handler *fd_handler __UNUSED__)
216{
217 static int prev_x = 0, prev_y = 0, prev_pressure = 0;
218 static double last_time = 0;
219 static double last_last_time = 0;
220 int v = 0;
221
222 do
223 {
224 int x, y, pressure;
225 int num;
226 char *ptr;
227 double t = 0.0;
228 static int did_double = 0;
229 static int did_triple = 0;
230
231#ifdef HAVE_TSLIB
232 if (_ecore_fb_ts_apply_cal)
233 num = ts_read_raw(_ecore_fb_tslib_tsdev, &_ecore_fb_tslib_event, 1);
234 else
235 num = ts_read(_ecore_fb_tslib_tsdev, &_ecore_fb_tslib_event, 1);
236 if (num != 1) return 1; /* no more samples at this time */
237 x = _ecore_fb_tslib_event.x;
238 y = _ecore_fb_tslib_event.y;
239 pressure = _ecore_fb_tslib_event.pressure;
240 v = 1; /* loop, there might be more samples */
241 t = ecore_time_get();
242#else
243 ptr = (char *)&(_ecore_fb_ts_event);
244 ptr += _ecore_fb_ts_event_byte_count;
245 num = sizeof(Ecore_Fb_Ts_Event) - _ecore_fb_ts_event_byte_count;
246 v = read(_ecore_fb_ts_fd, ptr, num);
247 if (v < 0) return 1;
248 _ecore_fb_ts_event_byte_count += v;
249 if (v < num) return 1;
250 _ecore_fb_ts_event_byte_count = 0;
251 if (_ecore_fb_ts_apply_cal)
252 {
253 x = ((_ecore_fb_ts_cal.xscale * _ecore_fb_ts_event.x) >> 8) + _ecore_fb_ts_cal.xtrans;
254 y = ((_ecore_fb_ts_cal.yscale * _ecore_fb_ts_event.y) >> 8) + _ecore_fb_ts_cal.ytrans;
255 }
256 else
257 {
258 x = _ecore_fb_ts_event.x;
259 y = _ecore_fb_ts_event.y;
260 }
261 pressure = _ecore_fb_ts_event.pressure;
262#endif
263 /* add event to queue */
264 /* always add a move event */
265 if ((pressure) || (prev_pressure))
266 {
267 /* MOVE: mouse is down and was */
268 Ecore_Event_Mouse_Move *e;
269
270 e = calloc(1, sizeof(Ecore_Event_Mouse_Move));
271 if (!e) goto retry;
272 e->x = x;
273 e->y = y;
274 e->root.x = x;
275 e->root.y = y;
276 e->window = (Ecore_Window)_ecore_fb_ts_event_window;
277 e->event_window = e->window;
278 e->root_window = e->window;
279 e->same_screen = 1;
280 ecore_event_add(ECORE_EVENT_MOUSE_MOVE, e, NULL, NULL);
281 }
282 if ((pressure) && (!prev_pressure))
283 {
284 /* DOWN: mouse is down, but was not now */
285 Ecore_Event_Mouse_Button *e;
286
287 e = calloc(1, sizeof(Ecore_Event_Mouse_Button));
288 if (!e) goto retry;
289 e->x = x;
290 e->y = y;
291 e->buttons = 1;
292 if ((t - last_time) <= _ecore_fb_double_click_time)
293 {
294 e->double_click = 1;
295 did_double = 1;
296 }
297 else
298 {
299 did_double = 0;
300 did_triple = 0;
301 }
302 if ((t - last_last_time) <= (2 * _ecore_fb_double_click_time))
303 {
304 did_triple = 1;
305 e->triple_click = 1;
306 }
307 else
308 {
309 did_triple = 0;
310 }
311 e->window = (Ecore_Window)_ecore_fb_ts_event_window;
312 e->event_window = e->window;
313 e->root_window = e->window;
314 e->same_screen = 1;
315 ecore_event_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, e, NULL, NULL);
316 }
317 else if ((!pressure) && (prev_pressure))
318 {
319 /* UP: mouse was down, but is not now */
320 Ecore_Event_Mouse_Button *e;
321
322 e = calloc(1, sizeof(Ecore_Event_Mouse_Button));
323 if (!e) goto retry;
324 e->x = prev_x;
325 e->y = prev_y;
326 e->buttons = 1;
327 if (did_double)
328 e->double_click = 1;
329 if (did_triple)
330 e->triple_click = 1;
331 e->window = (Ecore_Window)_ecore_fb_ts_event_window;
332 e->event_window = e->window;
333 e->root_window = e->window;
334 e->same_screen = 1;
335 ecore_event_add(ECORE_EVENT_MOUSE_BUTTON_UP, e, NULL, NULL);
336 }
337 if (did_triple)
338 {
339 last_time = 0;
340 last_last_time = 0;
341 }
342 else
343 {
344 last_last_time = last_time;
345 last_time = t;
346 }
347retry:
348 prev_x = x;
349 prev_y = y;
350 prev_pressure = pressure;
351 }
352 while (v > 0);
353 return 1;
354}
355
diff --git a/libraries/ecore/src/lib/ecore_fb/ecore_fb_vt.c b/libraries/ecore/src/lib/ecore_fb/ecore_fb_vt.c
deleted file mode 100644
index 09e3f37..0000000
--- a/libraries/ecore/src/lib/ecore_fb/ecore_fb_vt.c
+++ /dev/null
@@ -1,322 +0,0 @@
1#ifdef HAVE_CONFIG_H
2# include <config.h>
3#endif
4
5#include "Ecore_Fb.h"
6#include "ecore_fb_private.h"
7
8static int _ecore_fb_vt_do_switch = 0;
9
10static int _ecore_fb_vt_tty0_fd = -1;
11static int _ecore_fb_vt_tty_fd = -1;
12static int _ecore_fb_vt_current_vt = 0;
13static int _ecore_fb_vt_prev_vt = 0;
14
15static struct termios _ecore_fb_tty_prev_tio_mode;
16static struct vt_mode _ecore_fb_vt_prev_mode;
17
18static Eina_Bool _ecore_fb_signal_usr_handler(void *data, int type, void *ev);
19static Ecore_Event_Handler *_ecore_fb_user_handler = NULL;
20static int _ecore_fb_tty_prev_mode = 0;
21static int _ecore_fb_tty_prev_kd_mode = 0;
22
23/* callbacks for an attach/release of a vt */
24static void (*_ecore_fb_func_fb_lost) (void *data) = NULL;
25static void *_ecore_fb_func_fb_lost_data = NULL;
26static void (*_ecore_fb_func_fb_gain) (void *data) = NULL;
27static void *_ecore_fb_func_fb_gain_data = NULL;
28
29/* FIXME what is the filter for? */
30static Ecore_Event_Filter *_ecore_fb_filter_handler = NULL;
31
32/* prototypes */
33/* XXX: unused
34static void _ecore_fb_vt_switch(int vt);
35static void *_ecore_fb_event_filter_start(void *data);
36static Eina_Bool _ecore_fb_event_filter_filter(void *data, void *loop_data, int type, void *event);
37static void _ecore_fb_event_filter_end(void *data, void *loop_data);
38*/
39
40static Eina_Bool
41_ecore_fb_signal_usr_handler(void *data __UNUSED__, int type __UNUSED__, void *ev)
42{
43 Ecore_Event_Signal_User *e;
44
45 e = (Ecore_Event_Signal_User *)ev;
46 if (e->number == 1)
47 {
48 /* release vt */
49 if (_ecore_fb_func_fb_lost) _ecore_fb_func_fb_lost(_ecore_fb_func_fb_lost_data);
50 /* TODO stop listening from the devices? let the callback do it? */
51 ioctl(_ecore_fb_vt_tty_fd, VT_RELDISP, 1);
52 }
53 else if (e->number == 2)
54 {
55 /* attach vt */
56 if (_ecore_fb_func_fb_gain) _ecore_fb_func_fb_gain(_ecore_fb_func_fb_gain_data);
57 /* TODO reattach all devices */
58 }
59 return 1;
60}
61
62/* XXX: unused
63static void
64_ecore_fb_vt_switch(int vt)
65{
66 vt++;
67 if (_ecore_fb_vt_tty_fd != 0)
68 {
69 if (vt != _ecore_fb_vt_current_vt)
70 {
71 tcsetattr(_ecore_fb_vt_tty_fd, TCSAFLUSH, &_ecore_fb_tty_prev_tio_mode);
72 ioctl(_ecore_fb_vt_tty_fd, KDSETMODE, _ecore_fb_tty_prev_kd_mode);
73 ioctl(_ecore_fb_vt_tty_fd, KDSKBMODE, _ecore_fb_tty_prev_mode);
74 }
75 }
76 ioctl(_ecore_fb_vt_tty_fd, VT_ACTIVATE, vt);
77}
78*/
79
80static int
81_ecore_fb_vt_setup(void)
82{
83 char buf[64];
84// XXX: unused
85// struct termios tio;
86 struct vt_mode new_vtmode;
87
88 if (_ecore_fb_vt_current_vt != _ecore_fb_vt_prev_vt)
89 {
90 snprintf(buf, sizeof(buf), "/dev/tty%i", _ecore_fb_vt_current_vt);
91 if ((_ecore_fb_vt_tty_fd = open(buf, O_RDWR)) < 0)
92 {
93 printf("[ecore_fb:vt_setup] can't open tty %d\n", _ecore_fb_vt_current_vt);
94 return 0;
95 }
96 close(_ecore_fb_vt_tty0_fd);
97 _ecore_fb_vt_tty0_fd = -1;
98 /* FIXME detach the process from current tty ? */
99 }
100 else
101 _ecore_fb_vt_tty_fd = _ecore_fb_vt_tty0_fd;
102 /* for backup */
103 tcgetattr(_ecore_fb_vt_tty_fd, &_ecore_fb_tty_prev_tio_mode);
104 ioctl(_ecore_fb_vt_tty_fd, KDGETMODE, &_ecore_fb_tty_prev_kd_mode);
105 ioctl(_ecore_fb_vt_tty_fd, VT_GETMODE, &_ecore_fb_vt_prev_mode);
106
107 if (ioctl(_ecore_fb_vt_tty_fd, KDSETMODE, KD_GRAPHICS) < 0)
108 {
109 perror("[ecore_fb:vt_setup] can't set the mode to KD_GRAPHICS");
110 close(_ecore_fb_vt_tty_fd);
111 _ecore_fb_vt_tty_fd = -1;
112 return 0;
113 }
114 ioctl(_ecore_fb_vt_tty_fd, KDGKBMODE, &_ecore_fb_tty_prev_mode);
115
116 /* support of switching */
117 new_vtmode.mode = VT_PROCESS;
118 new_vtmode.waitv = 0;
119 new_vtmode.relsig = SIGUSR1;
120 new_vtmode.acqsig = SIGUSR2;
121 if (ioctl(_ecore_fb_vt_tty_fd, VT_SETMODE, &new_vtmode) < 0)
122 {
123 perror("[ecore_fb:vt_setup] can't set the tty mode");
124 close(_ecore_fb_vt_tty_fd);
125 _ecore_fb_vt_tty_fd = -1;
126 return 0;
127 }
128 /* register signal handlers when alloc/detach of vt */
129 _ecore_fb_user_handler = ecore_event_handler_add(ECORE_EVENT_SIGNAL_USER,
130 _ecore_fb_signal_usr_handler,
131 NULL);
132 /* What does this do? */
133 /*
134 _ecore_fb_filter_handler = ecore_event_filter_add(_ecore_fb_event_filter_start, _ecore_fb_event_filter_filter, _ecore_fb_event_filter_end, NULL);
135 */
136
137 usleep(40000);
138 if (ioctl(_ecore_fb_vt_tty_fd, VT_ACTIVATE, _ecore_fb_vt_current_vt) < 0)
139 {
140 perror("[ecore_fb:vt_setup] error on VT_ACTIVATE");
141 close(_ecore_fb_vt_tty_fd);
142 _ecore_fb_vt_tty_fd = -1;
143 return 0;
144 }
145 if(ioctl(_ecore_fb_vt_tty_fd, VT_WAITACTIVE, _ecore_fb_vt_current_vt) < 0)
146 {
147 perror("[ecore_fb:vt_setup] error on VT_WAITACTIVE");
148 close(_ecore_fb_vt_tty_fd);
149 _ecore_fb_vt_tty_fd = -1;
150 return 0;
151 }
152 /* FIXME assign the fb to the tty in case isn't setup */
153 return 1;
154}
155
156int
157ecore_fb_vt_init(void)
158{
159 struct vt_stat vtstat;
160
161 /* as root you can allocate another tty */
162 if (!geteuid())
163 _ecore_fb_vt_do_switch = 1;
164 if ((_ecore_fb_vt_tty0_fd = open("/dev/tty0", O_RDONLY)) < 0)
165 {
166 printf("[ecore_fb:init] can't open /dev/tty0\n");
167 return 0;
168 }
169 /* query current vt state */
170 if ((ioctl(_ecore_fb_vt_tty0_fd, VT_GETSTATE, &vtstat)) < 0)
171 {
172 printf("[ecore_fb:init] can't get current tty state\n");
173 return 0;
174 }
175 _ecore_fb_vt_prev_vt = vtstat.v_active;
176 /* switch to another tty */
177 if (_ecore_fb_vt_do_switch)
178 {
179 int vtno;
180
181 if ((ioctl(_ecore_fb_vt_tty0_fd, VT_OPENQRY, &vtno) < 0))
182 {
183 printf("[ecore_fb:init] can't query for a vt\n");
184 return 0;
185 }
186 _ecore_fb_vt_current_vt = vtno;
187 }
188 /* use current tty */
189 else
190 _ecore_fb_vt_current_vt = _ecore_fb_vt_prev_vt;
191 if (!_ecore_fb_vt_setup())
192 {
193 printf("[ecore_fb:init] can't setup the vt, restoring previous mode...\n");
194 /* TODO finish this */
195 if (_ecore_fb_vt_do_switch)
196 {
197 printf("[ecore_fb:init] switching back to vt %d\n", _ecore_fb_vt_prev_vt);
198 }
199 return 0;
200 }
201 return 1;
202}
203
204void
205ecore_fb_vt_shutdown(void)
206{
207 /* restore the previous mode */
208 if (_ecore_fb_vt_tty_fd != -1)
209 {
210 tcsetattr(_ecore_fb_vt_tty_fd, TCSAFLUSH, &_ecore_fb_tty_prev_tio_mode);
211 ioctl(_ecore_fb_vt_tty_fd, KDSETMODE, _ecore_fb_tty_prev_kd_mode);
212 ioctl(_ecore_fb_vt_tty_fd, KDSKBMODE, _ecore_fb_tty_prev_mode);
213 ioctl(_ecore_fb_vt_tty_fd, VT_SETMODE, &_ecore_fb_vt_prev_mode);
214 /* go back to previous vt */
215 close(_ecore_fb_vt_tty_fd);
216 _ecore_fb_vt_tty_fd = -1;
217 }
218
219 if (_ecore_fb_user_handler) ecore_event_handler_del(_ecore_fb_user_handler);
220 _ecore_fb_user_handler = NULL;
221
222 if (_ecore_fb_filter_handler) ecore_event_filter_del(_ecore_fb_filter_handler);
223 _ecore_fb_filter_handler = NULL;
224}
225
226/**
227 * @addtogroup Ecore_FB_Group Ecore_FB - Frame buffer convenience functions.
228 *
229 * @{
230 */
231
232/**
233 * @brief Set a callback called when a virtual terminal is gained.
234 *
235 * @param func The callback called when vt is gained.
236 * @param data The data to pass to the callback.
237 *
238 * This function sets the callback @p func which will be called when a
239 * virtual terminal is gained (for example you press Ctrl-Alt-F1 to go
240 * to vt1 and your app was using vt1). @p data will be pass to @p func if
241 * the callback is called.
242 */
243EAPI void
244ecore_fb_callback_gain_set(void (*func) (void *data), void *data)
245{
246 _ecore_fb_func_fb_gain = func;
247 _ecore_fb_func_fb_gain_data = data;
248}
249
250/**
251 * @brief Set a callback called when a virtual terminal is lost.
252 *
253 * @param func The callback called when vt is lost.
254 * @param data The data to pass to the callback.
255 *
256 * This function sets the callback @p func which will be called when a
257 * virtual terminal is lost (someone wants the tv from you and you
258 * want to give up that vt). @p data will be pass to @p func if the
259 * callback is called.
260 */
261EAPI void
262ecore_fb_callback_lose_set(void (*func) (void *data), void *data)
263{
264 _ecore_fb_func_fb_lost = func;
265 _ecore_fb_func_fb_lost_data = data;
266
267}
268
269/**
270 * @}
271 */
272
273/*
274 * This filter should take into account that the MOUSE_MOVE event can be
275 * triggered by a mouse, not just a touchscreen device, so you can't discard
276 * them (only those generated by a device that sends events with absolute
277 * coordinates).
278
279typedef struct _Ecore_Fb_Filter_Data Ecore_Fb_Filter_Data;
280
281struct _Ecore_Fb_Filter_Data
282{
283 int last_event_type;
284};
285
286static void *
287_ecore_fb_event_filter_start(void *data __UNUSED__)
288{
289 Ecore_Fb_Filter_Data *filter_data;
290
291 filter_data = calloc(1, sizeof(Ecore_Fb_Filter_Data));
292 return filter_data;
293}
294
295static Eina_Bool
296_ecore_fb_event_filter_filter(void *data __UNUSED__, void *loop_data,int type, void *event __UNUSED__)
297{
298 Ecore_Fb_Filter_Data *filter_data;
299
300 filter_data = loop_data;
301 if (!filter_data) return EINA_TRUE;
302 if (type == ECORE_EVENT_MOUSE_MOVE)
303 {
304 if ((filter_data->last_event_type) == ECORE_EVENT_MOUSE_MOVE)
305 {
306 filter_data->last_event_type = type;
307 return EINA_FALSE;
308 }
309 }
310 filter_data->last_event_type = type;
311 return EINA_TRUE;
312}
313
314static void
315_ecore_fb_event_filter_end(void *data __UNUSED__, void *loop_data)
316{
317 Ecore_Fb_Filter_Data *filter_data;
318
319 filter_data = loop_data;
320 if (filter_data) free(filter_data);
321}
322*/