Annotation of 43BSD/contrib/X/libqvss/ddxutil.c, revision 1.1

1.1     ! root        1: /* Copyright 1985, Massachusetts Institute of Technology */
        !             2: /* util.c              Various utilities
        !             3:  *
        !             4:  *     SoundBell       Generate audible bell
        !             5:  *     SetKeyClick     Control key click
        !             6:  *     SetAutoRepeat   Control auto repeat
        !             7:  *     SetLockLED      Control Lock LED
        !             8:  *     SetVideo        Disable/enable video
        !             9:  *     QueryShape      Determine shapes
        !            10:  *     ResolveColors   does nothing
        !            11:  *     StoreColors     does nothing
        !            12:  */
        !            13: 
        !            14: #include <sys/types.h>
        !            15: #include <vaxuba/qvioctl.h>
        !            16: 
        !            17: #include "ddxqvss.h"
        !            18: 
        !            19: extern int vsdev;
        !            20: 
        !            21: #define LK_REPEAT_ON 0xe3      /* enable autorepeat across kbd */
        !            22: #define LK_REPEAT_OFF 0xe1     /* diable autorepeat across kbd */
        !            23: #define LK_ENABLE_CLICK 0x1b   /* enable keyclick / set volume */
        !            24: #define LK_DISABLE_CLICK 0x99  /* disable keyclick entirely    */
        !            25: #define LK_ENABLE_BELL 0x23    /* enable bell / set volume     */
        !            26: #ifndef LK_RING_BELL           /* can go away after 1.2 is out */
        !            27: #define LK_RING_BELL 0xa7      /* command to ring a bell       */
        !            28: #define LED_1 0x81             /* led 1 on the keyboard        */
        !            29: #define LED_2 0x82             /* led 2 on the keyboard        */
        !            30: #define LED_3 0x84             /* led 3 on the keyboard        */
        !            31: #define LED_4 0x88             /* led 4 on the keyboard        */
        !            32: #define LK_LED_ENABLE 0x13     /* turn on led                  */
        !            33: #define LK_LED_DISABLE 0x11    /* turn off led                 */
        !            34: #endif
        !            35: 
        !            36: /* Sound bell, volume between 0 (quiet) and 7 (loud) */
        !            37: 
        !            38: SoundBell (volume)
        !            39:        int volume;
        !            40: {
        !            41:        struct qv_kpcmd ioc;
        !            42:        volume = volume & 7;
        !            43:        volume = 7 - volume;
        !            44: 
        !            45:        ioc.nbytes = 1;
        !            46:        ioc.cmd = LK_ENABLE_BELL;
        !            47:        ioc.par[0] = volume;
        !            48:        ioctl(vsdev, QIOCKPCMD, &ioc);
        !            49: 
        !            50:        ioc.nbytes = 0;
        !            51:        ioc.cmd = LK_RING_BELL;
        !            52:        return(ioctl(vsdev, QIOCKPCMD, &ioc));
        !            53: }
        !            54: 
        !            55: /* Set key click, volume between -1 (default), 0 (off) and 8 (loud) */
        !            56: 
        !            57: SetKeyClick (volume)
        !            58:        int volume;
        !            59: {
        !            60:        struct qv_kpcmd ioc;
        !            61:        int ret;
        !            62:        if(volume < 0) volume = 6;
        !            63:        if(volume > 0 ) {
        !            64:                volume -= 1;
        !            65:                if(volume > 7) volume = 7;
        !            66:                volume = 7 - volume;
        !            67: 
        !            68:                ioc.nbytes = 1;
        !            69:                ioc.cmd = LK_ENABLE_CLICK;
        !            70:                ioc.par[0] = volume;
        !            71:                ret = ioctl(vsdev, QIOCKPCMD, &ioc);
        !            72:        }
        !            73:        else if(volume == 0) {
        !            74:                ioc.nbytes = 0;
        !            75:                ioc.cmd = LK_DISABLE_CLICK;
        !            76:                ret = ioctl(vsdev, QIOCKPCMD, &ioc);
        !            77:        }
        !            78:        return(ret);
        !            79: }
        !            80: 
        !            81: /* Set autorepeat */
        !            82: 
        !            83: SetAutoRepeat (onoff)
        !            84:        int onoff;
        !            85: {
        !            86:        struct qv_kpcmd ioc;
        !            87:        register char *divsets;
        !            88:        divsets = onoff ? (char *) AutoRepeatLKMode () : (char *) UpDownLKMode ();
        !            89:        ioc.nbytes = 0;
        !            90:        while (ioc.cmd = *divsets++)
        !            91:                ioctl(vsdev, QIOCKPCMD, &ioc);
        !            92:        ioc.cmd = ((onoff > 0) ? LK_REPEAT_ON : LK_REPEAT_OFF );
        !            93:        return(ioctl(vsdev, QIOCKPCMD, &ioc));
        !            94: }
        !            95: 
        !            96: int SetVideo(onoff)
        !            97:        int onoff;
        !            98: {
        !            99:        return(0);
        !           100: }
        !           101: QueryShape (shape, width, height)
        !           102:        int shape;
        !           103:        short *width, *height;
        !           104: {
        !           105:        switch (shape) {
        !           106:        case CursorShape:       /* braindamaged qvss cursor.... */
        !           107:            if (*width > 16)
        !           108:                *width = 16;
        !           109:            if (*height > 16)
        !           110:                *height = 16;
        !           111:            break;
        !           112:        case TileShape:
        !           113:            *width = *height = 16;
        !           114:            break;
        !           115:        }
        !           116: }
        !           117: 
        !           118: SetLockLED (onoff)
        !           119:        int onoff;
        !           120: {
        !           121:        struct qv_kpcmd ioc;
        !           122:        if (onoff)
        !           123:                ioc.cmd = LK_LED_ENABLE;
        !           124:        else
        !           125:                ioc.cmd = LK_LED_DISABLE;
        !           126:        ioc.par[0] = LED_3;
        !           127:        ioc.par[1]  = 0;
        !           128:        ioc.nbytes = 1;
        !           129:        ioctl(vsdev, QIOCKPCMD, &ioc);
        !           130:        return;
        !           131: }
        !           132: 
        !           133: ResolveColor (red, green, blue)
        !           134:        unsigned short *red, *green, *blue;
        !           135: {
        !           136: }
        !           137: 
        !           138: StoreColors (count, entries)
        !           139:        int count;
        !           140:        ColorDef *entries;
        !           141: 
        !           142: {
        !           143: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.