Source code for runtimepy.control.env
"""
A module implementing runtime-environment registration routines for commonly
used control channel types.
"""
# built-in
from typing import TypeVar
# internal
from runtimepy.channel.environment import ChannelEnvironment
from runtimepy.primitives import AnyPrimitive
from runtimepy.ui.controls import Controlslike
T = TypeVar("T", bound=AnyPrimitive)
[docs]
def phase_angle(
env: ChannelEnvironment,
primitive: type[T],
name: str = "phase_angle",
controls: Controlslike = "phase",
**kwargs,
) -> T:
"""Create a phase-angle channel."""
prim = primitive()
env.channel(name, prim, commandable=True, controls=controls, **kwargs)
return prim # type: ignore
[docs]
def amplitude(
env: ChannelEnvironment,
primitive: type[T],
name: str = "amplitude",
controls: Controlslike = "amplitude",
**kwargs,
) -> T:
"""Create an amplitude channel."""
prim = primitive()
env.channel(name, prim, commandable=True, controls=controls, **kwargs)
return prim # type: ignore
[docs]
def steps(
env: ChannelEnvironment,
primitive: type[T],
name: str = "steps",
controls: Controlslike = "steps",
**kwargs,
) -> T:
"""Create a steps channel."""
prim = primitive()
env.channel(name, prim, commandable=True, controls=controls, **kwargs)
return prim # type: ignore