aboutsummaryrefslogtreecommitdiff
path: root/dmx512/src/dmxout_b.c
diff options
context:
space:
mode:
Diffstat (limited to 'dmx512/src/dmxout_b.c')
-rw-r--r--dmx512/src/dmxout_b.c80
1 files changed, 40 insertions, 40 deletions
diff --git a/dmx512/src/dmxout_b.c b/dmx512/src/dmxout_b.c
index 968110d..9623397 100644
--- a/dmx512/src/dmxout_b.c
+++ b/dmx512/src/dmxout_b.c
@@ -1,6 +1,8 @@
/******************************************************
*
- * dmxout - implementation file
+ * dmxout_b - implementation file
+ *
+ * this is the "blocking" version
*
* copyleft (c) IOhannes m zmölnig
*
@@ -20,12 +22,12 @@
#include <string.h>
#include <stdio.h>
-static t_class *dmxout_class;
-static t_class *dmxout_class2;
+static t_class *dmxout_b_class;
+static t_class *dmxout_b_class2;
#define NUM_DMXVALUES 512
-typedef struct _dmxout
+typedef struct _dmxout_b
{
t_object x_obj;
@@ -36,15 +38,15 @@ typedef struct _dmxout
int x_portrange;
dmx_t x_values[NUM_DMXVALUES];
-} t_dmxout;
+} t_dmxout_b;
-static void dmxout_clearbuf(t_dmxout*x)
+static void dmxout_b_clearbuf(t_dmxout_b*x)
{
int i=0;
for(i=0; i<NUM_DMXVALUES; i++) x->x_values[i]=0;
}
-static void dmxout_close(t_dmxout*x)
+static void dmxout_b_close(t_dmxout_b*x)
{
if(x->x_device>=0) {
close(x->x_device);
@@ -53,7 +55,7 @@ static void dmxout_close(t_dmxout*x)
}
-static void dmxout_open(t_dmxout*x, t_symbol*s_devname)
+static void dmxout_b_open(t_dmxout_b*x, t_symbol*s_devname)
{
int argc=2;
const char *args[2] = {"--dmx", s_devname->s_name};
@@ -61,32 +63,30 @@ static void dmxout_open(t_dmxout*x, t_symbol*s_devname)
const char*devname="";
int fd;
- dmxout_close(x);
+ dmxout_b_close(x);
if(s_devname && s_devname->s_name)
devname=s_devname->s_name;
- // strncpy(args[0], "--dmx", MAXPDSTRING);
- // strncpy(args[1], devname, MAXPDSTRING);
- verbose(2, "[dmxout]: trying to open '%s'", args[1]);
+ verbose(2, "[dmxout_b]: trying to open '%s'", args[1]);
devname=DMXdev(&argc, argv);
if(!devname){
pd_error(x, "couldn't find DMX device");
return;
}
- verbose(1, "[dmxout] opening %s", devname);
+ verbose(1, "[dmxout_b] opening %s", devname);
fd = open (devname, O_WRONLY | O_NONBLOCK);
if(fd!=-1) {
x->x_device=fd;
- dmxout_clearbuf(x);
+ dmxout_b_clearbuf(x);
} else {
pd_error(x, "failed to open DMX-device '%s'",devname);
}
}
-static void dmxout_doout(t_dmxout*x) {
+static void dmxout_b_doout(t_dmxout_b*x) {
int device = x->x_device;
if(device<=0) {
pd_error(x, "no DMX universe found");
@@ -98,14 +98,14 @@ static void dmxout_doout(t_dmxout*x) {
}
-static void dmxout_doout1(t_dmxout*x, short port, unsigned char value)
+static void dmxout_b_doout1(t_dmxout_b*x, short port, unsigned char value)
{
x->x_values[port]=value;
- dmxout_doout(x);
+ dmxout_b_doout(x);
}
-static void dmxout_float(t_dmxout*x, t_float f)
+static void dmxout_b_float(t_dmxout_b*x, t_float f)
{
unsigned char val=(unsigned char)f;
short port = (short)x->x_port;
@@ -118,10 +118,10 @@ static void dmxout_float(t_dmxout*x, t_float f)
return;
}
- dmxout_doout1(x, port, val);
+ dmxout_b_doout1(x, port, val);
}
-static void dmxout_list(t_dmxout*x, t_symbol*s, int argc, t_atom*argv)
+static void dmxout_b_list(t_dmxout_b*x, t_symbol*s, int argc, t_atom*argv)
{
int count=(argc<x->x_portrange)?argc:x->x_portrange;
int i=0;
@@ -146,10 +146,10 @@ static void dmxout_list(t_dmxout*x, t_symbol*s, int argc, t_atom*argv)
pd_error(x, "%d valu%s out of bound [0..255]", errors, (1==errors)?"e":"es");
}
- dmxout_doout(x);
+ dmxout_b_doout(x);
}
-static void dmxout_port(t_dmxout*x, t_float f_baseport, t_floatarg f_portrange)
+static void dmxout_b_port(t_dmxout_b*x, t_float f_baseport, t_floatarg f_portrange)
{
short baseport =(short)f_baseport;
short portrange=(short)f_portrange;
@@ -175,23 +175,23 @@ static void dmxout_port(t_dmxout*x, t_float f_baseport, t_floatarg f_portrange)
x->x_portrange=portrange;
}
-static void *dmxout_new(t_symbol*s, int argc, t_atom*argv)
+static void *dmxout_b_new(t_symbol*s, int argc, t_atom*argv)
{
t_floatarg baseport=0.f, portrange=0.f;
- t_dmxout *x = 0;
+ t_dmxout_b *x = 0;
switch(argc) {
case 2:
- x=(t_dmxout *)pd_new(dmxout_class2);
+ x=(t_dmxout_b *)pd_new(dmxout_b_class2);
x->x_portinlet=inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("port"));
baseport=atom_getfloat(argv);
portrange=atom_getfloat(argv+1);
- dmxout_port(x, baseport, portrange);
+ dmxout_b_port(x, baseport, portrange);
break;
case 1:
baseport=atom_getfloat(argv);
case 0:
- x=(t_dmxout *)pd_new(dmxout_class);
+ x=(t_dmxout_b *)pd_new(dmxout_b_class);
x->x_portinlet=floatinlet_new(&x->x_obj, &x->x_port);
x->x_port = baseport;
x->x_portrange = -1;
@@ -201,40 +201,40 @@ static void *dmxout_new(t_symbol*s, int argc, t_atom*argv)
}
x->x_device=-1;
- dmxout_open(x, gensym(""));
+ dmxout_b_open(x, gensym(""));
return (x);
}
-static void *dmxout_free(t_dmxout*x)
+static void *dmxout_b_free(t_dmxout_b*x)
{
- dmxout_close(x);
+ dmxout_b_close(x);
}
-void dmxout_setup(void)
+void dmxout_b_setup(void)
{
#ifdef DMX4PD_POSTBANNER
DMX4PD_POSTBANNER;
#endif
- dmxout_class = class_new(gensym("dmxout"), (t_newmethod)dmxout_new, (t_method)dmxout_free,
- sizeof(t_dmxout),
+ dmxout_b_class = class_new(gensym("dmxout_b"), (t_newmethod)dmxout_b_new, (t_method)dmxout_b_free,
+ sizeof(t_dmxout_b),
0,
A_GIMME, A_NULL);
- class_addfloat(dmxout_class, dmxout_float);
- class_addmethod(dmxout_class, (t_method)dmxout_open, gensym("open"), A_SYMBOL, A_NULL);
+ class_addfloat(dmxout_b_class, dmxout_b_float);
+ class_addmethod(dmxout_b_class, (t_method)dmxout_b_open, gensym("open"), A_SYMBOL, A_NULL);
- dmxout_class2 = class_new(gensym("dmxout"), (t_newmethod)dmxout_new, (t_method)dmxout_free,
- sizeof(t_dmxout),
+ dmxout_b_class2 = class_new(gensym("dmxout_b"), (t_newmethod)dmxout_b_new, (t_method)dmxout_b_free,
+ sizeof(t_dmxout_b),
0,
A_GIMME, A_NULL);
- class_addlist(dmxout_class2, dmxout_list);
+ class_addlist(dmxout_b_class2, dmxout_b_list);
- class_addmethod(dmxout_class2, (t_method)dmxout_port, gensym("port"),
+ class_addmethod(dmxout_b_class2, (t_method)dmxout_b_port, gensym("port"),
A_FLOAT, A_DEFFLOAT, A_NULL);
- class_addmethod(dmxout_class2, (t_method)dmxout_open, gensym("open"), A_SYMBOL, A_NULL);
+ class_addmethod(dmxout_b_class2, (t_method)dmxout_b_open, gensym("open"), A_SYMBOL, A_NULL);
}