diff --git a/src/config/schema.rs b/src/config/schema.rs index 0c3d6d9f..ac681396 100644 --- a/src/config/schema.rs +++ b/src/config/schema.rs @@ -166,6 +166,8 @@ impl Default for OtgDescriptorConfig { pub enum OtgHidProfile { /// Full HID device set (keyboard + relative mouse + absolute mouse + consumer control) Full, + /// Full HID device set without MSD + FullNoMsd, /// Legacy profile: only keyboard LegacyKeyboard, /// Legacy profile: only relative mouse @@ -234,6 +236,7 @@ impl OtgHidProfile { pub fn resolve_functions(&self, custom: &OtgHidFunctions) -> OtgHidFunctions { match self { Self::Full => OtgHidFunctions::full(), + Self::FullNoMsd => OtgHidFunctions::full(), Self::LegacyKeyboard => OtgHidFunctions::legacy_keyboard(), Self::LegacyMouseRelative => OtgHidFunctions::legacy_mouse_relative(), Self::Custom => custom.clone(), diff --git a/web/src/i18n/en-US.ts b/web/src/i18n/en-US.ts index 12646d2f..5cd71156 100644 --- a/web/src/i18n/en-US.ts +++ b/web/src/i18n/en-US.ts @@ -584,7 +584,8 @@ export default { otgHidProfile: 'OTG HID Profile', otgHidProfileDesc: 'Select which HID functions are exposed to the host', profile: 'Profile', - otgProfileFull: 'Full (keyboard + relative mouse + absolute mouse + consumer)', + otgProfileFull: 'Full (keyboard + relative mouse + absolute mouse + consumer + MSD)', + otgProfileFullNoMsd: 'Full (keyboard + relative mouse + absolute mouse + consumer, no MSD)', otgProfileLegacyKeyboard: 'Legacy: keyboard only', otgProfileLegacyMouseRelative: 'Legacy: relative mouse only', otgProfileCustom: 'Custom', diff --git a/web/src/i18n/zh-CN.ts b/web/src/i18n/zh-CN.ts index 85c67e9a..d5069fe2 100644 --- a/web/src/i18n/zh-CN.ts +++ b/web/src/i18n/zh-CN.ts @@ -584,7 +584,8 @@ export default { otgHidProfile: 'OTG HID 组合', otgHidProfileDesc: '选择对目标主机暴露的 HID 功能', profile: '组合', - otgProfileFull: '完整(键盘 + 相对鼠标 + 绝对鼠标 + 多媒体)', + otgProfileFull: '完整(键盘 + 相对鼠标 + 绝对鼠标 + 多媒体 + 虚拟媒体)', + otgProfileFullNoMsd: '完整(键盘 + 相对鼠标 + 绝对鼠标 + 多媒体,不含虚拟媒体)', otgProfileLegacyKeyboard: '兼容:仅键盘', otgProfileLegacyMouseRelative: '兼容:仅相对鼠标', otgProfileCustom: '自定义', @@ -596,7 +597,7 @@ export default { otgFunctionMouseAbsoluteDesc: '绝对定位(类似触控)', otgFunctionConsumer: '多媒体控制', otgFunctionConsumerDesc: '音量/播放/暂停等按键', - otgFunctionMsd: 'U盘(MSD)', + otgFunctionMsd: '虚拟媒体(MSD)', otgFunctionMsdDesc: '向目标主机暴露 USB 存储', otgProfileWarning: '修改 HID 功能将导致 USB 设备重新连接', otgFunctionMinWarning: '请至少启用一个 HID 功能后再保存', diff --git a/web/src/types/generated.ts b/web/src/types/generated.ts index e057c738..1bb12b46 100644 --- a/web/src/types/generated.ts +++ b/web/src/types/generated.ts @@ -58,6 +58,8 @@ export interface OtgDescriptorConfig { export enum OtgHidProfile { /** Full HID device set (keyboard + relative mouse + absolute mouse + consumer control) */ Full = "full", + /** Full HID device set without MSD */ + FullNoMsd = "full_no_msd", /** Legacy profile: only keyboard */ LegacyKeyboard = "legacy_keyboard", /** Legacy profile: only relative mouse */ diff --git a/web/src/views/SettingsView.vue b/web/src/views/SettingsView.vue index a2aec5cf..8d87bfc0 100644 --- a/web/src/views/SettingsView.vue +++ b/web/src/views/SettingsView.vue @@ -548,6 +548,8 @@ async function saveConfig() { if (config.value.hid_backend === 'otg') { if (config.value.hid_otg_profile === 'full') { desiredMsdEnabled = true + } else if (config.value.hid_otg_profile === 'full_no_msd') { + desiredMsdEnabled = false } else if ( config.value.hid_otg_profile === 'legacy_keyboard' || config.value.hid_otg_profile === 'legacy_mouse_relative' @@ -1477,6 +1479,7 @@ onMounted(async () => {