blob: 11c2c7eb82a29a1523a36fb3812fe8844062b37c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
import Constant, Op, Input, T, sig, evt from require 'alv.base'
edge = Constant.meta
meta:
name: 'edge'
summary: "Convert rising edges to bangs."
examples: { '(edge bool)' }
value: class extends Op
setup: (inputs) =>
@out or= T.bang\mk_evt!
value = sig.bool\match inputs
super value: Input.hot value
tick: =>
now = @inputs.value!
if now and not @state
@out\set true
@state = now
Constant.meta
meta:
name: 'util'
summary: "Utility operators."
value:
:edge
|