From a874e13115da648dae992634c5f6ee0912f136f3 Mon Sep 17 00:00:00 2001 From: mescalinum Date: Thu, 20 Aug 2009 02:28:19 +0000 Subject: - Added preliminary support for song view in window.tk - Memory leak fixes - Add song save/load code svn path=/trunk/externals/ffext/; revision=11989 --- composer/pattern.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'composer/pattern.c') diff --git a/composer/pattern.c b/composer/pattern.c index 819c585..42109fe 100644 --- a/composer/pattern.c +++ b/composer/pattern.c @@ -90,21 +90,31 @@ static void pattern_resize(t_pattern *x, t_int newsize) { * Works only for the mastertrack (song_proxy) */ static void pattern_resize_cols(t_pattern* x, t_int newcols) { - int j; + int i,j; for(j = 0; j < x->x_rows_count; j++) { if(&x->x_rows[j]) x->x_rows[j] = (t_atom*)resizebytes(x->x_rows[j], x->x_track->x_ncolumns, newcols); else x->x_rows[j] = (t_atom*)getbytes(sizeof(t_atom) * newcols); } + if(newcols > x->x_track->x_ncolumns) { + for(j = 0; j < x->x_rows_count; j++) { + for(i = x->x_track->x_ncolumns; i < newcols; i++) + pattern_init_cell(&x->x_rows[j][i]); + } + } x->x_track->x_ncolumns = newcols; } +static void pattern_init_cell(t_atom* a) { + SETSYMBOL(a, gensym("empty")); +} + static void pattern_new_empty_row(t_pattern* x) { t_atom* rowdata = (t_atom*)getbytes(sizeof(t_atom) * x->x_track->x_ncolumns); int j; for(j = 0; j < x->x_track->x_ncolumns; j++) - SETSYMBOL(&(rowdata[j]), gensym("empty")); + pattern_init_cell(&rowdata[j]); ArrayListAdd(x->x_rows, t_atom*, rowdata); } -- cgit v1.2.1