diff options
author | N.N. <nimon@users.sourceforge.net> | 2012-11-01 11:28:48 +0000 |
---|---|---|
committer | N.N. <nimon@users.sourceforge.net> | 2012-11-01 11:28:48 +0000 |
commit | de6aef19694a14a0b5dce0ea6ab9be54ab4d1239 (patch) | |
tree | e6801453de9aab70d02794e546fcf3790b6f1b2a /shmem.c | |
parent | 057c804e636c93b5e9f3fc989770ece355c2e235 (diff) |
shmem : adding memread message
svn path=/trunk/externals/share_mem/; revision=16505
Diffstat (limited to 'shmem.c')
-rw-r--r-- | shmem.c | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -114,6 +114,19 @@ void shmem_dump(t_shmem *x, t_symbol *unused, int argc, t_atom *argv) } } +void shmem_read(t_shmem *x, t_float index) +{ + int i, vecsize, index_max, shmem_offset; + t_garray *a; + t_word *vec; + + shmem_offset = index; + if (shmem_offset < 0) shmem_offset = 0; + if (shmem_offset > x->segment_size-1) i = x->segment_size-1; + // post("i=%d", offset); + outlet_float(x->x_obj.ob_outlet, x->share_memory[shmem_offset]); +} + t_class *shmem_class; void *shmem_new( t_floatarg id, t_floatarg size) @@ -167,5 +180,6 @@ void shmem_setup(void) class_addmethod(shmem_class, (t_method)shmem_set, gensym("memset"), A_GIMME, 0); class_addmethod(shmem_class, (t_method)shmem_dump, gensym("memdump"), A_GIMME, 0); class_addmethod(shmem_class, (t_method)shmem_clear, gensym("memclear"), 0); + class_addmethod(shmem_class, (t_method)shmem_read, gensym("memread"),A_DEFFLOAT, 0); } |