1
0
Fork 0
forked from len0rd/rockbox

Button Driver: Add button_status support with data - allows for reading the /immediate/ value of the touchscreen

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22933 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Karl Kurbjun 2009-10-05 02:09:00 +00:00
parent 436776ebb8
commit fb50f46866
4 changed files with 17 additions and 0 deletions

View file

@ -668,6 +668,8 @@ static const struct plugin_api rockbox_api = {
appsversion, appsversion,
/* new stuff at the end, sort into place next time /* new stuff at the end, sort into place next time
the API gets incompatible */ the API gets incompatible */
button_status_wdata,
}; };
int plugin_load(const char* plugin, const void* parameter) int plugin_load(const char* plugin, const void* parameter)

View file

@ -836,6 +836,8 @@ struct plugin_api {
const char *appsversion; const char *appsversion;
/* new stuff at the end, sort into place next time /* new stuff at the end, sort into place next time
the API gets incompatible */ the API gets incompatible */
int (*button_status_wdata)(int *pdata);
}; };
/* plugin header */ /* plugin header */

View file

@ -86,6 +86,7 @@ static int button_read(void);
#ifdef HAVE_TOUCHSCREEN #ifdef HAVE_TOUCHSCREEN
static int last_touchscreen_touch; static int last_touchscreen_touch;
static int lastdata = 0;
#endif #endif
#if defined(HAVE_HEADPHONE_DETECTION) #if defined(HAVE_HEADPHONE_DETECTION)
static struct timeout hp_detect_timeout; /* Debouncer for headphone plug/unplug */ static struct timeout hp_detect_timeout; /* Debouncer for headphone plug/unplug */
@ -304,6 +305,7 @@ static void button_tick(void)
} }
} }
lastbtn = btn & ~(BUTTON_REL | BUTTON_REPEAT); lastbtn = btn & ~(BUTTON_REL | BUTTON_REPEAT);
lastdata = data;
} }
#ifdef HAVE_ADJUSTABLE_CPU_FREQ #ifdef HAVE_ADJUSTABLE_CPU_FREQ
@ -575,6 +577,14 @@ int button_status(void)
return lastbtn; return lastbtn;
} }
#ifdef HAVE_BUTTON_DATA
int button_status_wdata(int *pdata)
{
*pdata = lastdata;
return lastbtn;
}
#endif
void button_clear_queue(void) void button_clear_queue(void)
{ {
queue_clear(&button_queue); queue_clear(&button_queue);

View file

@ -37,6 +37,9 @@ long button_get (bool block);
long button_get_w_tmo(int ticks); long button_get_w_tmo(int ticks);
intptr_t button_get_data(void); intptr_t button_get_data(void);
int button_status(void); int button_status(void);
#ifdef HAVE_BUTTON_DATA
int button_status_wdata(int *pdata);
#endif
void button_clear_queue(void); void button_clear_queue(void);
#ifdef HAVE_LCD_BITMAP #ifdef HAVE_LCD_BITMAP
void button_set_flip(bool flip); /* turn 180 degrees */ void button_set_flip(bool flip); /* turn 180 degrees */