diff options
-rw-r--r-- | sys_gui.c | 51 |
1 files changed, 18 insertions, 33 deletions
@@ -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) |