Add radio channel property with stereo/mono/left/right

This commit is contained in:
Jage9
2026-02-21 01:48:20 -05:00
parent f7e8bc5949
commit 2d20e255a2
5 changed files with 72 additions and 4 deletions

View File

@@ -20,7 +20,7 @@ ITEM_DEFINITIONS: dict[ItemType, ItemDefinition] = {
default_title="radio",
capabilities=("editable", "carryable", "deletable", "usable"),
use_sound=None,
default_params={"streamUrl": "", "enabled": True, "volume": 50, "effect": "off", "effectValue": 50},
default_params={"streamUrl": "", "enabled": True, "channel": "stereo", "volume": 50, "effect": "off", "effectValue": 50},
),
"dice": ItemDefinition(
default_title="Dice",

View File

@@ -49,6 +49,7 @@ LOGGER = logging.getLogger("chgrid.server")
PACKET_LOGGER = logging.getLogger("chgrid.server.packet")
CLIENT_PACKET_ADAPTER = TypeAdapter(ClientPacket)
RADIO_EFFECT_IDS = {"reverb", "echo", "flanger", "high_pass", "low_pass", "off"}
RADIO_CHANNEL_IDS = {"stereo", "mono", "left", "right"}
class SignalingServer:
@@ -615,6 +616,18 @@ class SignalingServer:
return
next_params["effect"] = effect
channel = str(next_params.get("channel", "stereo")).strip().lower()
if channel not in RADIO_CHANNEL_IDS:
await self._send_item_result(
client,
False,
"update",
"channel must be one of stereo, mono, left, right.",
item.id,
)
return
next_params["channel"] = channel
try:
effect_value = int(next_params.get("effectValue", 50))
except (TypeError, ValueError):