| version 1.7, 2004/04/05 09:45:06 | version 1.9, 2004/04/07 14:55:46 | 
| Line 6 | Line 6 | 
 | #include        "softkbd.h" | #include        "softkbd.h" | 
 | #include        "keystat.h" | #include        "keystat.h" | 
 |  |  | 
 |  |  | 
 | #define SOFTKEY_MENU    0xfe | #define SOFTKEY_MENU    0xfe | 
 | #define SOFTKEY_NC              0xff | #define SOFTKEY_NC              0xff | 
 |  |  | 
 | enum { |  | 
 | KBDDRAW_BMP             = 0x01, |  | 
 | KBDDRAW_LED             = 0x02 |  | 
 | }; |  | 
 |  |  | 
 | typedef struct { | typedef struct { | 
 | UINT8   key; | UINT8   key; | 
 | UINT8   key2; | UINT8   key2; | 
 | UINT8   led; | UINT8   led; | 
| UINT8   draw; | UINT8   flag; | 
 | void    *ptr; | void    *ptr; | 
 | CMNBMP  bmp; | CMNBMP  bmp; | 
 | CMNPAL  pal[16]; | CMNPAL  pal[16]; | 
| Line 30  static SOFTKBD softkbd; | Line 27  static SOFTKBD softkbd; | 
 | #include        "softkbd1.res" | #include        "softkbd1.res" | 
 | #elif (SUPPORT_SOFTKBD == 2) | #elif (SUPPORT_SOFTKBD == 2) | 
 | #include        "softkbd2.res" | #include        "softkbd2.res" | 
 |  | #elif (SUPPORT_SOFTKBD == 3) | 
 |  | #include        "softkbd3.res" | 
 | #else | #else | 
 | #include        "softkbd.res" | #include        "softkbd.res" | 
 | #endif | #endif | 
| Line 49  static void loadbmp(const char *filename | Line 48  static void loadbmp(const char *filename | 
 | _MFREE(ptr); | _MFREE(ptr); | 
 | } | } | 
 | } | } | 
| softkbd.draw |= KBDDRAW_BMP; | softkbd.flag |= SOFTKEY_FLAGREDRAW; | 
 | } | } | 
 |  |  | 
 | void softkbd_initialize(void) { | void softkbd_initialize(void) { | 
| Line 84  BOOL softkbd_getsize(int *width, int *he | Line 83  BOOL softkbd_getsize(int *width, int *he | 
 | return(SUCCESS); | return(SUCCESS); | 
 | } | } | 
 |  |  | 
 |  | REG8 softkbd_process(void) { | 
 |  |  | 
 |  | return(softkbd.flag); | 
 |  | } | 
 |  |  | 
 | BOOL softkbd_paint(CMNVRAM *vram, CMNPALCNV cnv, BOOL redraw) { | BOOL softkbd_paint(CMNVRAM *vram, CMNPALCNV cnv, BOOL redraw) { | 
 |  |  | 
| UINT8   draw; | UINT8   flag; | 
 | BOOL    ret; | BOOL    ret; | 
 |  |  | 
| draw = softkbd.draw; | flag = softkbd.flag; | 
| softkbd.draw = 0; | softkbd.flag = 0; | 
 | if (redraw) { | if (redraw) { | 
| draw = KBDDRAW_BMP | KBDDRAW_LED; | flag = SOFTKEY_FLAGREDRAW | SOFTKEY_FLAGDRAW; | 
 | } | } | 
 | ret = FALSE; | ret = FALSE; | 
| if ((draw & KBDDRAW_BMP) && (vram) && (cnv)) { | if ((flag & SOFTKEY_FLAGREDRAW) && (vram) && (cnv)) { | 
 | (*cnv)(softkbd.pal, softkbd.bmp.paltbl, softkbd.bmp.pals, vram->bpp); | (*cnv)(softkbd.pal, softkbd.bmp.paltbl, softkbd.bmp.pals, vram->bpp); | 
 | cmndraw_bmp16(vram, softkbd.ptr, cnv, CMNBMP_LEFT | CMNBMP_TOP); | cmndraw_bmp16(vram, softkbd.ptr, cnv, CMNBMP_LEFT | CMNBMP_TOP); | 
 | ret = TRUE; | ret = TRUE; | 
 | } | } | 
| if (draw & KBDDRAW_LED) { | if (flag & SOFTKEY_FLAGDRAW) { | 
 | TRACEOUT(("softkbd_paint")); | TRACEOUT(("softkbd_paint")); | 
 | ledpaint(vram); | ledpaint(vram); | 
 | ret = TRUE; | ret = TRUE; | 
| Line 137  void softkbd_led(REG8 led) { | Line 141  void softkbd_led(REG8 led) { | 
 | TRACEOUT(("softkbd_led(%x)", led)); | TRACEOUT(("softkbd_led(%x)", led)); | 
 | if (softkbd.led != led) { | if (softkbd.led != led) { | 
 | softkbd.led = led; | softkbd.led = led; | 
| softkbd.draw |= KBDDRAW_LED; | softkbd.flag |= SOFTKEY_FLAGDRAW; | 
 | } | } | 
 | } | } | 
 | #endif | #endif |