|
|
| version 1.1, 2003/11/21 06:51:11 | version 1.8, 2004/04/09 10:52:20 |
|---|---|
| Line 15 const BYTE *data; | Line 15 const BYTE *data; |
| } KDKEYPOS; | } KDKEYPOS; |
| typedef struct { | typedef struct { |
| BYTE k[KEYDISP_NOTEMAX]; | UINT8 k[KEYDISP_NOTEMAX]; |
| BYTE r[KEYDISP_NOTEMAX]; | UINT8 r[KEYDISP_NOTEMAX]; |
| UINT remain; | UINT remain; |
| BYTE flag; | UINT8 flag; |
| BYTE padding[3]; | BYTE padding[3]; |
| } KDCHANNEL; | } KDCHANNEL; |
| typedef struct { | typedef struct { |
| BYTE ch; | UINT8 ch; |
| BYTE key; | UINT8 key; |
| } KDDELAYE; | } KDDELAYE; |
| typedef struct { | typedef struct { |
| UINT pos; | UINT pos; |
| UINT rem; | UINT rem; |
| BYTE warm; | UINT8 warm; |
| BYTE warmbase; | UINT8 warmbase; |
| } KDDELAY; | } KDDELAY; |
| typedef struct { | typedef struct { |
| UINT16 fnum[4]; | UINT16 fnum[4]; |
| BYTE lastnote[4]; | UINT8 lastnote[4]; |
| BYTE flag; | UINT8 flag; |
| BYTE extflag; | UINT8 extflag; |
| } KDFMCTRL; | } KDFMCTRL; |
| typedef struct { | typedef struct { |
| UINT16 fto[4]; | UINT16 fto[4]; |
| BYTE lastnote[4]; | UINT8 lastnote[4]; |
| BYTE flag; | UINT8 flag; |
| BYTE mix; | UINT8 mix; |
| BYTE padding[2]; | BYTE padding[2]; |
| } KDPSGCTRL; | } KDPSGCTRL; |
| Line 63 typedef struct { | Line 63 typedef struct { |
| KDCHANNEL ch[KEYDISP_CHMAX]; | KDCHANNEL ch[KEYDISP_CHMAX]; |
| KDFMCTRL fmctl[KEYDISP_FMMAX]; | KDFMCTRL fmctl[KEYDISP_FMMAX]; |
| KDPSGCTRL psgctl[KEYDISP_PSGMAX]; | KDPSGCTRL psgctl[KEYDISP_PSGMAX]; |
| BYTE pal8[KEYDISP_PALS]; | UINT8 pal8[KEYDISP_PALS]; |
| UINT16 pal16[KEYDISP_LEVEL*2]; | UINT16 pal16[KEYDISP_LEVEL*2]; |
| RGB32 pal32[KEYDISP_LEVEL*2]; | RGB32 pal32[KEYDISP_LEVEL*2]; |
| KDKEYPOS keypos[128]; | KDKEYPOS keypos[128]; |
| Line 409 static void psgmix(BYTE ch, PSGGEN psg) | Line 409 static void psgmix(BYTE ch, PSGGEN psg) |
| } | } |
| else if ((!(k->mix & bit)) && (psg->reg.vol[i] & 0x1f)) { | else if ((!(k->mix & bit)) && (psg->reg.vol[i] & 0x1f)) { |
| k->flag |= bit; | k->flag |= bit; |
| k->fto[i] = (*(WORD *)(psg->reg.tune[i])) & 0xfff; | k->fto[i] = LOADINTELWORD(psg->reg.tune[i]) & 0xfff; |
| k->lastnote[i] = getpsgnote(k->fto[i]); | k->lastnote[i] = getpsgnote(k->fto[i]); |
| delaysetevent(pos, (BYTE)(k->lastnote[i] | 0x80)); | delaysetevent(pos, (BYTE)(k->lastnote[i] | 0x80)); |
| } | } |
| Line 540 static void setpsghdl(BYTE items) { | Line 540 static void setpsghdl(BYTE items) { |
| } | } |
| } | } |
| void keydisp_setfmboard(BYTE b) { | void keydisp_setfmboard(UINT b) { |
| keydisp.keymax = 0; | keydisp.keymax = 0; |
| keydisp.fmmax = 0; | keydisp.fmmax = 0; |
| Line 645 static int getdispkeys(void) { | Line 645 static int getdispkeys(void) { |
| static void clearrect(CMNVRAM *vram, int x, int y, int cx, int cy) { | static void clearrect(CMNVRAM *vram, int x, int y, int cx, int cy) { |
| CMNPAL col; | |
| switch(vram->bpp) { | switch(vram->bpp) { |
| #if defined(SUPPORT_8BPP) | #if defined(SUPPORT_8BPP) |
| case 8: | case 8: |
| cmndraw8_fill(vram, x, y, cx, cy, keydisp.pal8[KEYDISP_PALBG]); | col.pal8 = keydisp.pal8[KEYDISP_PALBG]; |
| break; | break; |
| #endif | #endif |
| #if defined(SUPPORT_16BPP) | #if defined(SUPPORT_16BPP) |
| case 16: | case 16: |
| cmndraw16_fill(vram, x, y, cx, cy, keydisp.pal16[KEYDISP_LEVEL]); | col.pal16 = keydisp.pal16[KEYDISP_LEVEL]; |
| break; | break; |
| #endif | #endif |
| #if defined(SUPPORT_24BPP) | #if defined(SUPPORT_24BPP) |
| case 24: | case 24: |
| cmndraw24_fill(vram, x, y, cx, cy, keydisp.pal32[KEYDISP_LEVEL]); | |
| break; | |
| #endif | #endif |
| #if defined(SUPPORT_32BPP) | #if defined(SUPPORT_32BPP) |
| case 32: | case 32: |
| cmndraw32_fill(vram, x, y, cx, cy, keydisp.pal32[KEYDISP_LEVEL]); | #endif |
| #if defined(SUPPORT_24BPP) || defined(SUPPORT_32BPP) | |
| col.pal32 = keydisp.pal32[KEYDISP_LEVEL]; | |
| break; | break; |
| #endif | #endif |
| default: | |
| return; | |
| } | } |
| cmndraw_fill(vram, x, y, cx, cy, col); | |
| } | } |
| static void drawkeybg(CMNVRAM *vram) { | static void drawkeybg(CMNVRAM *vram) { |
| CMNPAL bg; | |
| CMNPAL fg; | |
| int i; | int i; |
| switch(vram->bpp) { | switch(vram->bpp) { |
| #if defined(SUPPORT_8BPP) | #if defined(SUPPORT_8BPP) |
| case 8: | case 8: |
| for (i=0; i<10; i++) { | bg.pal8 = keydisp.pal8[KEYDISP_PALBG]; |
| cmndraw8_setpat(vram, keybrd1, i * KEYDISP_KEYCX, 0, | fg.pal8 = keydisp.pal8[KEYDISP_PALFG]; |
| keydisp.pal8[KEYDISP_PALBG], keydisp.pal8[KEYDISP_PALFG]); | |
| } | |
| cmndraw8_setpat(vram, keybrd2, 10 * KEYDISP_KEYCX, 0, | |
| keydisp.pal8[KEYDISP_PALBG], keydisp.pal8[KEYDISP_PALFG]); | |
| break; | break; |
| #endif | #endif |
| #if defined(SUPPORT_16BPP) | #if defined(SUPPORT_16BPP) |
| case 16: | case 16: |
| for (i=0; i<10; i++) { | bg.pal16 = keydisp.pal16[KEYDISP_LEVEL]; |
| cmndraw16_setpat(vram, keybrd1, i * KEYDISP_KEYCX, 0, | fg.pal16 = keydisp.pal16[0]; |
| keydisp.pal16[KEYDISP_LEVEL], keydisp.pal16[0]); | |
| } | |
| cmndraw16_setpat(vram, keybrd2, 10 * KEYDISP_KEYCX, 0, | |
| keydisp.pal16[KEYDISP_LEVEL], keydisp.pal16[0]); | |
| break; | break; |
| #endif | #endif |
| #if defined(SUPPORT_24BPP) | #if defined(SUPPORT_24BPP) |
| case 24: | case 24: |
| for (i=0; i<10; i++) { | bg.pal32 = keydisp.pal32[KEYDISP_LEVEL]; |
| cmndraw24_setpat(vram, keybrd1, i * KEYDISP_KEYCX, 0, | fg.pal32 = keydisp.pal32[0]; |
| keydisp.pal32[KEYDISP_LEVEL], keydisp.pal32[0]); | |
| } | |
| cmndraw24_setpat(vram, keybrd2, 10 * KEYDISP_KEYCX, 0, | |
| keydisp.pal32[KEYDISP_LEVEL], keydisp.pal32[0]); | |
| break; | break; |
| #endif | #endif |
| #if defined(SUPPORT_32BPP) | #if defined(SUPPORT_32BPP) |
| case 32: | case 32: |
| for (i=0; i<10; i++) { | bg.pal32 = keydisp.pal32[KEYDISP_LEVEL]; |
| cmndraw32_setpat(vram, keybrd1, i * KEYDISP_KEYCX, 0, | fg.pal32 = keydisp.pal32[0]; |
| keydisp.pal32[KEYDISP_LEVEL], keydisp.pal32[0]); | |
| } | |
| cmndraw32_setpat(vram, keybrd2, 10 * KEYDISP_KEYCX, 0, | |
| keydisp.pal32[KEYDISP_LEVEL], keydisp.pal32[0]); | |
| break; | break; |
| #endif | #endif |
| default: | |
| return; | |
| } | } |
| for (i=0; i<10; i++) { | |
| cmndraw_setpat(vram, keybrd1, i * KEYDISP_KEYCX, 0, bg, fg); | |
| } | |
| cmndraw_setpat(vram, keybrd2, 10 * KEYDISP_KEYCX, 0, bg, fg); | |
| } | } |
| static BOOL draw1key(CMNVRAM *vram, KDCHANNEL *kdch, UINT n) { | static BOOL draw1key(CMNVRAM *vram, KDCHANNEL *kdch, UINT n) { |
| KDKEYPOS *pos; | KDKEYPOS *pos; |
| UINT pal; | UINT pal; |
| BYTE pal8; | CMNPAL fg; |
| pos = keydisp.keypos + (kdch->k[n] & 0x7f); | pos = keydisp.keypos + (kdch->k[n] & 0x7f); |
| pal = kdch->r[n] & 0x7f; | pal = kdch->r[n] & 0x7f; |
| Line 729 static BOOL draw1key(CMNVRAM *vram, KDCH | Line 726 static BOOL draw1key(CMNVRAM *vram, KDCH |
| #if defined(SUPPORT_8BPP) | #if defined(SUPPORT_8BPP) |
| case 8: | case 8: |
| if (pal != (KEYDISP_LEVEL - 1)) { | if (pal != (KEYDISP_LEVEL - 1)) { |
| pal8 = keydisp.pal8[(pos->pals)?KEYDISP_PALBG:KEYDISP_PALFG]; | fg.pal8 = keydisp.pal8[ |
| cmndraw8_setfg(vram, pos->data, pos->posx, 0, pal8); | (pos->pals)?KEYDISP_PALBG:KEYDISP_PALFG]; |
| cmndraw_setfg(vram, pos->data, pos->posx, 0, fg); | |
| kdch->r[n] = 0; | kdch->r[n] = 0; |
| return(TRUE); | return(TRUE); |
| } | } |
| cmndraw8_setfg(vram, pos->data, pos->posx, 0, | fg.pal8 = keydisp.pal8[KEYDISP_PALHIT]; |
| keydisp.pal8[KEYDISP_PALHIT]); | |
| break; | break; |
| #endif | #endif |
| #if defined(SUPPORT_16BPP) | #if defined(SUPPORT_16BPP) |
| case 16: | case 16: |
| cmndraw16_setfg(vram, pos->data, pos->posx, 0, | fg.pal16 = keydisp.pal16[pal + pos->pals]; |
| keydisp.pal16[pal + pos->pals]); | |
| break; | break; |
| #endif | #endif |
| #if defined(SUPPORT_24BPP) | #if defined(SUPPORT_24BPP) |
| case 24: | case 24: |
| cmndraw24_setfg(vram, pos->data, pos->posx, 0, | fg.pal32 = keydisp.pal32[pal + pos->pals]; |
| keydisp.pal32[pal + pos->pals]); | |
| break; | break; |
| #endif | #endif |
| #if defined(SUPPORT_32BPP) | #if defined(SUPPORT_32BPP) |
| case 32: | case 32: |
| cmndraw32_setfg(vram, pos->data, pos->posx, 0, | fg.pal32 = keydisp.pal32[pal + pos->pals]; |
| keydisp.pal32[pal + pos->pals]); | |
| break; | break; |
| #endif | #endif |
| default: | |
| return(FALSE); | |
| } | } |
| cmndraw_setfg(vram, pos->data, pos->posx, 0, fg); | |
| return(FALSE); | return(FALSE); |
| } | } |
| Line 917 void keydisp_getsize(int *width, int *he | Line 914 void keydisp_getsize(int *width, int *he |
| if (width) { | if (width) { |
| *width = KEYDISP_WIDTH; | *width = KEYDISP_WIDTH; |
| } | } |
| if (*height) { | if (height) { |
| *height = (getdispkeys() * KEYDISP_KEYCY) + 1; | *height = (getdispkeys() * KEYDISP_KEYCY) + 1; |
| } | } |
| keydisp.dispflag &= ~KEYDISP_FLAGSIZING; | keydisp.dispflag &= ~KEYDISP_FLAGSIZING; |
| Line 957 BOOL keydisp_paint(CMNVRAM *vram, BOOL r | Line 954 BOOL keydisp_paint(CMNVRAM *vram, BOOL r |
| kdpnt_exit: | kdpnt_exit: |
| return(draw); | return(draw); |
| } | } |
| #endif | #endif |