parent
40843fe689
commit
ebdbf7c6ec
|
@ -8,6 +8,7 @@
|
||||||
#include "Ecore_Evas.h"
|
#include "Ecore_Evas.h"
|
||||||
#ifdef BUILD_ECORE_EVAS_FB
|
#ifdef BUILD_ECORE_EVAS_FB
|
||||||
#include "Ecore_Fb.h"
|
#include "Ecore_Fb.h"
|
||||||
|
#include "ecore_fb_private.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef BUILD_ECORE_EVAS_FB
|
#ifdef BUILD_ECORE_EVAS_FB
|
||||||
|
@ -314,6 +315,16 @@ _ecore_evas_fb_init(int w, int h)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!mouse_handled)
|
||||||
|
{
|
||||||
|
if (ecore_fb_ts_init())
|
||||||
|
{
|
||||||
|
ecore_evas_event_handlers[2] = ecore_event_handler_add(ECORE_FB_EVENT_MOUSE_BUTTON_DOWN, _ecore_evas_event_mouse_button_down, NULL);
|
||||||
|
ecore_evas_event_handlers[3] = ecore_event_handler_add(ECORE_FB_EVENT_MOUSE_BUTTON_UP, _ecore_evas_event_mouse_button_up, NULL);
|
||||||
|
ecore_evas_event_handlers[4] = ecore_event_handler_add(ECORE_FB_EVENT_MOUSE_MOVE, _ecore_evas_event_mouse_move, NULL);
|
||||||
|
mouse_handled = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
return _ecore_evas_init_count;
|
return _ecore_evas_init_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -517,6 +528,7 @@ _ecore_evas_fb_shutdown(void)
|
||||||
ecore_idle_enterer_del(ecore_evas_idle_enterer);
|
ecore_idle_enterer_del(ecore_evas_idle_enterer);
|
||||||
ecore_evas_idle_enterer = NULL;
|
ecore_evas_idle_enterer = NULL;
|
||||||
if (_ecore_evas_fps_debug) _ecore_evas_fps_debug_shutdown();
|
if (_ecore_evas_fps_debug) _ecore_evas_fps_debug_shutdown();
|
||||||
|
ecore_fb_ts_shutdown();
|
||||||
}
|
}
|
||||||
if (_ecore_evas_init_count < 0) _ecore_evas_init_count = 0;
|
if (_ecore_evas_init_count < 0) _ecore_evas_init_count = 0;
|
||||||
return _ecore_evas_init_count;
|
return _ecore_evas_init_count;
|
||||||
|
|
|
@ -43,16 +43,15 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
typedef struct _Ecore_Fb_Input_Device Ecore_Fb_Input_Device; /* an input device handler */
|
typedef struct _Ecore_Fb_Input_Device Ecore_Fb_Input_Device; /* an input device handler */
|
||||||
|
|
||||||
/* device capabilities */
|
/* device capabilities */
|
||||||
enum _Ecore_Fb_Input_Device_Cap
|
enum _Ecore_Fb_Input_Device_Cap
|
||||||
{
|
{
|
||||||
ECORE_FB_INPUT_DEVICE_CAP_NONE = 0x00000000,
|
ECORE_FB_INPUT_DEVICE_CAP_NONE = 0x00000000,
|
||||||
ECORE_FB_INPUT_DEVICE_CAP_RELATIVE = 0x00000001,
|
ECORE_FB_INPUT_DEVICE_CAP_RELATIVE = 0x00000001,
|
||||||
ECORE_FB_INPUT_DEVICE_CAP_ABSOLUTE = 0x00000002,
|
ECORE_FB_INPUT_DEVICE_CAP_ABSOLUTE = 0x00000002,
|
||||||
ECORE_FB_INPUT_DEVICE_CAP_KEYS_OR_BUTTONS = 0x00000004
|
ECORE_FB_INPUT_DEVICE_CAP_KEYS_OR_BUTTONS = 0x00000004
|
||||||
};
|
};
|
||||||
typedef enum _Ecore_Fb_Input_Device_Cap Ecore_Fb_Input_Device_Cap;
|
typedef enum _Ecore_Fb_Input_Device_Cap Ecore_Fb_Input_Device_Cap;
|
||||||
|
|
||||||
|
@ -72,52 +71,53 @@ typedef struct _Ecore_Fb_Event_Mouse_Wheel Ecore_Fb_Event_Mouse_Wheel; /**
|
||||||
|
|
||||||
struct _Ecore_Fb_Event_Key_Down /** FB Key Down event */
|
struct _Ecore_Fb_Event_Key_Down /** FB Key Down event */
|
||||||
{
|
{
|
||||||
Ecore_Fb_Input_Device *dev; /**< The device associated with the event */
|
Ecore_Fb_Input_Device *dev; /**< The device associated with the event */
|
||||||
char *keyname; /**< The name of the key that was pressed */
|
char *keyname; /**< The name of the key that was pressed */
|
||||||
char *keysymbol; /**< The logical symbol of the key that was pressed */
|
char *keysymbol; /**< The logical symbol of the key that was pressed */
|
||||||
char *key_compose; /**< The UTF-8 string conversion if any */
|
char *key_compose; /**< The UTF-8 string conversion if any */
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _Ecore_Fb_Event_Key_Up /** FB Key Up event */
|
struct _Ecore_Fb_Event_Key_Up /** FB Key Up event */
|
||||||
{
|
{
|
||||||
Ecore_Fb_Input_Device *dev; /**< The device associated with the event */
|
Ecore_Fb_Input_Device *dev; /**< The device associated with the event */
|
||||||
char *keyname; /**< The name of the key that was released */
|
char *keyname; /**< The name of the key that was released */
|
||||||
char *keysymbol; /**< The logical symbol of the key that was pressed */
|
char *keysymbol; /**< The logical symbol of the key that was pressed */
|
||||||
char *key_compose; /**< The UTF-8 string conversion if any */
|
char *key_compose; /**< The UTF-8 string conversion if any */
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _Ecore_Fb_Event_Mouse_Button_Down /** FB Mouse Down event */
|
struct _Ecore_Fb_Event_Mouse_Button_Down /** FB Mouse Down event */
|
||||||
{
|
{
|
||||||
Ecore_Fb_Input_Device *dev; /**< The device associated with the event */
|
Ecore_Fb_Input_Device *dev; /**< The device associated with the event */
|
||||||
int button; /**< Mouse button that was pressed (1 - 32) */
|
int button; /**< Mouse button that was pressed (1 - 32) */
|
||||||
int x; /**< Mouse co-ordinates when mouse button was pressed */
|
int x; /**< Mouse co-ordinates when mouse button was pressed */
|
||||||
int y; /**< Mouse co-ordinates when mouse button was pressed */
|
int y; /**< Mouse co-ordinates when mouse button was pressed */
|
||||||
int double_click : 1; /**< Set if click was a double click */
|
int double_click : 1; /**< Set if click was a double click */
|
||||||
int triple_click : 1; /**< Set if click was a triple click */
|
int triple_click : 1; /**< Set if click was a triple click */
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _Ecore_Fb_Event_Mouse_Button_Up /** FB Mouse Up event */
|
struct _Ecore_Fb_Event_Mouse_Button_Up /** FB Mouse Up event */
|
||||||
{
|
{
|
||||||
Ecore_Fb_Input_Device *dev; /**< The device associated with the event */
|
Ecore_Fb_Input_Device *dev; /**< The device associated with the event */
|
||||||
int button; /**< Mouse button that was released (1 - 32) */
|
int button; /**< Mouse button that was released (1 - 32) */
|
||||||
int x; /**< Mouse co-ordinates when mouse button was raised */
|
int x; /**< Mouse co-ordinates when mouse button was raised */
|
||||||
int y; /**< Mouse co-ordinates when mouse button was raised */
|
int y; /**< Mouse co-ordinates when mouse button was raised */
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _Ecore_Fb_Event_Mouse_Move /** FB Mouse Move event */
|
struct _Ecore_Fb_Event_Mouse_Move /** FB Mouse Move event */
|
||||||
{
|
{
|
||||||
Ecore_Fb_Input_Device *dev; /**< The device associated with the event */
|
Ecore_Fb_Input_Device *dev; /**< The device associated with the event */
|
||||||
int x; /**< Mouse co-ordinates where the mouse cursor moved to */
|
int x; /**< Mouse co-ordinates where the mouse cursor moved to */
|
||||||
int y; /**< Mouse co-ordinates where the mouse cursor moved to */
|
int y; /**< Mouse co-ordinates where the mouse cursor moved to */
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _Ecore_Fb_Event_Mouse_Wheel /** FB Mouse Wheel event */
|
struct _Ecore_Fb_Event_Mouse_Wheel /** FB Mouse Wheel event */
|
||||||
{
|
{
|
||||||
Ecore_Fb_Input_Device *dev;
|
Ecore_Fb_Input_Device *dev;
|
||||||
int x,y;
|
int x,y;
|
||||||
int direction; /* 0 = vertical, 1 = horizontal */
|
int direction; /* 0 = vertical, 1 = horizontal */
|
||||||
int wheel; /* value 1 (left/up), -1 (right/down) */
|
int wheel; /* value 1 (left/up), -1 (right/down) */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ecore_fb_vt.c */
|
/* ecore_fb_vt.c */
|
||||||
EAPI void ecore_fb_callback_gain_set(void (*func) (void *data), void *data);
|
EAPI void ecore_fb_callback_gain_set(void (*func) (void *data), void *data);
|
||||||
EAPI void ecore_fb_callback_lose_set(void (*func) (void *data), void *data);
|
EAPI void ecore_fb_callback_lose_set(void (*func) (void *data), void *data);
|
||||||
|
@ -134,27 +134,10 @@ EAPI double ecore_fb_input_threshold_click_get(Ecore_F
|
||||||
EAPI int ecore_fb_init(const char *name);
|
EAPI int ecore_fb_init(const char *name);
|
||||||
EAPI int ecore_fb_shutdown(void);
|
EAPI int ecore_fb_shutdown(void);
|
||||||
EAPI void ecore_fb_size_get(int *w, int *h);
|
EAPI void ecore_fb_size_get(int *w, int *h);
|
||||||
|
|
||||||
/* DEPRECATED */
|
|
||||||
#if 0
|
|
||||||
EAPI void ecore_fb_touch_screen_calibrate_set(int xscale, int xtrans, int yscale, int ytrans, int xyswap);
|
EAPI void ecore_fb_touch_screen_calibrate_set(int xscale, int xtrans, int yscale, int ytrans, int xyswap);
|
||||||
EAPI void ecore_fb_touch_screen_calibrate_get(int *xscale, int *xtrans, int *yscale, int *ytrans, int *xyswap);
|
EAPI void ecore_fb_touch_screen_calibrate_get(int *xscale, int *xtrans, int *yscale, int *ytrans, int *xyswap);
|
||||||
|
|
||||||
EAPI void ecore_fb_backlight_set(int on);
|
|
||||||
EAPI int ecore_fb_backlight_get(void);
|
|
||||||
|
|
||||||
EAPI void ecore_fb_backlight_brightness_set(double br);
|
|
||||||
EAPI double ecore_fb_backlight_brightness_get(void);
|
|
||||||
|
|
||||||
EAPI void ecore_fb_led_set(int on);
|
|
||||||
EAPI void ecore_fb_led_blink_set(double speed);
|
|
||||||
|
|
||||||
EAPI void ecore_fb_contrast_set(double cr);
|
|
||||||
EAPI double ecore_fb_contrast_get(void);
|
|
||||||
|
|
||||||
EAPI double ecore_fb_light_sensor_get(void);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -14,9 +14,9 @@ libecore_fb_la_SOURCES = \
|
||||||
ecore_fb.c \
|
ecore_fb.c \
|
||||||
ecore_fb_vt.c \
|
ecore_fb_vt.c \
|
||||||
ecore_fb_li.c \
|
ecore_fb_li.c \
|
||||||
|
ecore_fb_ts.c \
|
||||||
ecore_fb_private.h
|
ecore_fb_private.h
|
||||||
# deprecated sources (might not compile):
|
# deprecated sources (might not compile):
|
||||||
# ecore_fb_ts.c
|
|
||||||
# ecore_fb_kbd.c
|
# ecore_fb_kbd.c
|
||||||
# ecore_fb_ps2.c
|
# ecore_fb_ps2.c
|
||||||
|
|
||||||
|
|
|
@ -63,11 +63,14 @@ struct _Ecore_Fb_Input_Device
|
||||||
} keyboard;
|
} keyboard;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* ecore_fb_ts.c */
|
||||||
|
EAPI int ecore_fb_ts_init(void);
|
||||||
|
EAPI void ecore_fb_ts_shutdown(void);
|
||||||
|
|
||||||
/* ecore_fb_vt.c */
|
/* ecore_fb_vt.c */
|
||||||
int ecore_fb_vt_init(void);
|
int ecore_fb_vt_init(void);
|
||||||
void ecore_fb_vt_shutdown(void);
|
void ecore_fb_vt_shutdown(void);
|
||||||
|
|
||||||
#if 0
|
|
||||||
/* hacks to stop people NEEDING #include <linux/h3600_ts.h> */
|
/* hacks to stop people NEEDING #include <linux/h3600_ts.h> */
|
||||||
#ifndef TS_SET_CAL
|
#ifndef TS_SET_CAL
|
||||||
#define TS_SET_CAL 0x4014660b
|
#define TS_SET_CAL 0x4014660b
|
||||||
|
@ -75,24 +78,5 @@ void ecore_fb_vt_shutdown(void);
|
||||||
#ifndef TS_GET_CAL
|
#ifndef TS_GET_CAL
|
||||||
#define TS_GET_CAL 0x8014660a
|
#define TS_GET_CAL 0x8014660a
|
||||||
#endif
|
#endif
|
||||||
#ifndef TS_SET_BACKLIGHT
|
|
||||||
#define TS_SET_BACKLIGHT 0x40086614
|
|
||||||
#endif
|
|
||||||
#ifndef TS_GET_BACKLIGHT
|
|
||||||
#define TS_GET_BACKLIGHT 0x80086614
|
|
||||||
#endif
|
|
||||||
#ifndef LED_ON
|
|
||||||
#define LED_ON 0x40046605
|
|
||||||
#endif
|
|
||||||
#ifndef TS_SET_CONTRAST
|
|
||||||
#define TS_SET_CONTRAST 0x40046615
|
|
||||||
#endif
|
|
||||||
#ifndef TS_GET_CONTRAST
|
|
||||||
#define TS_GET_CONTRAST 0x80046615
|
|
||||||
#endif
|
|
||||||
#ifndef FLITE_ON
|
|
||||||
#define FLITE_ON 0x40046607
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
#include "Ecore_Fb.h"
|
||||||
|
#include "ecore_fb_private.h"
|
||||||
|
#include "config.h"
|
||||||
#ifdef HAVE_TSLIB
|
#ifdef HAVE_TSLIB
|
||||||
#include <tslib.h>
|
#include <tslib.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
@ -15,7 +18,6 @@ static int _ecore_fb_ts_fd = 0;
|
||||||
static int _ecore_fb_ts_event_byte_count = 0;
|
static int _ecore_fb_ts_event_byte_count = 0;
|
||||||
static int _ecore_fb_ts_apply_cal = 0;
|
static int _ecore_fb_ts_apply_cal = 0;
|
||||||
static Ecore_Fb_Ts_Event _ecore_fb_ts_event;
|
static Ecore_Fb_Ts_Event _ecore_fb_ts_event;
|
||||||
static Ecore_Fb_Ts_Calibrate _ecore_fb_ts_cal = {1,1,0,0,0};
|
|
||||||
static Ecore_Fd_Handler *_ecore_fb_ts_fd_handler_handle = NULL;
|
static Ecore_Fd_Handler *_ecore_fb_ts_fd_handler_handle = NULL;
|
||||||
|
|
||||||
#ifdef HAVE_TSLIB
|
#ifdef HAVE_TSLIB
|
||||||
|
@ -23,7 +25,7 @@ struct tsdev *_ecore_fb_tslib_tsdev = NULL;
|
||||||
struct ts_sample _ecore_fb_tslib_event;
|
struct ts_sample _ecore_fb_tslib_event;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static double _ecore_fb_double_click_time = 0.25;
|
||||||
|
|
||||||
struct _Ecore_Fb_Ts_Event
|
struct _Ecore_Fb_Ts_Event
|
||||||
{
|
{
|
||||||
|
@ -68,10 +70,10 @@ struct _Ecore_Fb_Ts_Flite
|
||||||
unsigned char brightness;
|
unsigned char brightness;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
EAPI int
|
||||||
int
|
|
||||||
ecore_fb_ts_init(void)
|
ecore_fb_ts_init(void)
|
||||||
{
|
{
|
||||||
|
int prev_flags;
|
||||||
#ifdef HAVE_TSLIB
|
#ifdef HAVE_TSLIB
|
||||||
char *tslib_tsdevice = NULL;
|
char *tslib_tsdevice = NULL;
|
||||||
if ( ( tslib_tsdevice = getenv("TSLIB_TSDEVICE") ) != NULL )
|
if ( ( tslib_tsdevice = getenv("TSLIB_TSDEVICE") ) != NULL )
|
||||||
|
@ -119,7 +121,7 @@ ecore_fb_ts_init(void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
EAPI void
|
||||||
ecore_fb_ts_shutdown(void)
|
ecore_fb_ts_shutdown(void)
|
||||||
{
|
{
|
||||||
if (_ecore_fb_ts_fd >= 0) close(_ecore_fb_ts_fd);
|
if (_ecore_fb_ts_fd >= 0) close(_ecore_fb_ts_fd);
|
||||||
|
@ -134,8 +136,8 @@ ecore_fb_ts_shutdown(void)
|
||||||
*
|
*
|
||||||
* Functions that calibrate the screen.
|
* Functions that calibrate the screen.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Calibrates the touschreen using the given parameters.
|
* Calibrates the touschreen using the given parameters.
|
||||||
* @param xscale X scaling, where 256 = 1.0
|
* @param xscale X scaling, where 256 = 1.0
|
||||||
|
@ -160,6 +162,7 @@ ecore_fb_touch_screen_calibrate_set(int xscale, int xtrans, int yscale, int ytra
|
||||||
{
|
{
|
||||||
_ecore_fb_ts_cal = cal;
|
_ecore_fb_ts_cal = cal;
|
||||||
_ecore_fb_ts_apply_cal = 1;
|
_ecore_fb_ts_apply_cal = 1;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -183,6 +186,7 @@ ecore_fb_touch_screen_calibrate_get(int *xscale, int *xtrans, int *yscale, int *
|
||||||
{
|
{
|
||||||
if (ioctl(_ecore_fb_ts_fd, TS_GET_CAL, (void *)&cal))
|
if (ioctl(_ecore_fb_ts_fd, TS_GET_CAL, (void *)&cal))
|
||||||
_ecore_fb_ts_cal = cal;
|
_ecore_fb_ts_cal = cal;
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
cal = _ecore_fb_ts_cal;
|
cal = _ecore_fb_ts_cal;
|
||||||
|
@ -193,179 +197,6 @@ ecore_fb_touch_screen_calibrate_get(int *xscale, int *xtrans, int *yscale, int *
|
||||||
if (xyswap) *xyswap = cal.xyswap;
|
if (xyswap) *xyswap = cal.xyswap;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @defgroup Ecore_FB_Backlight_Group Framebuffer Backlight Functions
|
|
||||||
*
|
|
||||||
* Functions that deal with the backlight of a framebuffer's screen.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Turns on or off the backlight.
|
|
||||||
* @param on @c 1 to turn the backlight on. @c 0 to turn it off.
|
|
||||||
* @ingroup Ecore_FB_Backlight_Group
|
|
||||||
*/
|
|
||||||
EAPI void
|
|
||||||
ecore_fb_backlight_set(int on)
|
|
||||||
{
|
|
||||||
Ecore_Fb_Ts_Backlight bl;
|
|
||||||
|
|
||||||
if (_ecore_fb_ts_fd < 0) return;
|
|
||||||
ioctl(_ecore_fb_ts_fd, TS_GET_BACKLIGHT, &bl);
|
|
||||||
bl.on = on;
|
|
||||||
ioctl(_ecore_fb_ts_fd, TS_SET_BACKLIGHT, &bl);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Retrieves the backlight state.
|
|
||||||
* @return Whether the backlight is on.
|
|
||||||
* @ingroup Ecore_FB_Backlight_Group
|
|
||||||
*/
|
|
||||||
EAPI int
|
|
||||||
ecore_fb_backlight_get(void)
|
|
||||||
{
|
|
||||||
Ecore_Fb_Ts_Backlight bl;
|
|
||||||
|
|
||||||
if (_ecore_fb_ts_fd < 0) return 1;
|
|
||||||
ioctl(_ecore_fb_ts_fd, TS_GET_BACKLIGHT, &bl);
|
|
||||||
return bl.on;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the backlight brightness.
|
|
||||||
* @param br Brightness between 0.0 to 1.0, where 0.0 is darkest and 1.0
|
|
||||||
* is brightest.
|
|
||||||
* @ingroup Ecore_FB_Backlight_Group
|
|
||||||
*/
|
|
||||||
EAPI void
|
|
||||||
ecore_fb_backlight_brightness_set(double br)
|
|
||||||
{
|
|
||||||
Ecore_Fb_Ts_Backlight bl;
|
|
||||||
int val;
|
|
||||||
|
|
||||||
if (br < 0) br = 0;
|
|
||||||
if (br > 1) br = 1;
|
|
||||||
val = (int)(255.0 * br);
|
|
||||||
ioctl(_ecore_fb_ts_fd, TS_GET_BACKLIGHT, &bl);
|
|
||||||
bl.brightness = val;
|
|
||||||
ioctl(_ecore_fb_ts_fd, TS_SET_BACKLIGHT, &bl);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Retrieves the backlight brightness.
|
|
||||||
* @return The current backlight brigntess, where 0.0 is the darkest and
|
|
||||||
* 1.0 is the brightest.
|
|
||||||
* @ingroup Ecore_FB_Backlight_Group
|
|
||||||
*/
|
|
||||||
EAPI double
|
|
||||||
ecore_fb_backlight_brightness_get(void)
|
|
||||||
{
|
|
||||||
Ecore_Fb_Ts_Backlight bl;
|
|
||||||
|
|
||||||
if (_ecore_fb_ts_fd < 0) return 1.0;
|
|
||||||
ioctl(_ecore_fb_ts_fd, TS_GET_BACKLIGHT, &bl);
|
|
||||||
return (double)bl.brightness / 255.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @defgroup Ecore_FB_LED_Group Framebuffer LED Functions
|
|
||||||
*
|
|
||||||
* Functions that deal with the light emitting diode connected to the
|
|
||||||
* current framebuffer.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets whether the current framebuffer's LED to the given state.
|
|
||||||
* @param on @c 1 to indicate the LED should be on, @c 0 if it should be off.
|
|
||||||
* @ingroup Ecore_FB_LED_Group
|
|
||||||
*/
|
|
||||||
EAPI void
|
|
||||||
ecore_fb_led_set(int on)
|
|
||||||
{
|
|
||||||
Ecore_Fb_Ts_Led led;
|
|
||||||
|
|
||||||
if (_ecore_fb_ts_fd < 0) return;
|
|
||||||
if (on) led.on = 1;
|
|
||||||
else led.on = 0;
|
|
||||||
ioctl(_ecore_fb_ts_fd, LED_ON, &led);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Makes the LED of the current framebuffer blink.
|
|
||||||
* @param speed Number to give the speed on the blink.
|
|
||||||
* @ingroup Ecore_FB_LED_Group
|
|
||||||
* @todo Documentation: Work out what speed the units are in.
|
|
||||||
*/
|
|
||||||
EAPI void
|
|
||||||
ecore_fb_led_blink_set(double speed)
|
|
||||||
{
|
|
||||||
Ecore_Fb_Ts_Led led;
|
|
||||||
|
|
||||||
if (_ecore_fb_ts_fd < 0) return;
|
|
||||||
led.on = 1;
|
|
||||||
led.on_time = (unsigned char)(speed * 10);
|
|
||||||
led.off_time = (unsigned char)(speed * 10);
|
|
||||||
led.blink_time = 255;
|
|
||||||
ioctl(_ecore_fb_ts_fd, LED_ON, &led);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @defgroup Ecore_FB_Contrast_Group Framebuffer Contrast Functions
|
|
||||||
*
|
|
||||||
* Values that set and retrieve the contrast of a framebuffer screen.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the contrast used by the framebuffer screen.
|
|
||||||
* @param cr Value between 0 and 1 that gives the new contrast of the screen.
|
|
||||||
* @ingroup Ecore_FB_Contrast_Group
|
|
||||||
*/
|
|
||||||
EAPI void
|
|
||||||
ecore_fb_contrast_set(double cr)
|
|
||||||
{
|
|
||||||
Ecore_Fb_Ts_Contrast ct;
|
|
||||||
int val;
|
|
||||||
|
|
||||||
if (cr < 0) cr = 0;
|
|
||||||
if (cr > 1) cr = 1;
|
|
||||||
val = (int)(255.0 * cr);
|
|
||||||
ct.contrast = val;
|
|
||||||
ioctl(_ecore_fb_ts_fd, TS_SET_CONTRAST, &ct);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Retrieves the contrast currently being used by the framebuffer screen.
|
|
||||||
* @return A value between 0 and 1 that represents the current contrast of the
|
|
||||||
* screen.
|
|
||||||
* @ingroup Ecore_FB_Contrast_Group
|
|
||||||
*/
|
|
||||||
EAPI double
|
|
||||||
ecore_fb_contrast_get(void)
|
|
||||||
{
|
|
||||||
Ecore_Fb_Ts_Contrast ct;
|
|
||||||
|
|
||||||
if (_ecore_fb_ts_fd < 0) return 1.0;
|
|
||||||
ioctl(_ecore_fb_ts_fd, TS_GET_CONTRAST, &ct);
|
|
||||||
return (double)ct.contrast / 255.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* To be documented.
|
|
||||||
*
|
|
||||||
* FIXME: To be fixed.
|
|
||||||
*/
|
|
||||||
EAPI double
|
|
||||||
ecore_fb_light_sensor_get(void)
|
|
||||||
{
|
|
||||||
Ecore_Fb_Ts_Flite fl;
|
|
||||||
|
|
||||||
if (_ecore_fb_ts_fd < 0) return 0.0;
|
|
||||||
fl.mode = 3;
|
|
||||||
fl.brightness = 0;
|
|
||||||
ioctl(_ecore_fb_ts_fd, FLITE_ON, &fl);
|
|
||||||
return (double)fl.brightness / 255.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
_ecore_fb_ts_fd_handler(void *data __UNUSED__, Ecore_Fd_Handler *fd_handler __UNUSED__)
|
_ecore_fb_ts_fd_handler(void *data __UNUSED__, Ecore_Fd_Handler *fd_handler __UNUSED__)
|
||||||
{
|
{
|
||||||
|
@ -383,18 +214,16 @@ _ecore_fb_ts_fd_handler(void *data __UNUSED__, Ecore_Fd_Handler *fd_handler __UN
|
||||||
int did_triple = 0;
|
int did_triple = 0;
|
||||||
|
|
||||||
#ifdef HAVE_TSLIB
|
#ifdef HAVE_TSLIB
|
||||||
if ( _ecore_fb_ts_apply_cal )
|
if (_ecore_fb_ts_apply_cal)
|
||||||
num = ts_read_raw( _ecore_fb_tslib_tsdev, &_ecore_fb_tslib_event, 1 );
|
num = ts_read_raw(_ecore_fb_tslib_tsdev, &_ecore_fb_tslib_event, 1);
|
||||||
else
|
else
|
||||||
num = ts_read( _ecore_fb_tslib_tsdev, &_ecore_fb_tslib_event, 1 );
|
num = ts_read(_ecore_fb_tslib_tsdev, &_ecore_fb_tslib_event, 1);
|
||||||
if ( num != 1 )
|
if (num != 1) return 1; /* no more samples at this time */
|
||||||
{
|
x = _ecore_fb_tslib_event.x;
|
||||||
return 1; /* no more samples at this time */
|
y = _ecore_fb_tslib_event.y;
|
||||||
}
|
pressure = _ecore_fb_tslib_event.pressure;
|
||||||
x = _ecore_fb_tslib_event.x;
|
v = 1; /* loop, there might be more samples */
|
||||||
y = _ecore_fb_tslib_event.y;
|
t = ecore_time_get();
|
||||||
pressure = _ecore_fb_tslib_event.pressure;
|
|
||||||
v = 1; /* loop, there might be more samples */
|
|
||||||
#else
|
#else
|
||||||
ptr = (char *)&(_ecore_fb_ts_event);
|
ptr = (char *)&(_ecore_fb_ts_event);
|
||||||
ptr += _ecore_fb_ts_event_byte_count;
|
ptr += _ecore_fb_ts_event_byte_count;
|
||||||
|
@ -403,9 +232,8 @@ _ecore_fb_ts_fd_handler(void *data __UNUSED__, Ecore_Fd_Handler *fd_handler __UN
|
||||||
if (v < 0) return 1;
|
if (v < 0) return 1;
|
||||||
_ecore_fb_ts_event_byte_count += v;
|
_ecore_fb_ts_event_byte_count += v;
|
||||||
if (v < num) return 1;
|
if (v < num) return 1;
|
||||||
t = ecore_time_get();
|
|
||||||
_ecore_fb_ts_event_byte_count = 0;
|
_ecore_fb_ts_event_byte_count = 0;
|
||||||
if (_ecore_fb_ts_apply_cal)
|
if (_ecore_fb_ts_apply_cal)
|
||||||
{
|
{
|
||||||
x = ((_ecore_fb_ts_cal.xscale * _ecore_fb_ts_event.x) >> 8) + _ecore_fb_ts_cal.xtrans;
|
x = ((_ecore_fb_ts_cal.xscale * _ecore_fb_ts_event.x) >> 8) + _ecore_fb_ts_cal.xtrans;
|
||||||
y = ((_ecore_fb_ts_cal.yscale * _ecore_fb_ts_event.y) >> 8) + _ecore_fb_ts_cal.ytrans;
|
y = ((_ecore_fb_ts_cal.yscale * _ecore_fb_ts_event.y) >> 8) + _ecore_fb_ts_cal.ytrans;
|
||||||
|
@ -440,7 +268,7 @@ _ecore_fb_ts_fd_handler(void *data __UNUSED__, Ecore_Fd_Handler *fd_handler __UN
|
||||||
e->x = x;
|
e->x = x;
|
||||||
e->y = y;
|
e->y = y;
|
||||||
e->button = 1;
|
e->button = 1;
|
||||||
if ((t - last_time) <= _ecore_fb_double_click_time)
|
if ((t - last_time) <= _ecore_fb_double_click_time)
|
||||||
e->double_click = 1;
|
e->double_click = 1;
|
||||||
if ((t - last_last_time) <= (2 * _ecore_fb_double_click_time))
|
if ((t - last_last_time) <= (2 * _ecore_fb_double_click_time))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue