Mercurial > code > home > repos > light9
view dmx_usb_module/dmx.pyx @ 1414:c35ec37c3c6e
sequencer reloads effecteval on the fly. plus some /stats support.
Ignore-this: 964f4c9007de6532457e0a507d2106f1
author | Drew Perttula <drewp@bigasterisk.com> |
---|---|
date | Fri, 10 Jun 2016 06:56:34 +0000 |
parents | 295e803f6a5e |
children |
line wrap: on
line source
cdef extern from "fcntl.h": int open(char *pathname, int flags) int O_WRONLY cdef extern from "unistd.h": int write(int fd, void *buf, int count) cdef extern from "string.h": char *strncpy(char *dest, char *src, int n) cdef extern from "Python.h": char* PyString_AsString(object string) cdef class Dmx: cdef int fd def __cinit__(self, port="/dev/dmx0"): self.fd = open(port, O_WRONLY) if self.fd < 0: raise OSError("open failed") def write(self, buf): cdef char *cbuf cbuf = PyString_AsString(buf) if cbuf == NULL: raise ValueError("string buffer conversion failed") res = write(self.fd, cbuf, 513) if res < 0: raise OSError("write failed")