diff options
author | Tectu <joel@unormal.org> | 2012-07-23 03:39:36 +0200 |
---|---|---|
committer | Tectu <joel@unormal.org> | 2012-07-23 03:39:36 +0200 |
commit | 586468a7c9268b585f35128c96908e6e21a399d6 (patch) | |
tree | 577b891b490405d553a58e0b0645d5040839da5e /glcd | |
parent | 0da58f180c9d6e4152223c4cc06ace7ec5369185 (diff) | |
download | uGFX-586468a7c9268b585f35128c96908e6e21a399d6.tar.gz uGFX-586468a7c9268b585f35128c96908e6e21a399d6.tar.bz2 uGFX-586468a7c9268b585f35128c96908e6e21a399d6.zip |
implemented lcdGetPixelColor()
Diffstat (limited to 'glcd')
-rw-r--r-- | glcd/glcd.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/glcd/glcd.c b/glcd/glcd.c index a419b7f2..80f7a722 100644 --- a/glcd/glcd.c +++ b/glcd/glcd.c @@ -11,6 +11,7 @@ static WORKING_AREA(waGLCDWorkerThread, GLCD_WORKER_SIZE); static msg_t ThreadGLCDWorker(void *arg) { (void)arg; Thread *p; + uint16_t ret; chRegSetThreadName("GLCDWorker"); @@ -68,8 +69,8 @@ static msg_t ThreadGLCDWorker(void *arg) { } case GLCD_GET_PIXEL_COLOR: { - /* ToDo */ - + EMSG(glcd_msg_get_pixel_color); + ret = lld_lcdGetPixelColor(emsg->x, emsg->y); msg->result = GLCD_DONE; break; } @@ -109,7 +110,8 @@ static msg_t ThreadGLCDWorker(void *arg) { } /* Done, release msg again. */ - chMsgRelease(p, 0); + chMsgRelease(p, ret); + ret = 0; } return 0; @@ -213,11 +215,7 @@ uint16_t lcdGetPixelColor(uint16_t x, uint16_t y) { msg.y = y; msg.color = &result; - chMsgSend(workerThread, (msg_t)&msg); - - while(msg.result != GLCD_DONE); - - return result; + return chMsgSend(workerThread, (msg_t)&msg); } void lcdDrawPixel(uint16_t x, uint16_t y, uint16_t color) { |