aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Christoph Steiner <eighthave@users.sourceforge.net>2003-11-17 17:15:56 +0000
committerHans-Christoph Steiner <eighthave@users.sourceforge.net>2003-11-17 17:15:56 +0000
commit9261cbf775156956f0c6a490c853429089c0f6f5 (patch)
treec63d9f0c3ada6fe3ca1af23a45646386e297ad7e
parent51d523b521fa01f61ec8e2b5b07ef6c17846eacb (diff)
first sketch of platformdummy, doesn't work yet
svn path=/trunk/externals/hcs/; revision=1191
-rw-r--r--platformdummy-help.pd12
-rw-r--r--platformdummy.c57
2 files changed, 69 insertions, 0 deletions
diff --git a/platformdummy-help.pd b/platformdummy-help.pd
new file mode 100644
index 0000000..6fcce51
--- /dev/null
+++ b/platformdummy-help.pd
@@ -0,0 +1,12 @@
+#N canvas 302 322 432 260 10;
+#X obj 156 160 platformdummy;
+#X text 18 64 [platformdummy] is an merely a space filler to take the
+place of platform-specific objects when you are running a patch on
+a platform that doesn't support specific objects.;
+#X text 18 115 Some examples of such objects are [linuxevent] and [linuxmouse]
+which only work with the Linux Event system.;
+#X text 22 198 [platformdummy] has 8 inlets and 8 outlets so that you
+won't loose the connections if the patch is saved on a platform that
+doesn't support a given object.;
+#X obj 16 5 cnv 15 400 40 empty empty platformdummy 20 12 1 14 -257472
+-66577 0;
diff --git a/platformdummy.c b/platformdummy.c
new file mode 100644
index 0000000..9a194a2
--- /dev/null
+++ b/platformdummy.c
@@ -0,0 +1,57 @@
+/* -------------------------- platformdummy ----------------------------------- */
+/* */
+/* Space filler object for objects that don't work on the given platform. */
+/* Written by Hans-Christoph Steiner <hans@eds.org> */
+/* */
+/* This program is free software; you can redistribute it and/or */
+/* modify it under the terms of the GNU General Public License */
+/* as published by the Free Software Foundation; either version 2 */
+/* of the License, or (at your option) any later version. */
+/* */
+/* This program is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+/* GNU General Public License for more details. */
+/* */
+/* You should have received a copy of the GNU General Public License */
+/* along with this program; if not, write to the Free Software */
+/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+/* */
+/* Based on PureData by Miller Puckette and others. */
+/* */
+/* ---------------------------------------------------------------------------- */
+
+#include <m_pd.h>
+
+#define INLET_NUMBER 8
+#define OUTLET_NUMBER 8
+
+typedef struct platformdummy {
+ t_object x_ob;
+ t_symbol *x_symbol;
+ t_outlet *x_outlets[OUTLET_NUMBER];
+} t_platformdummy;
+
+t_class *platformdummy_class;
+
+void *platformdummy_new(void) {
+ int i;
+
+ t_platformdummy *x = (t_platformdummy *)pd_new(platformdummy_class);
+
+/* counter starts at one since Pd makes the first inlet automatically */
+ for (i=1;i<INLET_NUMBER;x++)
+ symbolinlet_new(&x->x_ob, &x->x_symbol);
+
+ for (i=0;i<OUTLET_NUMBER;x++)
+ x->x_outlets[i] = outlet_new(&x->x_ob, gensym("float"));
+
+ return (void *)x;
+}
+
+void platformdummy_setup(void) {
+ platformdummy_class = class_new(gensym("platformdummy"), (t_newmethod)platformdummy_new,
+ 0, sizeof(t_platformdummy), 0, 0);
+ class_sethelpsymbol(platformdummy_class, gensym("platformdummy-help.pd"));
+}
+