[comp.sys.next] Goodies

tan@infonode.ingr.com (Maribel Tan) (06/07/91)

POSTING FOR SOMEONE

-------------------------------------------------

Here is a tiny utility for dimming the screen.
You can set all parameters as you wish:
dim time (in seconds), dim level, and brightness level.


e.g. 

	autodim b50

sets brightness to 50

	autodim b

returns the current brightness, so you can do stuff like

	setenv OLDBRIGHTNESS `autodim b`
	...
	autodim b$OLDBRIGHTNESS

setting all at once:

	autodim b50 d0 t60 t

Sets brightness to 50, dim time to 60 seconds, dim level to 0, and returns
old dim time.

Enjoy!
-------- cut here -------
/* autodim.c :- set autodimmer brighness level to zero */
/*
	Compile with:
 
	cc -g -O -object -o autodim autodim.c
	strip autodim
 
	Synopsis:
 
	autodim [b[<brightlevel>]] [d[<dimlevel>]] [t[<dimtime seconds>]]
 
	autodim a
*/
#include <nextdev/evsio.h>
#include <libc.h>
 
int main( int argc, char **argv) {
    int dimlevel,britelevel,dimtime;
    int odimlevel,obritelevel,odimtime;
    char *argptr,*name;
    int evs;
 
    name = argv[0];
    if((evs = open("/dev/evs0",O_RDWR)) < 0){
        perror("/dev/evs0");
        exit(10);
        }
    ioctl(evs,EVSIOCB,&obritelevel);
    ioctl(evs,EVSIOCADB,&odimlevel);
    ioctl(evs,EVSIOCADT,&odimtime);
    while(--argc > 0){
        argptr = *++argv;
        switch(*argptr++){
        case 'b': 
        case 'B': 
            if(*argptr == 0){
                printf("%d\n",obritelevel); exit(0);
                }
            britelevel = atoi(argptr);
            ioctl(evs,EVSIOSB,&britelevel);
            break;
        case 'd':
        case 'D':
            if(*argptr == 0){
                printf("%d\n",odimlevel); exit(0);
                }
            dimlevel = atoi(argptr);
            ioctl(evs,EVSIOSADB,&dimlevel);
            break;
        case 't':
        case 'T':
            if(*argptr == 0){
                printf("%d\n",odimtime/68); exit(0);
                }
            dimtime = atoi(argptr)*68;
            if(dimtime < 680) dimtime = 680;
            ioctl(evs,EVSIOSADT,&dimtime);
            break;
        case 'a':
        case 'A':
            printf("B%d D%d T%d\n",obritelevel,odimlevel,odimtime/68);
            break;
        default :
            fprintf(stderr,"Usage: %s [b[<brightlevel]] [d[<dimlevel>]] [t[<dimtime>]]\n",name);
            fprintf(stderr,"   or  %s a\n",name);
            exit(10);
            }
        }
    exit(0);
    }
---

JEROEN VANDER ZIJP
E-Mail : jzijp@cs.uah.edu                                                
US-Mail: C.S. Dept. Univ. of Alabama/Huntsville, 
	 515 Sparkman dr. Huntsville AL35899
Phone  : (205)-895-6542