diff options
author | Hans-Christoph Steiner <eighthave@users.sourceforge.net> | 2011-10-23 15:06:17 +0000 |
---|---|---|
committer | Hans-Christoph Steiner <eighthave@users.sourceforge.net> | 2011-10-23 15:06:17 +0000 |
commit | d313ec9fc9c500213f3af58bfa4a4147504f94db (patch) | |
tree | fb9f124e4f2b6f2777d81acd97c105175eede214 | |
parent | 2ea6389b03afd2b315cab28ade3414cfcf939f74 (diff) |
nailed down finish-bang logic
svn path=/trunk/externals/hcs/; revision=15647
-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) |