Example #1
0
File: pdp_ca.c Project: zwizwa/pdp
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);
    }
}
Example #2
0
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)(&param_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;
    }
}