From 3c83bb159ecc7a6bb3cc790d508c6e1dbfebd07c Mon Sep 17 00:00:00 2001 From: "N.N." Date: Wed, 2 Mar 2005 02:48:57 +0000 Subject: Added GOP supoort svn path=/trunk/externals/unauthorized/; revision=2592 --- filterbank~/CHANGES.LOG | 4 ++ filterbank~/Makefile | 2 +- filterbank~/filterbank~.c | 93 ++++++++++++++++++++++------------------------- filterbank~/filterbank~.h | 2 +- 4 files changed, 50 insertions(+), 51 deletions(-) (limited to 'filterbank~') diff --git a/filterbank~/CHANGES.LOG b/filterbank~/CHANGES.LOG index 63318c7..a0b4205 100644 --- a/filterbank~/CHANGES.LOG +++ b/filterbank~/CHANGES.LOG @@ -1,2 +1,6 @@ +0.3 + Added GOP support +0.2 + Adapted for pd 0.37 0.1 First filterbank~ implementation diff --git a/filterbank~/Makefile b/filterbank~/Makefile index 1052ae7..121a5c8 100644 --- a/filterbank~/Makefile +++ b/filterbank~/Makefile @@ -79,7 +79,7 @@ LINUXINCLUDE = -I../../src cc $(LINUXCFLAGS) $(LINUXINCLUDE) -o $*.o -c $*.c .c.pd_linux: - ../tk2c.bash < $*.tk > $*.tk2c + ./tk2c.bash < $*.tk > $*.tk2c cc $(LINUXCFLAGS) $(LINUXINCLUDE) -o $*.o -c $*.c ld -export_dynamic -shared -o $*.pd_linux $*.o -lc -lm strip --strip-unneeded $*.pd_linux diff --git a/filterbank~/filterbank~.c b/filterbank~/filterbank~.c index 09dcb8f..51a2998 100644 --- a/filterbank~/filterbank~.c +++ b/filterbank~/filterbank~.c @@ -35,7 +35,6 @@ #ifdef NT #include -#define random rand #else #include #endif @@ -46,7 +45,7 @@ #define FILTERBANK_OUTLET_WIDTH 5 #define FILTERBANK_HEIGHT 16 -static char *filterbank_version = "filterbank : responses from a set of band-pass filters, version 0.1 (ydegoyon@free.fr)"; +static char *filterbank_version = "filterbank : responses from a set of band-pass filters, version 0.3 (ydegoyon@free.fr)"; t_widgetbehavior filterbank_widgetbehavior; static t_class *filterbank_class_tilde; @@ -132,34 +131,34 @@ static void filterbank_draw_new(t_filterbank_tilde *x, t_glist *glist) SYS_VGUI7(".x%x.c create rectangle %d %d %d %d -fill #FFFFFF -tags %xFILTERBANK\n", canvas, - x->x_obj.te_xpix, - x->x_obj.te_ypix, - x->x_obj.te_xpix + x->x_width, - x->x_obj.te_ypix + x->x_height, + text_xpix(&x->x_obj, glist), + text_ypix(&x->x_obj, glist), + text_xpix(&x->x_obj, glist) + x->x_width, + text_ypix(&x->x_obj, glist) + x->x_height, x); SYS_VGUI7(".x%x.c create rectangle %d %d %d %d -fill #000000 -tags %xSIN\n", canvas, - x->x_obj.te_xpix, - x->x_obj.te_ypix-1, - x->x_obj.te_xpix+7, - x->x_obj.te_ypix, + text_xpix(&x->x_obj, glist), + text_ypix(&x->x_obj, glist)-1, + text_xpix(&x->x_obj, glist)+7, + text_ypix(&x->x_obj, glist), x); for ( fi=0; fix_nbfilters; fi++ ) { char color[8]; - sprintf( color, "#%.2x%.2x%.2x", random() % 256, random() % 256, random() % 256 ); + sprintf( color, "#%.2x%.2x%.2x", (int)random() % 256, (int)random() % 256, (int)random() % 256 ); SYS_VGUI11(".x%x.c create polygon %d %d %d %d %d %d -outline #000000 -fill %s -tags %xFILTER%d\n", canvas, - x->x_obj.te_xpix + fi*x->x_width/x->x_nbfilters, - x->x_obj.te_ypix, - x->x_obj.te_xpix + fi*x->x_width/x->x_nbfilters + x->x_width/(2*x->x_nbfilters), - x->x_obj.te_ypix + x->x_height, - x->x_obj.te_xpix + (fi+1)*x->x_width/x->x_nbfilters, - x->x_obj.te_ypix, + text_xpix(&x->x_obj, glist) + fi*x->x_width/x->x_nbfilters, + text_ypix(&x->x_obj, glist), + text_xpix(&x->x_obj, glist) + fi*x->x_width/x->x_nbfilters + x->x_width/(2*x->x_nbfilters), + text_ypix(&x->x_obj, glist) + x->x_height, + text_xpix(&x->x_obj, glist) + (fi+1)*x->x_width/x->x_nbfilters, + text_ypix(&x->x_obj, glist), color, x, fi); } } @@ -174,30 +173,30 @@ static void filterbank_draw_move(t_filterbank_tilde *x, t_glist *glist) SYS_VGUI7(".x%x.c coords %xFILTERBANK %d %d %d %d\n", canvas, x, - x->x_obj.te_xpix, - x->x_obj.te_ypix, - x->x_obj.te_xpix + x->x_width, - x->x_obj.te_ypix + x->x_height + text_xpix(&x->x_obj, glist), + text_ypix(&x->x_obj, glist), + text_xpix(&x->x_obj, glist) + x->x_width, + text_ypix(&x->x_obj, glist) + x->x_height ); SYS_VGUI7(".x%x.c coords %xSIN %d %d %d %d\n", canvas, x, - x->x_obj.te_xpix, - x->x_obj.te_ypix-1, - x->x_obj.te_xpix+7, - x->x_obj.te_ypix + text_xpix(&x->x_obj, glist), + text_ypix(&x->x_obj, glist)-1, + text_xpix(&x->x_obj, glist)+7, + text_ypix(&x->x_obj, glist) ); for ( fi=0; fix_nbfilters; fi++ ) { SYS_VGUI10(".x%x.c coords %xFILTER%d %d %d %d %d %d %d\n", canvas, x, fi, - x->x_obj.te_xpix + fi*x->x_width/x->x_nbfilters, - x->x_obj.te_ypix, - x->x_obj.te_xpix + fi*x->x_width/x->x_nbfilters + x->x_width/(2*x->x_nbfilters), - x->x_obj.te_ypix + x->x_height, - x->x_obj.te_xpix + (fi+1)*x->x_width/x->x_nbfilters, - x->x_obj.te_ypix + text_xpix(&x->x_obj, glist) + fi*x->x_width/x->x_nbfilters, + text_ypix(&x->x_obj, glist), + text_xpix(&x->x_obj, glist) + fi*x->x_width/x->x_nbfilters + x->x_width/(2*x->x_nbfilters), + text_ypix(&x->x_obj, glist) + x->x_height, + text_xpix(&x->x_obj, glist) + (fi+1)*x->x_width/x->x_nbfilters, + text_ypix(&x->x_obj, glist) ); } @@ -241,10 +240,10 @@ static void filterbank_getrect(t_gobj *z, t_glist *owner, { t_filterbank_tilde* x = (t_filterbank_tilde*)z; - *xp1 = x->x_obj.te_xpix; - *yp1 = x->x_obj.te_ypix; - *xp2 = x->x_obj.te_xpix+x->x_width; - *yp2 = x->x_obj.te_ypix+x->x_height; + *xp1 = text_xpix(&x->x_obj, owner); + *yp1 = text_ypix(&x->x_obj, owner); + *xp2 = text_xpix(&x->x_obj, owner)+x->x_width; + *yp2 = text_ypix(&x->x_obj, owner)+x->x_height; } static void filterbank_save(t_gobj *z, t_binbuf *b) @@ -253,7 +252,7 @@ static void filterbank_save(t_gobj *z, t_binbuf *b) t_int ii; binbuf_addv(b, "ssiisiii", gensym("#X"),gensym("obj"), - (t_int)x->x_obj.te_xpix, (t_int)x->x_obj.te_ypix, + (t_int)text_xpix(&x->x_obj, x->x_glist), (t_int)text_ypix(&x->x_obj, x->x_glist), gensym("filterbank~"), x->x_lowfreq, x->x_highfreq, x->x_nbfilters ); binbuf_addv(b, ";"); @@ -380,14 +379,14 @@ static void filterbank_delete(t_gobj *z, t_glist *glist) static void filterbank_displace(t_gobj *z, t_glist *glist, int dx, int dy) { t_filterbank_tilde *x = (t_filterbank_tilde *)z; - int xold = x->x_obj.te_xpix; - int yold = x->x_obj.te_ypix; + int xold = text_xpix(&x->x_obj, glist); + int yold = text_ypix(&x->x_obj, glist); // post( "filterbank_displace dx=%d dy=%d", dx, dy ); x->x_obj.te_xpix += dx; x->x_obj.te_ypix += dy; - if(xold != x->x_obj.te_xpix || yold != x->x_obj.te_ypix) + if(xold != text_xpix(&x->x_obj, glist) || yold != text_ypix(&x->x_obj, glist) ) { filterbank_draw_move(x, x->x_glist); } @@ -655,18 +654,14 @@ void filterbank_tilde_setup(void) filterbank_widgetbehavior.w_deletefn = filterbank_delete; filterbank_widgetbehavior.w_visfn = filterbank_vis; filterbank_widgetbehavior.w_clickfn = NULL; - /* - * : As of 0.37, pd does not have these last - * two elements in t_widgetbehavoir anymore. - * see pd/src/notes.txt: - * savefunction and dialog into class structure - */ -#if PD_MINOR_VERSION < 37 || !defined(PD_MINOR_VERSION) + +#if PD_MINOR_VERSION >= 37 + class_setpropertiesfn(filterbank_class_tilde, filterbank_properties); + class_setsavefn(filterbank_class_tilde, filterbank_save); +#else filterbank_widgetbehavior.w_propertiesfn = filterbank_properties; filterbank_widgetbehavior.w_savefn = filterbank_save; -#else - class_setsavefn(filterbank_class_tilde, &filterbank_save); - class_setpropertiesfn(filterbank_class_tilde, &filterbank_properties); #endif class_setwidget(filterbank_class_tilde, &filterbank_widgetbehavior); + class_sethelpsymbol(filterbank_class_tilde, gensym("filterbank~.pd")); } diff --git a/filterbank~/filterbank~.h b/filterbank~/filterbank~.h index e458f61..7b3be8d 100644 --- a/filterbank~/filterbank~.h +++ b/filterbank~/filterbank~.h @@ -40,7 +40,7 @@ #include #include #include -#include +#include "m_pd.h" #include "m_imp.h" #include "g_canvas.h" #include "t_tk.h" -- cgit v1.2.1