|
|
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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.