aboutsummaryrefslogtreecommitdiff
path: root/dmx512
diff options
context:
space:
mode:
authorIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2008-06-13 13:39:54 +0000
committerIOhannes m zmölnig <zmoelnig@iem.at>2015-10-14 15:08:23 +0200
commit44824cfa333691b8e300adbc47bcadcde6691979 (patch)
tree98e2c1c698e6b7b339eaecb0135e33920142f318 /dmx512
parent124ec02a0b4114bb52bcb8c44c4d76de737f6e6c (diff)
tell that [dmxin] isn't yet there...
svn path=/trunk/externals/iem/dmx512/; revision=9993
Diffstat (limited to 'dmx512')
-rw-r--r--dmx512/src/dmx4pd.h5
-rw-r--r--dmx512/src/dmxin.c50
-rw-r--r--dmx512/src/dmxout.c5
3 files changed, 52 insertions, 8 deletions
diff --git a/dmx512/src/dmx4pd.h b/dmx512/src/dmx4pd.h
index d386c28..cc6fe66 100644
--- a/dmx512/src/dmx4pd.h
+++ b/dmx512/src/dmx4pd.h
@@ -25,6 +25,11 @@
#include "m_pd.h"
+#include <dmx/dmx.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
#define DMX4PD_POSTBANNER \
diff --git a/dmx512/src/dmxin.c b/dmx512/src/dmxin.c
index 9e9e1b4..cfccd4b 100644
--- a/dmx512/src/dmxin.c
+++ b/dmx512/src/dmxin.c
@@ -17,21 +17,65 @@
#include "dmx4pd.h"
+
static t_class *dmxin_class;
typedef struct _dmxin
{
t_object x_obj;
+ int x_device;
+
+ t_outlet*x_outlet1, *x_outlet2;
} t_dmxin;
+
+
+
+static void dmxin_close(t_dmxin*x)
+{
+ if(x->x_device>=0) {
+ close(x->x_device);
+ }
+ x->x_device=-1;
+}
+
+
+static void dmxin_open(t_dmxin*x, t_symbol*s_devname)
+{
+ int argc=2;
+ const char *args[2] = {"--dmx", s_devname->s_name};
+ const char**argv=args;
+ char*devname="";
+ int fd;
+
+ if(s_devname && s_devname->s_name)
+ devname=s_devname->s_name;
+
+ // strncpy(args[0], "--dmx", MAXPDSTRING);
+ // strncpy(args[1], devname, MAXPDSTRING);
+
+ fd = open (DMXINdev(&argc, argv), O_RDONLY);
+
+ if(fd!=-1) {
+ dmxin_close(x);
+ x->x_device=fd;
+ }
+}
+
+
static void *dmxin_new(void)
{
- t_dmxin *x = (t_dmxin *)pd_new(dmxin_class);
- return (x);
+ if(0) {
+ t_dmxin *x = (t_dmxin *)pd_new(dmxin_class);
+ return (x);
+ } else {
+ error("[dmxin] not yet implemented");
+ return 0;
+ }
}
static void *dmxin_free(t_dmxin*x)
{
-
+ dmxin_close(x);
}
void dmxin_setup(void)
diff --git a/dmx512/src/dmxout.c b/dmx512/src/dmxout.c
index b9066cb..fc3a875 100644
--- a/dmx512/src/dmxout.c
+++ b/dmx512/src/dmxout.c
@@ -17,14 +17,9 @@
#include "dmx4pd.h"
-#include <fcntl.h>
-#include <sys/stat.h>
#include <unistd.h>
#include <string.h>
-
-#include <dmx/dmx.h>
-
static t_class *dmxout_class;
typedef struct _dmxout