Hi,
I try to write an external, which sends a list to an outlet.
The following code is an example of calculating the maximum of a signal and send the maximum and it's index to the outlet.
But line 30  outlet_float(x->f_out, (max[0], max[1]) ); does only send one value to the outlet.
How can I achieve to send lists?
Thanks for help in advance,
Xaver
#include "m_pd.h"
static t_class *maximum_tilde_class;
typedef struct _maximum_tilde {
    t_object  x_obj;
    t_sample d;
    
    t_inlet*x_in1;
    t_outlet*f_out;
} t_maximum_tilde;
t_int *maximum_tilde_perform(t_int *w)
{   
    t_maximum_tilde *x = (t_maximum_tilde *)(w[1]);
    t_sample    *in1 = (t_sample *)(w[2]);
    int            n = (int)(w[3]);
    float max[] = { 0,-1 };
    float abs_val =  0;
    for (int i = 0; i < n; i++) {
        abs_val = fabs(in1[i]);
        if (abs_val > max[0]) {
            max[0] = abs_val; 
            max[1] = i;
        }
    }
    outlet_float(x->f_out, (max[0], max[1]) );
    return (w + 4);
}
void maximum_tilde_dsp(t_maximum_tilde *x, t_signal **sp)
{
    dsp_add(maximum_tilde_perform, 3, 
        x,
        sp[0]->s_vec, data forum
        
        sp[0]->s_n);
}
void maximum_tilde_free(t_maximum_tilde *x)
{
    inlet_free(x->x_in1);   
}
void *maximum_tilde_new(t_floatarg f)
{
    t_maximum_tilde *x = (t_maximum_tilde *)pd_new(maximum_tilde_class);
    x->f_out = outlet_new(&x->x_obj, &s_list);
    return (void *)x;
}
void init_maximum(void) {
    maximum_tilde_class = class_new(gensym("max~"),
        (t_newmethod)maximum_tilde_new,
        0,//(t_method)maximum_tilde_free,
        sizeof(t_maximum_tilde),
        CLASS_DEFAULT,
        A_DEFFLOAT, 0);
    class_addmethod(maximum_tilde_class,
        (t_method)maximum_tilde_dsp, gensym("dsp"), 0);
    CLASS_MAINSIGNALIN(maximum_tilde_class, t_maximum_tilde, d);
}
void helloworld_setup(void) {
    init_maximum();
}
 
					