diff --git a/client/src/locales/data-de.json b/client/src/locales/data-de.json index dfc8ede..548d70e 100644 --- a/client/src/locales/data-de.json +++ b/client/src/locales/data-de.json @@ -480,6 +480,13 @@ { "index": 6, "label": "Modus 7" }, { "index": 7, "label": "Modus 8" } ] + }, + "uacVer": { + "label": "UAC-Version", + "options": [ + { "index": 0, "label": "UAC 2.0" }, + { "index": 1, "label": "UAC 1.0" } + ] } }, "settings": { diff --git a/client/src/locales/data-en.json b/client/src/locales/data-en.json index d5d351c..1852b8f 100644 --- a/client/src/locales/data-en.json +++ b/client/src/locales/data-en.json @@ -480,6 +480,13 @@ { "index": 6, "label": "mode 7" }, { "index": 7, "label": "mode 8" } ] + }, + "uacVer": { + "label": "UAC Version", + "options": [ + { "index": 0, "label": "UAC 2.0" }, + { "index": 1, "label": "UAC 1.0" } + ] } }, "settings": { diff --git a/client/src/locales/data-es.json b/client/src/locales/data-es.json index dc827f9..041dea4 100644 --- a/client/src/locales/data-es.json +++ b/client/src/locales/data-es.json @@ -480,6 +480,13 @@ { "index": 6, "label": "Modo 7" }, { "index": 7, "label": "Modo 8" } ] + }, + "uacVer": { + "label": "Versión UAC", + "options": [ + { "index": 0, "label": "UAC 2.0" }, + { "index": 1, "label": "UAC 1.0" } + ] } }, "settings": { diff --git a/client/src/locales/data-fr.json b/client/src/locales/data-fr.json index 782e77a..b94ae01 100644 --- a/client/src/locales/data-fr.json +++ b/client/src/locales/data-fr.json @@ -480,6 +480,13 @@ { "index": 6, "label": "Mode 7" }, { "index": 7, "label": "Mode 8" } ] + }, + "uacVer": { + "label": "Version UAC", + "options": [ + { "index": 0, "label": "UAC 2.0" }, + { "index": 1, "label": "UAC 1.0" } + ] } }, "settings": { diff --git a/client/src/locales/data-zh-HK.json b/client/src/locales/data-zh-HK.json index e931bab..14336f9 100644 --- a/client/src/locales/data-zh-HK.json +++ b/client/src/locales/data-zh-HK.json @@ -474,6 +474,13 @@ { "index": 6, "label": "模式7" }, { "index": 7, "label": "模式8" } ] + }, + "uacVer": { + "label": "UAC版本", + "options": [ + { "index": 0, "label": "UAC 2.0" }, + { "index": 1, "label": "UAC 1.0" } + ] } }, "settings": { diff --git a/client/src/locales/data-zh.json b/client/src/locales/data-zh.json index c98d916..3699bea 100644 --- a/client/src/locales/data-zh.json +++ b/client/src/locales/data-zh.json @@ -474,6 +474,13 @@ { "index": 6, "label": "模式7" }, { "index": 7, "label": "模式8" } ] + }, + "uacVer": { + "label": "UAC版本", + "options": [ + { "index": 0, "label": "UAC 2.0" }, + { "index": 1, "label": "UAC 1.0" } + ] } }, "settings": { diff --git a/client/src/pages/AudioPage.tsx b/client/src/pages/AudioPage.tsx index 1662fad..a67bfbc 100644 --- a/client/src/pages/AudioPage.tsx +++ b/client/src/pages/AudioPage.tsx @@ -62,6 +62,9 @@ function CyanSlider({ value, min, max, step = 1, onChange, onRelease }: { ); } +/** 功能开关:是否显示「滤波特性」和「ARC模式」入口(代码保留,改为 true 可恢复显示) */ +const SHOW_FILTER_AND_ARC = false; + function SectionHeader({ title }: { title: string }) { return (
@@ -123,6 +126,7 @@ type LocaleDac = { xlr?: { label?: string; options?: Array<{ index: number; label: string }> }; mutePolar?: { label?: string; options?: Array<{ index: number; label: string }> }; IISMode?: { label?: string; options?: Array<{ index: number; label: string }> }; + uacVer?: { label?: string; options?: Array<{ index: number; label: string }> }; }; home?: { audioSet?: string }; }; @@ -228,6 +232,7 @@ export default function AudioPage() { const xlrIdx = ds?.xlr ?? 0; const mutePolarIdx = (ds as ({ hdmimutepolar?: number } | null))?.hdmimutepolar ?? 0; const iisModeIdx = (ds as ({ hdmiType?: number } | null))?.hdmiType ?? 0; + const uacVerIdx = (ds as ({ uac_ver?: number } | null))?.uac_ver ?? 0; const bootSoundVal = normalizeBootSound(localBootSound); const firmwareVersion = parseFirmwareVersion(ds?.version); const bootSoundMaxIdx = getBootSoundMaxIndex(firmwareVersion); @@ -241,6 +246,7 @@ export default function AudioPage() { const XLR_OPTIONS = optionLabels(dacText.xlr?.options, ["正常", "反转"]); const MUTE_POLAR_OPTIONS = optionLabels(dacText.mutePolar?.options, ["低电平", "高电平"]); const IIS_MODE_OPTIONS = optionLabels(dacText.IISMode?.options, ["模式1", "模式2", "模式3", "模式4", "模式5", "模式6", "模式7", "模式8"]); + const UAC_VER_OPTIONS = optionLabels(dacText.uacVer?.options, ["UAC 2.0", "UAC 1.0"]); const pageTitle = usePageTitleWithConnection(localeData.home?.audioSet ?? "Audio"); @@ -341,11 +347,13 @@ export default function AudioPage() { {/* ── 输出特性 ── */}
- goSelect(dacText.filters?.label ?? "选择滤波特性", FILTER_OPTIONS, filterIdx, "filterCharacteristic")} - /> + {SHOW_FILTER_AND_ARC && ( + goSelect(dacText.filters?.label ?? "选择滤波特性", FILTER_OPTIONS, filterIdx, "filterCharacteristic")} + /> + )} - - goSelect( - dacText.dacArc?.label ?? "ARC模式", - DAC_ARC_OPTIONS, - dacArcIdx, - "dacArc", - ) - } - /> + {SHOW_FILTER_AND_ARC && ( + + goSelect( + dacText.dacArc?.label ?? "ARC模式", + DAC_ARC_OPTIONS, + dacArcIdx, + "dacArc", + ) + } + /> + )} goSelect(dacText.xlr?.label ?? "选择 XLR 极性", XLR_OPTIONS, xlrIdx, "xlr")} /> + goSelect(dacText.uacVer?.label ?? "选择 UAC 版本", UAC_VER_OPTIONS, uacVerIdx, "uacVer")} + />
diff --git a/client/src/pages/SelectPage.tsx b/client/src/pages/SelectPage.tsx index 3f3203e..9430c56 100644 --- a/client/src/pages/SelectPage.tsx +++ b/client/src/pages/SelectPage.tsx @@ -117,6 +117,8 @@ const KEY_TO_SETTING: Record = { IISMode: "hdmiType", + uacVer: "uac_ver", + xlr: "xlr", dacGain: "dacGain", diff --git a/client/src/pages/VUPage.tsx b/client/src/pages/VUPage.tsx index bbc7933..5d6d934 100644 --- a/client/src/pages/VUPage.tsx +++ b/client/src/pages/VUPage.tsx @@ -24,7 +24,7 @@ interface VUStyle { preview: string; } -const VU_STYLES: VUStyle[] = Array.from({ length: 16 }, (_, i) => ({ +const VU_STYLES: VUStyle[] = Array.from({ length: 17 }, (_, i) => ({ index: i, name: `VU ${i + 1}`, preview: `${import.meta.env.BASE_URL}images/vu/vu${i + 1}.png`,