aboutsummaryrefslogtreecommitdiffstats
path: root/docs/internals
diff options
context:
space:
mode:
authors-ol <s-ol@users.noreply.github.com>2020-05-13 14:54:47 +0000
committers-ol <s+removethis@s-ol.nu>2025-03-02 14:24:47 +0000
commit1009e82b4dc2d262bce74f160a49eeb27ee66997 (patch)
treedf64d2a3aa19fb3484c15901c623d1848b83a159 /docs/internals
parentadd fltk4lua copilot UI (diff)
downloadalive-1009e82b4dc2d262bce74f160a49eeb27ee66997.tar.gz
alive-1009e82b4dc2d262bce74f160a49eeb27ee66997.zip
add website to version.moon, update rockspec
Diffstat (limited to 'docs/internals')
-rw-r--r--docs/internals/extensions.md10
1 files changed, 5 insertions, 5 deletions
diff --git a/docs/internals/extensions.md b/docs/internals/extensions.md
index bc07e58..e541d9a 100644
--- a/docs/internals/extensions.md
+++ b/docs/internals/extensions.md
@@ -155,7 +155,7 @@ There are four types of `Result`s that can be created:
to the same value it already had. They are updated using `SigStream:set`.
- `EvtStream`s transmit *momentary events*. They can transmit multiple events
in a single tick. `EvtStream`s do not keep a value set on the last tick on
- the next tick. They are updated using `EvtStream:add`.
+ the next tick. They are updated using `EvtStream:set`.
- `IOStream`s are like `EvtStream`s, but their `IOStream:poll` method is
polled by the event loop at the start of every tick. This gives them a chance
to effectively create changes 'out of thin air' and kickstart the execution
@@ -190,19 +190,19 @@ will be necessary.
To implement a custom IOStream, create it as a class that inherits from the
`IOStream` base and implement the constructor and `IOStream:poll`:
- import IOStream from require 'alv.base'
+ import T, IOStream from require 'alv.base'
class UnreliableStream extends IOStream
- new: => super 'bang'
+ new: => super T.bang
poll: =>
if math.random! < 0.1
- @add true
+ @set true
In the constructor, you should call the super-constructor `EvtStream.new` to
set the event type. Often this will be a custom event that is only used inside
your extension (such as e.g. the `midi/port` type in the [midi][modules-midi]
-module), but it can also be a primitive type like `'num'` in this example. In
+module), but it can also be a primitive type like `T.bang` in this example. In
`:poll`, your IOStream is given a chance to communicate with the external world
and create any resulting events. The example stream above randomly sends bang
events out, with a 10% chance each 'tick' of the system. Note that there is no