Source code for rv.modules.base.delay

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

from rv.controller import Controller, DependentRange, WarnOnlyRange


class BaseDelay:
    name = "Delay"
    mtype = "Delay"
    mgroup = "Effect"
    flags = 1105

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

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

    dry = Controller((0, 512), 256)
    wet = Controller((0, 512), 256)
    delay_l = Controller(
        DependentRange(
            "delay_unit",
            {
                DelayUnit.sec_16384: 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),
        ),
        128,
    )
    delay_r = Controller(
        DependentRange(
            "delay_unit",
            {
                DelayUnit.sec_16384: 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),
        ),
        160,
    )
    volume_l = Controller((0, 256), 256)
    volume_r = Controller((0, 256), 256)
    channels = Controller(Channels, Channels.stereo)
    inverse = Controller(bool, False)
    delay_unit = Controller(DelayUnit, DelayUnit.sec_16384)