From 07f34835358ef65de310934ae726b66c7ca46f68 Mon Sep 17 00:00:00 2001 From: Andrew Hannam Date: Thu, 6 Dec 2012 18:45:54 +1000 Subject: Restructure Create global include file called gfx.h which knows about sub-system dependancies. Deprecate Touchscreen (GINPUT touch is now working properly) Merge Graph into GWIN Change directory structure to reflect sub-system structure Many small bugs fixed Split Nokia6610 gdisp driver into GE8 and GE12 controller versions Fixed broken demos. GFX sub-systems are now clearly defined and new ones should be much easier to add. --- demos/applications/notepad/gfxconf.h | 69 ++++++++++++++++++++++++++++++++++++ demos/applications/notepad/main.c | 39 +++++++------------- 2 files changed, 81 insertions(+), 27 deletions(-) create mode 100644 demos/applications/notepad/gfxconf.h (limited to 'demos/applications/notepad') diff --git a/demos/applications/notepad/gfxconf.h b/demos/applications/notepad/gfxconf.h new file mode 100644 index 00000000..cbdb7b95 --- /dev/null +++ b/demos/applications/notepad/gfxconf.h @@ -0,0 +1,69 @@ +/** + * This file has a different license to the rest of the GFX system. + * You can copy, modify and distribute this file as you see fit. + * You do not need to publish your source modifications to this file. + * The only thing you are not permitted to do is to relicense it + * under a different license. + */ + +#ifndef _GFXCONF_H +#define _GFXCONF_H + +/* GFX sub-systems to turn on */ +#define GFX_USE_GDISP TRUE +#define GFX_USE_GWIN FALSE +#define GFX_USE_GEVENT TRUE +#define GFX_USE_GTIMER TRUE +#define GFX_USE_GINPUT TRUE + +/* Features for the GDISP sub-system. */ +#define GDISP_NEED_VALIDATION TRUE +#define GDISP_NEED_CLIP TRUE +#define GDISP_NEED_TEXT TRUE +#define GDISP_NEED_CIRCLE TRUE +#define GDISP_NEED_ELLIPSE FALSE +#define GDISP_NEED_ARC FALSE +#define GDISP_NEED_SCROLL FALSE +#define GDISP_NEED_PIXELREAD FALSE +#define GDISP_NEED_CONTROL FALSE +#define GDISP_NEED_MULTITHREAD FALSE +#define GDISP_NEED_ASYNC FALSE +#define GDISP_NEED_MSGAPI FALSE + +/* Features for the GWIN sub-system. */ +#define GWIN_NEED_BUTTON FALSE +#define GWIN_NEED_CONSOLE FALSE +#define GWIN_NEED_GRAPH FALSE + +/* Features for the GEVENT sub-system. */ +#define GEVENT_ASSERT_NO_RESOURCE FALSE + +/* Features for the GTIMER sub-system. */ +/* NONE */ + +/* Features for the GINPUT sub-system. */ +#define GINPUT_NEED_MOUSE TRUE +#define GINPUT_NEED_KEYBOARD FALSE +#define GINPUT_NEED_TOGGLE FALSE +#define GINPUT_NEED_DIAL FALSE + +/* Optional Parameters for various sub-systems */ +/* + #define GDISP_MAX_FONT_HEIGHT 16 + #define GEVENT_MAXIMUM_SIZE 32 + #define GEVENT_MAX_SOURCE_LISTENERS 32 + #define GTIMER_THREAD_WORKAREA_SIZE 512 +*/ + +/* Optional Low Level Driver Definitions */ +/* + #define GDISP_USE_CUSTOM_BOARD FALSE + #define GDISP_SCREEN_WIDTH 320 + #define GDISP_SCREEN_HEIGHT 240 + #define GDISP_USE_FSMC + #define GDISP_USE_GPIO + #define GDISP_VMT_NAME1(x) x##YourDriver1 + #define GDISP_VMT_NAME2(x) x##YourDriver2 +*/ + +#endif /* _GFXCONF_H */ diff --git a/demos/applications/notepad/main.c b/demos/applications/notepad/main.c index 7fec864f..e1b0e333 100644 --- a/demos/applications/notepad/main.c +++ b/demos/applications/notepad/main.c @@ -20,8 +20,7 @@ #include "ch.h" #include "hal.h" -#include "gdisp.h" -#include "touchscreen.h" +#include "gfx.h" #define COLOR_SIZE 20 #define PEN_SIZE 20 @@ -36,25 +35,9 @@ #define DRAW_AREA(x, y) (x >= PEN_SIZE + OFFSET + 3 && x <= gdispGetWidth() && \ y >= COLOR_SIZE + OFFSET + 3 && y <= gdispGetHeight()) -static const SPIConfig spicfg = { - NULL, - TP_CS_PORT, - TP_CS, - /* SPI_CR1_BR_2 | */ SPI_CR1_BR_1 | SPI_CR1_BR_0, -}; - -TouchscreenDriver TOUCHPADD1 = { - &SPID1, - &spicfg, - TP_IRQ_PORT, - TP_IRQ, - TRUE -}; - void drawScreen(void) { char *msg = "ChibiOS/GFX"; - gdispSetOrientation(GDISP_ROTATE_90); gdispClear(White); gdispDrawString(gdispGetWidth()-gdispGetStringWidth(msg, &fontUI2Double)-3, 3, msg, &fontUI2Double, Black); @@ -74,8 +57,9 @@ void drawScreen(void) { gdispDrawString(OFFSET * 2, DRAW_PEN(5), "5", &fontLargeNumbers, Black); } +GEventMouse ev; + int main(void) { - volatile uint16_t x, y; color_t color = Black; uint16_t pen = 0; @@ -83,16 +67,17 @@ int main(void) { chSysInit(); gdispInit(); - tsInit(&TOUCHPADD1); + ginputGetMouse(0); drawScreen(); while (TRUE) { - x = tsReadX(); - y = tsReadY(); + ginputGetMouseStatus(0, &ev); + if (!(ev->current_buttons & GINPUT_MOUSE_BTN_LEFT)) + continue; /* inside color box ? */ - if(y >= OFFSET && y <= COLOR_SIZE) { + if(ev->y >= OFFSET && ev->y <= COLOR_SIZE) { if(GET_COLOR(0)) color = Black; else if(GET_COLOR(1)) color = Red; else if(GET_COLOR(2)) color = Yellow; @@ -101,7 +86,7 @@ int main(void) { else if(GET_COLOR(5)) color = White; /* inside pen box ? */ - } else if(x >= OFFSET && x <= PEN_SIZE) { + } else if(ev->x >= OFFSET && ev->x <= PEN_SIZE) { if(GET_PEN(1)) pen = 0; else if(GET_PEN(2)) pen = 1; else if(GET_PEN(3)) pen = 2; @@ -109,11 +94,11 @@ int main(void) { else if(GET_PEN(5)) pen = 4; /* inside drawing area ? */ - } else if(DRAW_AREA(x, y)) { + } else if(DRAW_AREA(ev->x, ev->y)) { if(pen == 0) - gdispDrawPixel(x, y, color); + gdispDrawPixel(ev->x, ev->y, color); else - gdispFillCircle(x, y, pen, color); + gdispFillCircle(ev->x, ev->y, pen, color); } } } -- cgit v1.2.3