[PD] [epochtime] - my first external

David Sabine dave at davesabine.com
Wed Nov 20 03:09:48 CET 2002


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);
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20021119/c3506246/attachment.htm>


More information about the Pd-list mailing list