From 1bdf5157d0707e89b1bce0a939fbcfcf33047816 Mon Sep 17 00:00:00 2001 From: mescalinum Date: Wed, 19 Aug 2009 23:51:59 +0000 Subject: [song] is born svn path=/trunk/externals/ffext/; revision=11988 --- composer/common.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'composer/common.h') diff --git a/composer/common.h b/composer/common.h index 516836f..f9005cf 100644 --- a/composer/common.h +++ b/composer/common.h @@ -55,6 +55,8 @@ #define TRACK_SELECTOR "#TRACK" #define SONG_SELECTOR "#SONG" +static void list_snconvf(char *buf, size_t bufsz, t_symbol* s, size_t argc, t_atom* argv); + struct _track; struct _pattern; @@ -62,6 +64,7 @@ typedef struct _song { t_symbol* x_name; ArrayListDeclare(x_tracks, struct _track*, t_int); + struct _track* x_mastertrack; } t_song; typedef struct _song_proxy @@ -70,6 +73,7 @@ typedef struct _song_proxy t_outlet* outlet; t_song* x_song; t_int b_editor_open; + t_symbol* rcv; } t_song_proxy; typedef struct _track @@ -99,20 +103,25 @@ typedef struct _pattern } t_pattern; static t_song* song_new(t_symbol* song_name); +static void song_mastertrack_fix_cols(t_song* x); static void song_free(t_song* x); static t_song* song_get(t_symbol* song_name); static int song_exists(t_symbol* song_name); static t_track* track_new(t_symbol* song_name, t_symbol* track_name, t_int columns); +static t_track* mastertrack_new(t_song* song, t_symbol* track_name, t_int columns); +static t_track* song_create_track(t_song* x, t_symbol* track_name, t_int columns); static void track_free(t_track* x); static t_track* track_get(t_symbol* song_name, t_symbol* track_name); static int track_exists(t_symbol* song_name, t_symbol* track_name); +static void track_binbuf_save(t_track* x); static t_pattern* pattern_new(t_track* track, t_symbol* name, t_int rows); static t_pattern* pattern_clone(t_pattern* src, t_symbol* newname); static void pattern_free(t_pattern* x); static void pattern_rename(t_pattern* x, t_symbol* newname); static void pattern_resize(t_pattern *x, t_int newsize); +static void pattern_resize_cols(t_pattern* x, t_int newcols); static void pattern_new_empty_row(t_pattern* x); static t_atom* pattern_getrow(t_pattern* x, t_int row); static t_atom* pattern_clone_row(t_pattern* x, t_atom* row); @@ -127,7 +136,27 @@ static t_song_proxy* song_proxy_new(t_symbol* song_name); static void song_proxy_free(t_song_proxy* x); static void song_proxy_float(t_song_proxy* x, t_floatarg f); static void song_proxy_properties(t_gobj* z, t_glist* owner); +static void song_proxy_properties_close(t_gobj* z, t_glist* owner); static void song_proxy_save(t_gobj* z, t_binbuf* b); +static t_atom* song_proxy_gettracks(t_song_proxy* x); +static void song_proxy_gettracks_o(t_song_proxy* x); +static t_int song_proxy_gettracks_count(t_song_proxy* x); +static void song_proxy_gettracks_count_o(t_song_proxy* x); +static void song_proxy_anything(t_song_proxy* x, t_symbol* s, int argc, t_atom* argv); +static void song_proxy_loaddata(t_song_proxy* x, t_symbol* s, int argc, t_atom* argv); +static t_atom* song_proxy_getpatternlength(t_song_proxy* x, t_symbol* pat_name); +static void song_proxy_editcmd(t_song_proxy* x, t_symbol* s_, int argc, t_atom* argv_); +static void song_proxy_sendgui(t_song_proxy* x, t_symbol* s, int argc, t_atom* argv); +static void song_proxy_setrow(t_song_proxy* x, t_symbol* sel, int argc, t_atom* argv); +static t_atom* song_proxy_getrow(t_song_proxy* x, t_symbol* pat_name, t_floatarg rownum); +static t_atom* song_proxy_getrow_with_header(t_song_proxy* x, t_symbol* pat_name, t_floatarg rownum); +static void song_proxy_getrow_o(t_song_proxy* x, t_symbol* pat_name, t_floatarg rownum); +static void song_proxy_setcell(t_song_proxy* x, t_symbol* sel, int argc, t_atom* argv); +static t_atom* song_proxy_getcell(t_song_proxy* x, t_symbol* pat_name, t_floatarg rownum, t_floatarg colnum); +static t_atom* song_proxy_getcell_with_header(t_song_proxy* x, t_symbol* pat_name, t_floatarg rownum, t_floatarg colnum); +static void song_proxy_getcell_o(t_song_proxy* x, t_symbol* pat_name, t_floatarg rownum, t_floatarg colnum); +static t_pattern* song_proxy_resizepattern(t_song_proxy* x, t_symbol* name, t_floatarg rows); +static t_atom* song_proxy_get_track_names(t_song_proxy* x); void track_proxy_setup(void); static t_track_proxy* track_proxy_new(t_symbol* song_name, t_symbol* track_name, t_floatarg cols); -- cgit v1.2.1