Annotation of researchv10no/cmd/vsw/main.c, revision 1.1

1.1     ! root        1: #include       <getflags.h>
        !             2: #include       <ctype.h>
        !             3: #include       <fio.h>
        !             4: #include       <libc.h>
        !             5: #include       "crossbar.h"
        !             6: #include       "switch.h"
        !             7: 
        !             8: static Crossbar *c1, *c2, *r1;
        !             9: static Switch *rgb, *comp;
        !            10: int verbose;
        !            11: void init(), alarminit();
        !            12: 
        !            13: main(int argc, char **argv)
        !            14: {
        !            15:        Switch *sw;
        !            16:        int i;
        !            17:        char opt;
        !            18: 
        !            19:        if((argc = getflags(argc, argv, "dcrvpi", 0)) < 0)
        !            20:                usage("[ iopair ... ]");
        !            21:        verbose = flag['v'] != 0;
        !            22:        alarminit();
        !            23:        init();
        !            24:        if(flag['c'])
        !            25:                sw = comp, opt = 'c';
        !            26:        else if(flag['r'])
        !            27:                sw = rgb, opt = 'r';
        !            28:        else {
        !            29:                fprint(2, "%s: must specify one of c(omposite) or r(gb)\n", argv[0]);
        !            30:                usage("[ iopair ... ]");
        !            31:        }
        !            32:        if(flag['d']){
        !            33:                sw->describe();
        !            34:                exit(0);
        !            35:        }
        !            36:        if(flag['i'])
        !            37:                sw->reinit();
        !            38:        for(i = 1; i < argc; i++){
        !            39:                if(!isalnum(argv[i][0]) || !isalnum(argv[i][1]) || argv[i][2]){
        !            40:                        fprint(2, "vsw: bad iopair '%s'\n", argv[i]);
        !            41:                        exit(1);
        !            42:                }
        !            43:                sw->connect(argv[i][0], argv[i][1]);
        !            44:        }
        !            45:        if(flag['p'])
        !            46:                sw->pr(opt);
        !            47:        exit(0);
        !            48: }
        !            49: 
        !            50: void
        !            51: init()
        !            52: {
        !            53:        c1 = new System10("vswcomp", 10, 1);
        !            54:        c2 = new Dynasty("vswrgb2", 20, 1);
        !            55:        r1 = new System10("vswrgb", 10, 3);
        !            56:        rgb = new Switch("rgb", 3);
        !            57:        rgb->addi('0', "pixel", "pixel machine", r1, 0);
        !            58:        rgb->addi('1', "bad", "bad blue 11 12 13 14", r1, 1);
        !            59:        rgb->addi('2', "iti", "iti frame grabber", c1, 3);
        !            60:        rgb->addi('3', "pipe /dev/om0", "pipe /dev/om0", r1, 2);
        !            61:        rgb->addi('4', "pipe /dev/om1", "pipe /dev/om1", r1, 3);
        !            62:        rgb->addi('5', "pipe /dev/om2", "pipe /dev/om2", r1, 4);
        !            63:        rgb->addi('6', "pipe /dev/om3", "pipe /dev/om3", r1, 5);
        !            64:        rgb->addi('7', "arend /dev/om2", "arend /dev/om2", r1, 6);
        !            65:        rgb->addi('8', "encke /dev/om0", "encke /dev/om0", r1, 7);
        !            66:        rgb->addi('9', "spare", "spare", r1, 8);
        !            67:        rgb->addi('a', "camera", "sony camera rgb output", c1, 0);
        !            68:        r1->link(9, c1, 6);
        !            69:        rgb->addo('0', "ntsc, MitsRGB", "rgb->ntsc, 35in Mitsubishi RGB", r1, 0);
        !            70:        rgb->addo('1', "matrix", "matrix 6000, monitor", r1, 1);
        !            71:        rgb->addo('2', "iti", "iti frame buffer", c1, 3);
        !            72:        rgb->addo('3', "ws1", "work station 1", r1, 2);
        !            73:        rgb->addo('4', "ws2", "work station 2", r1, 8);
        !            74:        rgb->addo('5', "ws3", "work station 3", r1, 4);
        !            75:        rgb->addo('6', "ws4", "work station 4", r1, 5);
        !            76:        rgb->addo('7', "ws5", "work station 5", r1, 6);
        !            77:        rgb->addo('8', "ws6", "work station 6", r1, 7);
        !            78:        rgb->addo('9', "unused/bad", "work station 7", r1, 3);
        !            79:        rgb->addo('a', "barco/proj", "barco mon/projector tv", c1, 0);
        !            80:        c1->link(6, r1, 9);
        !            81:        comp = new Switch("composite", 1);
        !            82:        comp->addi('0', "vhs1", "vhs1(source) output", c2, 0);
        !            83:        comp->addi('1', "vhs2", "vhs2(editor) output", c2, 1);
        !            84:        comp->addi('2', "ntsc", "rgb->ntsc output", c2, 2);
        !            85:        comp->addi('3', "dig.audio", "tom's digital audio", c2, 3);
        !            86:        comp->addi('4', "pal", "PAL/SECAM player", c2, 4);
        !            87:        comp->addi('5', "2500.sig", "2500 signal output", c2, 5);
        !            88:        comp->addi('6', "2500.mon", "2500 mon", c2, 6);
        !            89:        comp->addi('7', "umatic", "umatic output", c2, 7);
        !            90:        comp->addi('8', "cbars", "signal generator", c2, 8);
        !            91:        comp->addi('9', "kodak", "kodak camera disc", c2, 9);
        !            92:        comp->addi('a', "podium", "graphics lab podium output", c2, 10);
        !            93:        comp->addi('b', "camera.comp", "sony composite output", c2, 11);
        !            94:        comp->addi('c', "630", "630 video adapter", c2, 12);
        !            95: 
        !            96:        comp->addo('0', "vhs1", "vhs1(source) input", c2, 0);
        !            97:        comp->addo('1', "vhs2", "vhs2(editor) input", c2, 1);
        !            98:        comp->addo('2', "ntsc", "ntsc->rgb input", c2, 2);
        !            99:        comp->addo('3', "dig.audio", "tom's digital audio", c2, 3);
        !           100:        comp->addo('4', "pal", "PAL/SECAM input", c2, 4);
        !           101:        comp->addo('5', "2500", "2500 signal input", c2, 5);
        !           102:        comp->addo('6', "ikegami", "ikegami mon B input", c2, 6);
        !           103:        comp->addo('7', "sm1", "left 7\" rack mon B input", c2, 7);
        !           104:        comp->addo('8', "sm2", "right 7\" rack mon B input", c2, 8);
        !           105:        comp->addo('9', "mits1", "39\" mon comp 1 input", c2, 9);
        !           106:        comp->addo('a', "unsused", "unused", c2, 10);
        !           107:        comp->addo('b', "unsused", "unused", c2, 11);
        !           108:        comp->addo('c', "barco1", "barco mon comp 1 input", c2, 12);
        !           109:        comp->addo('d', "barco2", "barco mon comp 2 input", c2, 13);
        !           110:        comp->addo('e', "dunn", "dunn camera input", c2, 14);
        !           111:        comp->addo('f', "projector", "projector tv", c2, 15);
        !           112: }
        !           113: 
        !           114: #include       <signal.h>
        !           115: #include       <sysent.h>
        !           116: 
        !           117: void
        !           118: alarming(int)
        !           119: {
        !           120:        signal(SIGALRM, alarming);
        !           121: }
        !           122: 
        !           123: void
        !           124: alarminit()
        !           125: {
        !           126:        signal(SIGALRM, alarming);
        !           127: }

unix.superglobalmegacorp.com

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