[PD] [epochtime] - my first external

Ben Saylor bsaylor at Macalester.edu
Wed Nov 20 05:34:27 CET 2002


How about just this:

void epochtime_bang(t_epochtime *x)
{
  x->t=time( NULL );
  outlet_float(x->x_obj.ob_outlet, x->t);
}

On Tue, Nov 19, 2002 at 08:09:48PM -0600, David Sabine wrote:
> Hello all,
> 
> I'm exploring my very first external!   But I've run into a snag.
> 
> I'd like to build an external object which outputs the number of seconds since "epoch" when banged.  Epoch is the beginning of time as the digital world understands it: jan 1 1970.
> 
> Could somebody look over the following code and tell me why it works only after the FIRST BANG?
> 
> Many thanks
> Regards,
> Dave S
> 
> 
> _____________________________
> 
> 
> #include "m_pd.h"
> #include "time.h"
> 
> static t_class *epochtime_class;
> 
> typedef struct _epochtime {
>   t_object  x_obj;
>   time_t t;
> } t_epochtime;
> 
> void epochtime_bang(t_epochtime *x)
> {
>   t_float f=x->t;
>   x->t=time( NULL );
> 
>   outlet_float(x->x_obj.ob_outlet, f);
> }
> 
> void *epochtime_new(t_floatarg f)
> {
>   t_epochtime *x = (t_epochtime *)pd_new(epochtime_class);
> 
>   x->t=f;
>   outlet_new(&x->x_obj, &s_float);
> 
>   return (void *)x;
> }
> 
> void epochtime_setup(void) {
>   epochtime_class = class_new(gensym("epochtime"),
>         (t_newmethod)epochtime_new,
>         0, sizeof(t_epochtime),
>         CLASS_DEFAULT, 0);
> 
>   class_addbang(epochtime_class, epochtime_bang);
> }




More information about the Pd-list mailing list