static void pdp_ca_bang(t_pdp_ca *x) { /* we don't use input packets for testing dropping here but check the queue_id to see if processing is still going on */ if (-1 == x->x_queue_id){ pdp_queue_add(x, pdp_ca_bang_thread, pdp_ca_sendpacket, &x->x_queue_id); } else{ pdp_control_notify_drop(-1); } }
static void pdp_frei0r_process(t_pdp_frei0r *x) { int encoding; t_pdp *header = 0; char *parname; unsigned pi; int partype; t_atom plist[2]; t_atom tlist[2]; t_atom vlist[2]; f0r_param_info_t param_infos; /* check if image data packets are compatible */ if ( (header = pdp_packet_header(x->x_packet1)) && (PDP_BITMAP == header->type)){ /* pdp_frei0r_process inputs and write into active inlet */ switch(pdp_packet_header(x->x_packet1)->info.image.encoding){ case PDP_BITMAP_RGBA: x->x_packet2 = pdp_packet_clone_rw(x->x_packet1); pdp_queue_add(x, pdp_frei0r_process_rgba, pdp_frei0r_sendpacket, &x->x_queue_id); break; default: /* don't know the type, so dont pdp_frei0r_process */ break; } } // hack to display infos of first loaded plugin if ( ( x->x_plugin_count>0 ) && ( !x->x_infosok ) ) { outlet_symbol(x->x_pname, gensym( x->plugins[x->x_plugin].name ) ); outlet_float(x->x_nparams, (float)x->plugins[x->x_plugin].numparameters); for ( pi=0; pi<x->plugins[x->x_plugin].numparameters; pi++ ) { (*x->plugins[x->x_plugin].f0r_get_param_info)(¶m_infos, pi); SETFLOAT(&plist[0], pi); SETSYMBOL(&plist[1], gensym(param_infos.name) ); outlet_list( x->x_parname, &s_list, 2, &plist[0] ); SETFLOAT(&tlist[0], pi); SETFLOAT(&tlist[1], param_infos.type ); outlet_list( x->x_partype, &s_list, 2, &tlist[0] ); } x->x_infosok = 1; } }