Ignore:
Timestamp:
2009-02-15T22:31:07Z (16 years ago)
Author:
Jiri Svoboda <jirik.svoboda@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
6cd9aa6
Parents:
76dd25b
Message:

Keycodes, keyboard events, kbd_event_get(). Keyboard driver now (formally) produces kbd events (press/release, keycode, mods, char) instead of just characters. In reality, the driver and client are only hacked to work with the new interface atm.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/kbd/arch/arm32/src/kbd_gxemul.c

    r76dd25b rfa09449  
    123123        /*
    124124        // Preserve for detecting scan codes.
    125         keybuffer_push(keybuffer, to_hex((scan_code>>4)&0xf));
    126         keybuffer_push(keybuffer, to_hex(scan_code&0xf));
    127         keybuffer_push(keybuffer, 'X');
    128         keybuffer_push(keybuffer, 'Y');
     125        keybuffer_push0(keybuffer, to_hex((scan_code>>4)&0xf));
     126        keybuffer_push0(keybuffer, to_hex(scan_code&0xf));
     127        keybuffer_push0(keybuffer, 'X');
     128        keybuffer_push0(keybuffer, 'Y');
    129129        return 1;
    130130        */
     
    137137                switch (buf) {
    138138                case GXEMUL_KEY_F5:
    139                         keybuffer_push(keybuffer,FUNCTION_KEYS | 5);
     139                        keybuffer_push0(keybuffer,FUNCTION_KEYS | 5);
    140140                        buf = count = 0;
    141141                        return 1;
    142142                case GXEMUL_KEY_F6:
    143                         keybuffer_push(keybuffer,FUNCTION_KEYS | 6);
     143                        keybuffer_push0(keybuffer,FUNCTION_KEYS | 6);
    144144                        buf = count = 0;
    145145                        return 1;
    146146                case GXEMUL_KEY_F7:
    147                         keybuffer_push(keybuffer,FUNCTION_KEYS | 7);
     147                        keybuffer_push0(keybuffer,FUNCTION_KEYS | 7);
    148148                        buf = count = 0;
    149149                        return 1;
    150150                case GXEMUL_KEY_F8:
    151                         keybuffer_push(keybuffer,FUNCTION_KEYS | 8);
     151                        keybuffer_push0(keybuffer,FUNCTION_KEYS | 8);
    152152                        buf = count = 0;
    153153                        return 1;
    154154                case GXEMUL_KEY_F9:
    155                         keybuffer_push(keybuffer,FUNCTION_KEYS | 9);
     155                        keybuffer_push0(keybuffer,FUNCTION_KEYS | 9);
    156156                        buf = count = 0;
    157157                        return 1;
    158158                case GXEMUL_KEY_F10:
    159                         keybuffer_push(keybuffer,FUNCTION_KEYS | 10);
     159                        keybuffer_push0(keybuffer,FUNCTION_KEYS | 10);
    160160                        buf = count = 0;
    161161                        return 1;
    162162                case GXEMUL_KEY_F11:
    163                         keybuffer_push(keybuffer,FUNCTION_KEYS | 11);
     163                        keybuffer_push0(keybuffer,FUNCTION_KEYS | 11);
    164164                        buf = count = 0;
    165165                        return 1;
    166166                case GXEMUL_KEY_F12:
    167                         keybuffer_push(keybuffer,FUNCTION_KEYS | 12);
     167                        keybuffer_push0(keybuffer,FUNCTION_KEYS | 12);
    168168                        buf = count = 0;
    169169                        return 1;
    170170                default:
    171                         keybuffer_push(keybuffer, buf & 0xff);
    172                         keybuffer_push(keybuffer, (buf >> 8)  & 0xff);
    173                         keybuffer_push(keybuffer, (buf >> 16) & 0xff);
    174                         keybuffer_push(keybuffer, (buf >> 24) & 0xff);
    175                         keybuffer_push(keybuffer, scan_code);
     171                        keybuffer_push0(keybuffer, buf & 0xff);
     172                        keybuffer_push0(keybuffer, (buf >> 8)  & 0xff);
     173                        keybuffer_push0(keybuffer, (buf >> 16) & 0xff);
     174                        keybuffer_push0(keybuffer, (buf >> 24) & 0xff);
     175                        keybuffer_push0(keybuffer, scan_code);
    176176                        buf = count = 0;
    177177                        return 1;
     
    183183       
    184184        if ((buf & 0xff) != (GXEMUL_KEY_F1 & 0xff)) {
    185                 keybuffer_push(keybuffer, buf);
     185                keybuffer_push0(keybuffer, buf);
    186186                buf = count = 0;
    187187                return 1;
     
    195195                && (buf & 0xffff) != (GXEMUL_KEY_F5 & 0xffff) ) {
    196196
    197                 keybuffer_push(keybuffer, buf & 0xff);
    198                 keybuffer_push(keybuffer, (buf >> 8) &0xff);
     197                keybuffer_push0(keybuffer, buf & 0xff);
     198                keybuffer_push0(keybuffer, (buf >> 8) &0xff);
    199199                buf = count = 0;
    200200                return 1;
     
    207207        switch (buf) {
    208208        case GXEMUL_KEY_F1:
    209                 keybuffer_push(keybuffer,FUNCTION_KEYS | 1);
     209                keybuffer_push0(keybuffer,FUNCTION_KEYS | 1);
    210210                buf = count = 0;
    211211                return 1;
    212212        case GXEMUL_KEY_F2:
    213                 keybuffer_push(keybuffer,FUNCTION_KEYS | 2);
     213                keybuffer_push0(keybuffer,FUNCTION_KEYS | 2);
    214214                buf = count = 0;
    215215                return 1;
    216216        case GXEMUL_KEY_F3:
    217                 keybuffer_push(keybuffer,FUNCTION_KEYS | 3);
     217                keybuffer_push0(keybuffer,FUNCTION_KEYS | 3);
    218218                buf = count = 0;
    219219                return 1;
    220220        case GXEMUL_KEY_F4:
    221                 keybuffer_push(keybuffer,FUNCTION_KEYS | 4);
     221                keybuffer_push0(keybuffer,FUNCTION_KEYS | 4);
    222222                buf = count = 0;
    223223                return 1;
     
    228228                && (buf & 0xffffff) != (GXEMUL_KEY_F9 & 0xffffff)) {
    229229
    230                 keybuffer_push(keybuffer, buf & 0xff);
    231                 keybuffer_push(keybuffer, (buf >> 8) & 0xff);
    232                 keybuffer_push(keybuffer, (buf >> 16) & 0xff);
     230                keybuffer_push0(keybuffer, buf & 0xff);
     231                keybuffer_push0(keybuffer, (buf >> 8) & 0xff);
     232                keybuffer_push0(keybuffer, (buf >> 16) & 0xff);
    233233                buf = count = 0;
    234234                return 1;
     
    250250                return 1;
    251251        default:
    252                 keybuffer_push(keybuffer, buf & 0xff);
    253                 keybuffer_push(keybuffer, (buf >> 8)  & 0xff);
    254                 keybuffer_push(keybuffer, (buf >> 16) & 0xff);
    255                 keybuffer_push(keybuffer, (buf >> 24) & 0xff);
     252                keybuffer_push0(keybuffer, buf & 0xff);
     253                keybuffer_push0(keybuffer, (buf >> 8)  & 0xff);
     254                keybuffer_push0(keybuffer, (buf >> 16) & 0xff);
     255                keybuffer_push0(keybuffer, (buf >> 24) & 0xff);
    256256                buf = count = 0;
    257257                return 1;
     
    279279        /*
    280280        // Please preserve this code (it can be used to determine scancodes)
    281         keybuffer_push(keybuffer, to_hex((scan_code>>4)&0xf));
    282         keybuffer_push(keybuffer, to_hex(scan_code&0xf));
    283         keybuffer_push(keybuffer, ' ');
    284         keybuffer_push(keybuffer, ' ');
     281        keybuffer_push0(keybuffer, to_hex((scan_code>>4)&0xf));
     282        keybuffer_push0(keybuffer, to_hex(scan_code&0xf));
     283        keybuffer_push0(keybuffer, ' ');
     284        keybuffer_push0(keybuffer, ' ');
    285285        return 1;
    286286        */
     
    295295       
    296296        if ((buf & 0xff) != (GXEMUL_FB_KEY_F1 & 0xff)) {
    297                 keybuffer_push(keybuffer, buf);
     297                keybuffer_push0(keybuffer, buf);
    298298                buf = count = 0;
    299299                return 1;
     
    305305
    306306        if ((buf & 0xffff) != (GXEMUL_FB_KEY_F1 & 0xffff)) {
    307                 keybuffer_push(keybuffer, buf & 0xff);
    308                 keybuffer_push(keybuffer, (buf >> 8) &0xff);
     307                keybuffer_push0(keybuffer, buf & 0xff);
     308                keybuffer_push0(keybuffer, (buf >> 8) &0xff);
    309309                buf = count = 0;
    310310                return 1;
     
    319319                && (buf & 0xffffff) != (GXEMUL_FB_KEY_F9 & 0xffffff)) {
    320320
    321                 keybuffer_push(keybuffer, buf & 0xff);
    322                 keybuffer_push(keybuffer, (buf >> 8) & 0xff);
    323                 keybuffer_push(keybuffer, (buf >> 16) & 0xff);
     321                keybuffer_push0(keybuffer, buf & 0xff);
     322                keybuffer_push0(keybuffer, (buf >> 8) & 0xff);
     323                keybuffer_push0(keybuffer, (buf >> 16) & 0xff);
    324324                buf = count = 0;
    325325                return 1;
     
    332332        switch (buf) {
    333333        case GXEMUL_FB_KEY_F1:
    334                 keybuffer_push(keybuffer,FUNCTION_KEYS | 1 );
     334                keybuffer_push0(keybuffer,FUNCTION_KEYS | 1 );
    335335                buf = count = 0;
    336336                return 1;
    337337        case GXEMUL_FB_KEY_F2:
    338                 keybuffer_push(keybuffer,FUNCTION_KEYS | 2 );
     338                keybuffer_push0(keybuffer,FUNCTION_KEYS | 2 );
    339339                buf = count = 0;
    340340                return 1;
    341341        case GXEMUL_FB_KEY_F3:
    342                 keybuffer_push(keybuffer,FUNCTION_KEYS | 3 );
     342                keybuffer_push0(keybuffer,FUNCTION_KEYS | 3 );
    343343                buf = count = 0;
    344344                return 1;
    345345        case GXEMUL_FB_KEY_F4:
    346                 keybuffer_push(keybuffer,FUNCTION_KEYS | 4 );
     346                keybuffer_push0(keybuffer,FUNCTION_KEYS | 4 );
    347347                buf = count = 0;
    348348                return 1;
    349349        case GXEMUL_FB_KEY_F5:
    350                 keybuffer_push(keybuffer,FUNCTION_KEYS | 5 );
     350                keybuffer_push0(keybuffer,FUNCTION_KEYS | 5 );
    351351                buf = count = 0;
    352352                return 1;
    353353        case GXEMUL_FB_KEY_F6:
    354                 keybuffer_push(keybuffer,FUNCTION_KEYS | 6 );
     354                keybuffer_push0(keybuffer,FUNCTION_KEYS | 6 );
    355355                buf = count = 0;
    356356                return 1;
    357357        case GXEMUL_FB_KEY_F7:
    358                 keybuffer_push(keybuffer,FUNCTION_KEYS | 7 );
     358                keybuffer_push0(keybuffer,FUNCTION_KEYS | 7 );
    359359                buf = count = 0;
    360360                return 1;
    361361        case GXEMUL_FB_KEY_F8:
    362                 keybuffer_push(keybuffer,FUNCTION_KEYS | 8 );
     362                keybuffer_push0(keybuffer,FUNCTION_KEYS | 8 );
    363363                buf = count = 0;
    364364                return 1;
    365365        case GXEMUL_FB_KEY_F9:
    366                 keybuffer_push(keybuffer,FUNCTION_KEYS | 9 );
     366                keybuffer_push0(keybuffer,FUNCTION_KEYS | 9 );
    367367                buf = count = 0;
    368368                return 1;
    369369        case GXEMUL_FB_KEY_F10:
    370                 keybuffer_push(keybuffer,FUNCTION_KEYS | 10 );
     370                keybuffer_push0(keybuffer,FUNCTION_KEYS | 10 );
    371371                buf = count = 0;
    372372                return 1;
    373373        case GXEMUL_FB_KEY_F11:
    374                 keybuffer_push(keybuffer,FUNCTION_KEYS | 11 );
     374                keybuffer_push0(keybuffer,FUNCTION_KEYS | 11 );
    375375                buf = count = 0;
    376376                return 1;
    377377        case GXEMUL_FB_KEY_F12:
    378                 keybuffer_push(keybuffer,FUNCTION_KEYS | 12 );
     378                keybuffer_push0(keybuffer,FUNCTION_KEYS | 12 );
    379379                buf = count = 0;
    380380                return 1;
    381381        default:
    382                 keybuffer_push(keybuffer, buf & 0xff );
    383                 keybuffer_push(keybuffer, (buf >> 8)  & 0xff);
    384                 keybuffer_push(keybuffer, (buf >> 16) & 0xff);
    385                 keybuffer_push(keybuffer, (buf >> 24) & 0xff);
     382                keybuffer_push0(keybuffer, buf & 0xff );
     383                keybuffer_push0(keybuffer, (buf >> 8)  & 0xff);
     384                keybuffer_push0(keybuffer, (buf >> 16) & 0xff);
     385                keybuffer_push0(keybuffer, (buf >> 24) & 0xff);
    386386                buf = count = 0;
    387387                return 1;
Note: See TracChangeset for help on using the changeset viewer.