Files @ 79bc84310e80
Branch filter:

Location: light9/light8/parport.c

dmcc
changes from tonight's rehearsal:
changes from tonight's rehearsal:
- CueFader is closer to actually running the show, computes DMX levels
to send.
- KeyboardComposer is not a dummy. Use DMXDUMMY=1 to disable it.
- Submaster: subs can now be "temporary" -- i.e. they shouldn't be saved
or loaded. to save a temporary sub, make a copy of it with a proper name
since the computed name will be ugly.
Also, get_normalized_copy() and crossfade() methods added.
linear_fade helper (shouldn't be in Submaster, probably) added too.
- dmxchanedit: longer labels
- cuelist1 now has some bogus data in it and some crap removed
- dmxclient: now listens to the $DMXHOST and $DMXDUMMY env variables.
- patchdata: now up to date with this year's show
- danshow subs song{01..19}: removed. maybe we'll re-add them in an
archive directory.
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <asm/io.h>
#include <fcntl.h>
#include <Python.h>

int getparport() {
    if( ioperm(888,3,1) ) {
      printf("Couldn't get parallel port at 888-890\n");

      // the following doesn't have any effect!
      PyErr_SetString(PyExc_IOError,"Couldn't get parallel port at 888-890");
      return 0;
    } 
    return 1;
}

void outdata(unsigned char val) {
  outb(val,888);
}

void outcontrol( unsigned char val ) {
  outb(val,890);
}

void outbyte( unsigned char val ) {
  // set data, raise clock, lower clock
  outdata(val);
  outcontrol(2);
  outcontrol(2);
  outcontrol(2);
  outcontrol(2);
  outcontrol(2);
  outcontrol(2);
  outcontrol(2);
  outcontrol(2);
  outcontrol(2);
  outcontrol(2);
  outcontrol(2);
  outcontrol(2);
  outcontrol(2);
  outcontrol(2);
  outcontrol(2);
  outcontrol(2);
  outcontrol(2);
  outcontrol(2);
  outcontrol(2);
  outcontrol(2);
  outcontrol(2);
  outcontrol(2);
  outcontrol(2);
  outcontrol(2);
  outcontrol(2);
  outcontrol(2);
  outcontrol(3);
}
void outstart() {
  // send start code: pin 14 high, 5ms to let a dmx cycle finish,
  // then pin14 low (pin1 stays low)
  outcontrol(1);
  usleep(5000);
  outcontrol(3);
}