Annotation of researchv10no/cmd/view2d/term/main.c, revision 1.1.1.1

1.1       root        1: #include       <CC/jerq.h>
                      2: #include       "frame.pri"
                      3: #include       "clock.pub"
                      4: 
                      5: Movie *m;
                      6: Clock *clock;
                      7: extern char *genfn(int);
                      8: extern void sprintf(char *s ...);
                      9: extern int getn();
                     10: Menu menu = { (char **)0, &genfn };
                     11: 
                     12: main()
                     13: {
                     14:        int n, done;
                     15: 
                     16:        request(RCV|SEND|MOUSE|KBD);
                     17:        clock = new Clock();
                     18:        m = new Movie();
                     19:        m->read();
                     20: 
                     21:        done = 0;
                     22:        while(done == 0)
                     23:        {
                     24:                if(own()&MOUSE)
                     25:                {
                     26:                        if(button1())
                     27:                                if(hitpot(1))
                     28:                                {
                     29:                                        m->adjust();
                     30:                                        m->show();
                     31:                                }
                     32:                        if(button2())
                     33:                                helppot(2);
                     34:                        if(button3())
                     35:                                switch(n = menuhit(&menu, 3))
                     36:                                {
                     37:                                case -1:
                     38:                                        break;
                     39:                                case 1:
                     40:                                        done = confirm(3);
                     41:                                        break;
                     42:                                default:
                     43:                                        n -= 2;
                     44:                                        m->showframe(n);
                     45:                                        break;
                     46:                                }
                     47:                }
                     48:                if(m->run->val)
                     49:                {
                     50:                        clock->set();
                     51:                        m->show();
                     52:                        m->advance();
                     53:                        wait(CPU);
                     54:                        clock->synch();
                     55:                }
                     56:                else
                     57:                        sleep(2);
                     58:        } 
                     59:        sendnchars(2, "x\n");
                     60:        sleep(500);
                     61: }
                     62: 
                     63: char buf[128];
                     64: 
                     65: char *
                     66: genfn(int i)
                     67: {
                     68:        switch(i)
                     69:        {
                     70:        case 0:
                     71:                sprintf(buf, "%d frames t=%d", m->maxframe, m->maxtime);
                     72:                break;
                     73:        case 1:
                     74:                sprintf(buf, "exit");
                     75:                break;
                     76:        default:
                     77:                i -= 2;
                     78:                if(i >= m->maxframe)
                     79:                        return((char *)0);
                     80:                else
                     81:                        sprintf(buf, "frame %d t=%s", i, m->ft(i));
                     82:                break;
                     83:        }
                     84:        return(buf);
                     85: }
                     86: 
                     87: extern int
                     88: nrand(int n)
                     89: {
                     90:        extern rand();
                     91: 
                     92:        return(muldiv(rand(), n, 32767));
                     93: }
                     94: 
                     95: getch()
                     96: {
                     97:        register i;
                     98: 
                     99:        if((i = rcvchar()) == -1)
                    100:        {
                    101:                wait(RCV);
                    102:                i = rcvchar();
                    103:        }
                    104:        return(i);
                    105: }
                    106: 
                    107: getn()
                    108: {
                    109:        register i, j;
                    110: 
                    111:        i = getch();
                    112:        i <<= 8;
                    113:        j = 0xFF & getch();
                    114:        return((i|j)&0xffff);
                    115: }
                    116: 
                    117: extern void
                    118: gets(register char *s)
                    119: {
                    120:        while(*s++ = getch());
                    121: }

unix.superglobalmegacorp.com

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