diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2024-03-27 17:56:47 +0300 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2024-03-27 18:10:30 +0300 |
commit | 22f88459f2950eb163a8844badd884b3e1d193cd (patch) | |
tree | 5f6be4d38bcb7993c727a3dd39b3db7cd221e70c /TODO | |
parent | 476261186fb6ca6bccd752546d18b2bd63eb1a64 (diff) | |
download | applause2-22f88459f2950eb163a8844badd884b3e1d193cd.tar.gz |
replaced Stream:foreach() with Stream:iter()
* This allows the native syntax `for f in Stream:iter() do ... end` without using lambda
functions.
Also you can use `break` and `return` statements.
* On the other hand we cannot exploit the extended xpcall() semantics and had to introduce
another lambda in Stream:play().
* In general the number of function calls per tick stays the same.
Stream:gtick() itself could be used as an iterator, but Stream:iter() adds checking for CTRL+C,
resetting of the sample cache and binding functions.
Diffstat (limited to 'TODO')
-rw-r--r-- | TODO | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -52,7 +52,7 @@ Perhaps bundle https://github.com/Xpra-org/xpra/. The HTML client might even allow integrating Tk windows into Jupyter cells? * Widget toolkit integration. - We could optionally integrate Gtk (lgi) or Tcl and drive their main loops from Stream:foreach() or Stream:play() + We could optionally integrate Gtk (lgi) or Tcl and drive their main loops from Stream:iter() or Stream:play() whenever their modules are loaded. This would allow creating GUIs to control streams without having to go via external MIDI applications. There would also have to be a new Stream class that reads values always from the @@ -114,3 +114,6 @@ Tk canvases. * Automatically detect whether terminal supports the Kitty graphics protocol: https://sw.kovidgoyal.net/kitty/graphics-protocol/#querying-support-and-available-transmission-mediums +* Two C non-inlineable function calls per sample due to applause_push_sample() could be avoided by including our + own lockless ring-buffer implementation. +* Document ZipStream semantics - see chapter Stream Algebra in my thesis. |