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,
/* new stuff at the end, sort into place next time
the API gets incompatible */
button_status_wdata,
};
int plugin_load(const char* plugin, const void* parameter)

View file

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

View file

@ -86,6 +86,7 @@ static int button_read(void);
#ifdef HAVE_TOUCHSCREEN
static int last_touchscreen_touch;
static int lastdata = 0;
#endif
#if defined(HAVE_HEADPHONE_DETECTION)
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);
lastdata = data;
}
#ifdef HAVE_ADJUSTABLE_CPU_FREQ
@ -575,6 +577,14 @@ int button_status(void)
return lastbtn;
}
#ifdef HAVE_BUTTON_DATA
int button_status_wdata(int *pdata)
{
*pdata = lastdata;
return lastbtn;
}
#endif
void button_clear_queue(void)
{
queue_clear(&button_queue);

View file

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