<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>You can (ab)use Pd's own symbol table by storing the clocks in a
      "fake" Pd object and bind it to a symbol. But I wouldn't really
      recommend this... </p>
    <p>Alternatively, you can use one of the existing hash table
      implementations in C, e. g. the hash table from the "stb" library:
      <a class="moz-txt-link-freetext" href="https://github.com/nothings/stb/blob/master/stb_ds.h">https://github.com/nothings/stb/blob/master/stb_ds.h</a>.</p>
    <p>Or use C++ :-)</p>
    <p>Christof<br>
    </p>
    <div class="moz-cite-prefix">On 07.06.2021 03:22, Iain Duncan wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAN9NcLxzDEZZ7rxH5q2cXHwGX9VFzN=FWC-3EWMoFLCMBv3G7g@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">Thanks Miller. That brings up one more question..
        ;-)
        <div><br>
        </div>
        <div>In Scheme for Max, the way I do it is I keep a hash-table
          in C going with keys that are created on Scheme delay calls,
          so that one can cancel clocks by fetching them from the
          hashtable. In Max, there's a cross-platform hash-table
          implementation that I'm using. Is there something similar for
          Pd, or if not, is there an approach you would recommend for
          keeping a key-value store in C for the clocks by a symbolic
          key? I guess a good question might be if this is even
          necessary, given there can't be *that* many clocks scheduled
          for the future. And association list type thing might do just
          as well.</div>
        <div><br>
        </div>
        <div>thanks for the help, it's going well, now that I can
          finally work on it! ought to have a first alpha folks can play
          with in the next couple of weeks.</div>
        <div>iain</div>
        <div><br>
        </div>
        <div><br>
        </div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Sun, Jun 6, 2021 at 5:36 PM
          Miller Puckette <<a href="mailto:msp@ucsd.edu"
            moz-do-not-send="true">msp@ucsd.edu</a>> wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px
          0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">clock()
          is the only mechanism - for repeats, the easiest thing is
          often<br>
          to just re-use a clock() and re-set it each time it goes off
          (as in<br>
          the metro obejct).  You can indeed create clock obejcts on the
          fly -<br>
          that's what pipe does.  But you'll want to keep track of them
          so you can<br>
          cancel them if the owning object goes away.<br>
          <br>
          cheers<br>
          M<br>
          <br>
          On Sun, Jun 06, 2021 at 05:16:09PM -0700, Iain Duncan wrote:<br>
          > Ah fantastic, thanks. I was looking in pipe and not
          seeing it, but was<br>
          > probably just lost in other new details and not seeing
          the forest for the<br>
          > trees. :-)<br>
          > <br>
          > Couple of follow ups:<br>
          > - is there a separate facility for making a repeated
          callback (ie not<br>
          > one-shot), or does one just do both with clock?<br>
          > - is it safe to make clocks as we need them (ie during a
          method call, not<br>
          > necessarily at object instantiation time), or is this the
          kind of thing<br>
          > where for real time use one needs to make a clock pool
          and a pool manager<br>
          > and all that?<br>
          > <br>
          > thanks!<br>
          > iain<br>
          > <br>
          > On Sun, Jun 6, 2021 at 5:12 PM Miller Puckette <<a
            href="mailto:msp@ucsd.edu" target="_blank"
            moz-do-not-send="true">msp@ucsd.edu</a>> wrote:<br>
          > <br>
          > > Yep, clock_delay() .  Simples example is in Pd's
          "delay" object, x_time.c<br>
          > ><br>
          > > cheers<br>
          > > Miller<br>
          > ><br>
          > > On Sun, Jun 06, 2021 at 04:21:46PM -0700, Iain
          Duncan wrote:<br>
          > > > Hi folks, I'm hoping someone can point me in
          the right direction here.<br>
          > > I'm<br>
          > > > porting Scheme for Max to pure data and I'm
          stuck figuring out how to get<br>
          > > > delayed functions going. In Max, the SDK has a
          facility to make register<br>
          > > a<br>
          > > > callback to executed at some point in the
          future, a few different ways.<br>
          > > Is<br>
          > > > there a Pd equivalent, and if so, could anyone
          point me at resources or<br>
          > > > code for it?  I basically just need to be able
          to have a callback fire<br>
          > > off<br>
          > > > at the right time with one argument, which can
          be void pointer to the<br>
          > > rest<br>
          > > > of the stuff i want to get.<br>
          > > ><br>
          > > > thanks!<br>
          > > > iain<br>
          > ><br>
          > > > _______________________________________________<br>
          > > > Pd-dev mailing list<br>
          > > > <a href="mailto:Pd-dev@lists.iem.at"
            target="_blank" moz-do-not-send="true">Pd-dev@lists.iem.at</a><br>
          > > ><br>
          > > <a
href="https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.puredata.info_listinfo_pd-2Ddev&d=DwICAg&c=-35OiAkTchMrZOngvJPOeA&r=XprZV3Fxus2L1LCw80hE4Q&m=uekrR-wLMB9CDNku0beRkRmoSJoExinRbBSlb0UQknQ&s=98jkGlO1FFE0Ea5fhSopCbZt6bmZH580Y0IUfgX4Rwk&e="
            rel="noreferrer" target="_blank" moz-do-not-send="true">https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.puredata.info_listinfo_pd-2Ddev&d=DwICAg&c=-35OiAkTchMrZOngvJPOeA&r=XprZV3Fxus2L1LCw80hE4Q&m=uekrR-wLMB9CDNku0beRkRmoSJoExinRbBSlb0UQknQ&s=98jkGlO1FFE0Ea5fhSopCbZt6bmZH580Y0IUfgX4Rwk&e=</a><br>
          > ><br>
          > ><br>
          > > --<br>
          > ><br>
          <br>
          -- <br>
        </blockquote>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
Pd-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Pd-dev@lists.iem.at">Pd-dev@lists.iem.at</a>
<a class="moz-txt-link-freetext" href="https://lists.puredata.info/listinfo/pd-dev">https://lists.puredata.info/listinfo/pd-dev</a>
</pre>
    </blockquote>
  </body>
</html>