新增氛围灯功能,对 EQ 名称长度做限制

This commit is contained in:
eafonyang
2026-06-30 15:28:53 +08:00
parent 98e8738e79
commit 8283ffcf14
18 changed files with 407 additions and 66 deletions
+22 -1
View File
@@ -122,6 +122,10 @@ export interface DeviceState {
bt_title: string;
bt_artist: string;
msgCount: number;
led_enable: number;
led_red: number;
led_green: number;
led_blue: number;
}
export interface PeqFilter {
@@ -390,6 +394,19 @@ export function getBootSoundMaxIndex(firmwareVersion: number): number {
return firmwareVersion >= 26 ? 10 : 6;
}
/** Ambient LED block on System page (firmware build 28+). */
export const AMBIENT_LED_MIN_FIRMWARE_VERSION = 28;
export function supportsAmbientLed(firmwareVersion: number): boolean {
return firmwareVersion >= AMBIENT_LED_MIN_FIRMWARE_VERSION;
}
export function clampLedChannel(value: unknown): number {
const n = typeof value === "number" ? value : Number(value);
if (!Number.isFinite(n)) return 0;
return Math.max(0, Math.min(255, Math.round(n)));
}
/** Normalize `bootSound` from syncData (0 = default … 10 = -50 dB). */
export function normalizeBootSound(value: unknown): number {
const n = typeof value === "number" ? value : Number(value);
@@ -408,7 +425,7 @@ export function readBootSoundFromState(state: DeviceState | null | undefined): n
// ============================================================
export const MOCK_DEVICE_STATE: DeviceState = {
device: "Luxsin-X8",
version: "1.2.3",
version: 28,
mac: "AA:BB:CC:DD:EE:FF",
language: 0,
volume: 75,
@@ -463,6 +480,10 @@ export const MOCK_DEVICE_STATE: DeviceState = {
bt_title: "Bohemian Rhapsody",
bt_artist: "Queen",
msgCount: 42,
led_enable: 1,
led_red: 128,
led_green: 64,
led_blue: 200,
};
export const MOCK_PEQ_STATE: PeqState = {