t_osc_err osc_atom_array_s_getBoolArray(t_osc_atom_ar_s *array, char **out){ long len = osc_atom_array_s_getLen(array); if(!(*out)){ *out = osc_mem_alloc(sizeof(char) * len); } int i; for(i = 0; i < len; i++){ (*out)[i] = osc_atom_s_getBool(osc_atom_array_s_get(array, i)); } return OSC_ERR_NONE; }
void odisplay_doFullPacket(t_odisplay *x, long len, char *ptr) { osc_bundle_s_wrap_naked_message(len, ptr); long copylen = len; char *copyptr = osc_mem_alloc(len); memcpy(copyptr, ptr, len); t_osc_bndl_s *b = osc_bundle_s_alloc(copylen, copyptr); odisplay_newBundle(x, NULL, b); #ifdef OMAX_PD_VERSION jbox_redraw((t_jbox *)x); #else qelem_set(x->qelem); #endif }
void odisplay_bundle2text(t_odisplay *x) { critical_enter(x->lock); if(x->newbndl && x->bndl_s){ long len = osc_bundle_s_getLen(x->bndl_s); char ptr[len]; memcpy(ptr, osc_bundle_s_getPtr(x->bndl_s), len); critical_exit(x->lock); long bufpos = osc_bundle_s_nformat(NULL, 0, len, (char *)ptr, 0); char *buf = osc_mem_alloc(bufpos + 1); osc_bundle_s_nformat(buf, bufpos + 1, len, (char *)ptr, 0); if (bufpos != 0) { /* if(buf[bufpos - 2] == '\n'){ buf[bufpos - 2] = '\0'; } */ } else { *buf = '\0'; } #ifndef OMAX_PD_VERSION critical_enter(x->lock); if(x->text){ osc_mem_free(x->text); } x->textlen = bufpos; x->text = buf; critical_exit(x->lock); object_method(jbox_get_textfield((t_object *)x), gensym("settext"), buf); #else opd_textbox_resetText(x->textbox, buf); #endif if(buf){ //osc_mem_free(buf); } x->newbndl = 0; } critical_exit(x->lock); }
void *ocoll_new(t_symbol *msg, short argc, t_atom *argv){ t_ocoll *x; if((x = (t_ocoll *)object_alloc(ocoll_class))){ x->outlet = outlet_new((t_object *)x, NULL); x->buffer_len = 1024; if(argc){ if(atom_gettype(argv) == A_LONG){ //x->buffer_len = atom_getlong(argv); object_error((t_object *)x, "o.collect no longer takes an argument to specify its internal buffer size."); object_error((t_object *)x, "The buffer will expand as necessary."); } } x->buffer = (char *)osc_mem_alloc(x->buffer_len * sizeof(char)); memset(x->buffer, '\0', x->buffer_len); x->buffer_pos = OSC_HEADER_SIZE; osc_bundle_s_setBundleID(x->buffer); critical_new(&(x->lock)); } return(x); }
t_osc_bndl_u *osc_bundle_u_alloc(void) { t_osc_bndl_u *b = osc_mem_alloc(sizeof(t_osc_bndl_u)); memset(b, '\0', sizeof(t_osc_bndl_u)); return b; }
t_osc_msg_s *osc_message_s_alloc(void) { t_osc_msg_s *m = (t_osc_msg_s *)osc_mem_alloc(sizeof(t_osc_msg_s)); osc_message_s_initMsg(m); return m; }