aboutsummaryrefslogtreecommitdiffstats
path: root/drv_picoLCDGraphic.c
diff options
context:
space:
mode:
Diffstat (limited to 'drv_picoLCDGraphic.c')
-rw-r--r--drv_picoLCDGraphic.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drv_picoLCDGraphic.c b/drv_picoLCDGraphic.c
index afbc61f..f136a79 100644
--- a/drv_picoLCDGraphic.c
+++ b/drv_picoLCDGraphic.c
@@ -92,6 +92,10 @@ static int dirty = 1;
/* timer for display redraw (set to zero for "direct updates") */
static int update = 0;
+/* USB read timeout in ms (the picoLCD 256x64 times out on every read
+ unless a key has been pressed!) */
+static int read_timeout = 0;
+
static char Name[] = "picoLCDGraphic";
static unsigned char *pLG_framebuffer;
@@ -178,7 +182,7 @@ static int drv_pLG_open(void)
static int drv_pLG_read(unsigned char *data, int size)
{
- return usb_interrupt_read(lcd, USB_ENDPOINT_IN + 1, (char *) data, size, 1000);
+ return usb_interrupt_read(lcd, USB_ENDPOINT_IN + 1, (char *) data, size, read_timeout);
}
@@ -465,6 +469,10 @@ static int drv_pLG_start(const char *section, const int quiet)
/* set display redraw interval (set to zero for "direct updates") */
cfg_number(section, "update", 200, 0, -1, &update);
+ /* USB read timeout in ms (the picoLCD 256x64 times out on every
+ read unless a key has been pressed!) */
+ cfg_number(section, "Timeout", 5, 0, -1, &read_timeout);
+
s = cfg_get(section, "Size", NULL);
if (s == NULL || *s == '\0') {
error("%s: no '%s.Size' entry from %s", Name, section, cfg_source());