The unified diff between revisions [84a0b39f..] and [afdbb938..] is displayed below. It can also be downloaded as a raw diff.

#
# old_revision [84a0b39f678926ca2848e2a0da300842a9cf5809]
# new_revision [afdbb9388305ae66464ad4acb0437922656e3059]
#
# add_file "src/lsi/plugin.h"
#  content [2405fd3aa66be3d2a1ca3a1ca93bfcf258d4c8e9]
# 
# add_file "src/lsi/plugins.c"
#  content [0f20069da015e07f58b0828acdc3644a197dc794]
# 
# add_file "src/lsi/plugins.h"
#  content [84f2f91c055062f2bbf7fd72c9079a3967f22a39]
#
============================================================
--- /dev/null	
+++ src/lsi/plugin.h	2405fd3aa66be3d2a1ca3a1ca93bfcf258d4c8e9
@@ -0,0 +1,10 @@
+/* plugin.h */
+
+struct plugin {
+	char *pl_name;
+	int (*pl_init)(void);
+	void (*pl_shutdown)(void);
+	int pl_active;
+	/* function table? */
+};
+
============================================================
--- /dev/null	
+++ src/lsi/plugins.c	0f20069da015e07f58b0828acdc3644a197dc794
@@ -0,0 +1,23 @@
+/* plugins.c */
+
+/*
+ * This is the master table of plugins. Add a plugin here
+ * for it to take effect.
+ */
+
+#include "plugin.h"
+
+#include "midi.h"
+#include "dmx.h"
+#include "beatdetect.h"
+#include "mouse.h"
+
+struct plugin plugins_table[] = {
+	{"midi", midi_init, midi_close, 0},
+	{"dmx", dmx_init, dmx_close, 0},
+	{"beatdetect", beatdetect_init, beatdetect_close, 0},
+	{"mouse", mouse_init, mouse_close, 0},
+};
+
+int nplugins = (sizeof(plugins_table) / sizeof(struct plugin));
+
============================================================
--- /dev/null	
+++ src/lsi/plugins.h	84f2f91c055062f2bbf7fd72c9079a3967f22a39
@@ -0,0 +1,13 @@
+/* plugins.h */
+
+/*
+ * The master table of plugins is found in plugins.c. This is
+ * just a declaration to allow the table to be used.
+ */
+
+#include "plugin.h"
+
+extern struct plugin plugins_table[];
+
+extern int nplugins;
+