multiclick - Single-, double-, triple-, and quadruple-click detector
loadrt multiclick [count=N|names=name1[,name2...]] |
A click is defined as a rising edge on the ’in’ pin, followed by the ’in’ pin being True for at most ’max-hold-ns’ nanoseconds, followed by a falling edge.
A double-click is defined as two clicks, separated by at most ’max-space-ns’ nanoseconds with the ’in’ pin in the False state.
I bet you can guess the definition of triple- and quadruple-click.
You probably want to run the input signal through a debounce component before feeding it to the multiclick detector, if the input is at all noisy.
The ’*-click’ pins go high as soon as the input detects the correct number of clicks.
The ’*-click-only’ pins go high a short while after the click, after the click separator space timeout has expired to show that no further click is coming. This is useful for triggering halui MDI commands.
multiclick.N
Detect single-, double-, triple-, and quadruple-clicks
multiclick.N.in bit in
The input line, this is where we look for clicks.
multiclick.N.single-click bit out
Goes high briefly when a single-click is detected on the ’in’ pin.
multiclick.N.single-click-only bit out
Goes high briefly when a single-click is detected on the ’in’ pin and no second click followed it.
multiclick.N.double-click bit out
Goes high briefly when a double-click is detected on the ’in’ pin.
multiclick.N.double-click-only bit out
Goes high briefly when a double-click is detected on the ’in’ pin and no third click followed it.
multiclick.N.triple-click bit out
Goes high briefly when a triple-click is detected on the ’in’ pin.
multiclick.N.triple-click-only bit out
Goes high briefly when a triple-click is detected on the ’in’ pin and no fourth click followed it.
multiclick.N.quadruple-click bit out
Goes high briefly when a quadruple-click is detected on the ’in’ pin.
multiclick.N.quadruple-click-only bit out
Goes high briefly when a quadruple-click is detected on the ’in’ pin and no fifth click followed it.
multiclick.N.state s32 out
multiclick.N.invert-input bit rw (default: FALSE)
If FALSE (the default), clicks start with rising edges. If TRUE, clicks start with falling edges.
multiclick.N.max-hold-ns u32 rw (default: 250000000)
If the input is held down longer than this, it’s not part of a multi-click. (Default 250,000,000 ns, 250 ms.)
multiclick.N.max-space-ns u32 rw (default: 250000000)
If the input is released longer than this, it’s not part of a multi-click. (Default 250,000,000 ns, 250 ms.)
multiclick.N.output-hold-ns u32 rw (default: 100000000)
Positive pulses on the output pins last this long. (Default 100,000,000 ns, 100 ms.)
Sebastian Kuzminsky
GPL