Source code for rv.modules.base.echo

# -- DO NOT EDIT THIS FILE DIRECTLY --
"""
Base class for Echo
This file was auto-generated by genrv.
"""
from enum import IntEnum

from rv.controller import Controller, DependentRange, WarnOnlyRange


class BaseEcho:
    name = "Echo"
    mtype = "Echo"
    mgroup = "Effect"
    flags = 1105

    class Channels(IntEnum):
        mono = 0
        stereo = 1

    class DelayUnit(IntEnum):
        sec_256 = 0
        ms = 1
        hz = 2
        tick = 3
        line = 4
        line_2 = 5
        line_3 = 6

    dry = Controller((0, 256), 256)
    wet = Controller((0, 256), 128)
    feedback = Controller((0, 256), 128)
    delay = Controller(
        DependentRange(
            "delay_unit",
            {
                DelayUnit.sec_256: WarnOnlyRange(0, 256),
                DelayUnit.ms: WarnOnlyRange(0, 4000),
                DelayUnit.hz: WarnOnlyRange(0, 8192),
                DelayUnit.tick: WarnOnlyRange(0, 256),
                DelayUnit.line: WarnOnlyRange(0, 256),
                DelayUnit.line_2: WarnOnlyRange(0, 256),
                DelayUnit.line_3: WarnOnlyRange(0, 256),
            },
            WarnOnlyRange(0, 256),
        ),
        256,
    )
    channels = Controller(Channels, Channels.stereo)
    delay_unit = Controller(DelayUnit, DelayUnit.sec_256)