aboutsummaryrefslogtreecommitdiff
path: root/sys_gui.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys_gui.c')
-rw-r--r--sys_gui.c51
1 files changed, 18 insertions, 33 deletions
diff --git a/sys_gui.c b/sys_gui.c
index 578e3f5..753c190 100644
--- a/sys_gui.c
+++ b/sys_gui.c
@@ -3,8 +3,6 @@
#include <m_pd.h>
#include "g_canvas.h"
-#define DEBUG(x)
-
static t_class *sys_gui_class;
typedef struct _sys_gui
@@ -15,17 +13,27 @@ typedef struct _sys_gui
char *send_buffer;
} t_sys_gui;
-static void sys_gui_send_finished(t_sys_gui *x)
+static void execute_buffer(t_sys_gui *x, int argc, t_atom *argv)
{
- char message[MAXPDSTRING];
- sprintf(message,"pdsend \"%s finished\";", x->x_receive_symbol->s_name );
- sys_gui(message);
+ int i = 0;
+ char buf[MAXPDSTRING];
+
+ for(i=0;i<argc;++i)
+ {
+ atom_string(argv + i, buf, MAXPDSTRING);
+ strncat(x->send_buffer, buf, MAXPDSTRING - strlen(x->send_buffer));
+ strncat(x->send_buffer, " ", MAXPDSTRING - strlen(x->send_buffer));
+ }
+ strncat(x->send_buffer, " ;\n", MAXPDSTRING - strlen(x->send_buffer));
+ snprintf(buf, MAXPDSTRING - strlen(x->send_buffer),
+ "pdsend \"%s finished\";\n", x->x_receive_symbol->s_name );
+ strncat(x->send_buffer, buf, MAXPDSTRING - strlen(x->send_buffer));
+ sys_gui(x->send_buffer);
}
static void sys_gui_bang(t_sys_gui *x)
{
sys_gui(x->send_buffer);
- sys_gui_send_finished(x);
}
static void sys_gui_finished(t_sys_gui *x)
@@ -35,37 +43,14 @@ static void sys_gui_finished(t_sys_gui *x)
static void sys_gui_anything(t_sys_gui *x, t_symbol *s, int argc, t_atom *argv)
{
- DEBUG(post("sys_gui_anything"););
- int i = 0;
- char buf[MAXPDSTRING];
-
snprintf(x->send_buffer, MAXPDSTRING, "%s ", s->s_name);
- for(i=0;i<argc;++i)
- {
- atom_string(argv + i, buf, MAXPDSTRING);
- strncat(x->send_buffer, buf, MAXPDSTRING - strlen(x->send_buffer));
- strncat(x->send_buffer, " ", MAXPDSTRING - strlen(x->send_buffer));
- }
- strncat(x->send_buffer, " ;\n", 3);
- sys_gui(x->send_buffer);
- sys_gui_send_finished(x);
+ execute_buffer(x, argc, argv);
}
static void sys_gui_list(t_sys_gui *x, t_symbol *s, int argc, t_atom *argv)
{
- DEBUG(post("sys_gui_list"););
- int i = 0;
- char buf[MAXPDSTRING];
-
- for(i=0;i<argc;++i)
- {
- atom_string(argv + i, buf, MAXPDSTRING);
- strncat(x->send_buffer, buf, MAXPDSTRING - strlen(x->send_buffer));
- strncat(x->send_buffer, " ", MAXPDSTRING - strlen(x->send_buffer));
- }
- strncat(x->send_buffer, " ;\n", MAXPDSTRING - strlen(x->send_buffer));
- sys_gui(x->send_buffer);
- sys_gui_send_finished(x);
+ x->send_buffer = '\0';
+ execute_buffer(x, argc, argv);
}
static void sys_gui_free(t_sys_gui *x)