Add webui config for following client HDR settings

This commit is contained in:
Yukino Song
2024-09-07 01:06:33 +08:00
parent c2aefb2a2f
commit f9b9a76639
7 changed files with 81 additions and 68 deletions

View File

@@ -1,5 +1,5 @@
<script setup>
import {ref} from 'vue'
import {ref, computed} from 'vue'
import {$tp} from '../../platform-i18n'
import PlatformLayout from '../../PlatformLayout.vue'
import AdapterNameSelector from './audiovideo/AdapterNameSelector.vue'
@@ -15,6 +15,16 @@ const props = defineProps([
'min_fps_factor',
])
const sudovdaStatus = {
'1': 'Unknown',
'0': 'Ready',
'-1': 'Uninitialized',
'-2': 'Version Incompatible',
'-3': 'Watchdog Failed'
}
const currentDriverStatus = computed(() => sudovdaStatus[props.vdisplay])
const config = ref(props.config)
</script>
@@ -54,29 +64,22 @@ const config = ref(props.config)
<div class="form-text pre-wrap">{{ $t('config.virtual_sink_desc') }}</div>
</div>
<!-- Install Steam Audio Drivers -->
<div class="mb-3">
<label for="install_steam_audio_drivers" class="form-label">{{ $t('config.install_steam_audio_drivers') }}</label>
<select id="install_steam_audio_drivers" class="form-select" v-model="config.install_steam_audio_drivers">
<option value="disabled">{{ $t('_common.disabled') }}</option>
<option value="enabled">{{ $t('_common.enabled_def') }}</option>
</select>
<div class="mb-3 form-check">
<input type="checkbox" class="form-check-input" id="install_steam_audio_drivers" v-model="config.install_steam_audio_drivers" true-value="enabled" false-value="disabled"/>
<label for="install_steam_audio_drivers" class="form-check-label">{{ $t('config.install_steam_audio_drivers') }}</label>
<div class="form-text pre-wrap">{{ $t('config.install_steam_audio_drivers_desc') }}</div>
</div>
<div class="mb-3">
<label for="keep_sink_default" class="form-label">{{ 'Keep virtual sink as default' }}</label>
<select id="keep_sink_default" class="form-select" v-model="config.keep_sink_default">
<option value="disabled">{{ $t('_common.disabled') }}</option>
<option value="enabled">{{ $t('_common.enabled_def') }}</option>
</select>
<div class="form-text pre-wrap">{{ 'Whether to force selected virtual sink as default (effective when host audio output is disabled).' }}</div>
<div class="mb-3 form-check">
<input type="checkbox" class="form-check-input" id="keep_sink_default" v-model="config.keep_sink_default" true-value="enabled" false-value="disabled"/>
<label for="keep_sink_default" class="form-check-label">{{ $t('config.keep_sink_default') }}</label>
<div class="form-text pre-wrap">{{ $t('config.keep_sink_default_desc') }}</div>
</div>
<div class="mb-3">
<label for="auto_capture_sink" class="form-label">{{ 'Auto capture current sink' }}</label>
<select id="auto_capture_sink" class="form-select" v-model="config.auto_capture_sink">
<option value="disabled">{{ $t('_common.disabled') }}</option>
<option value="enabled">{{ $t('_common.enabled_def') }}</option>
</select>
<div class="form-text pre-wrap">{{ 'Auto capture current sink after default audio sink changed.' }}</div>
<div class="mb-3 form-check">
<input type="checkbox" class="form-check-input" id="auto_capture_sink" v-model="config.auto_capture_sink" true-value="enabled" false-value="disabled"/>
<label for="auto_capture_sink" class="form-check-label">{{ $t('config.auto_capture_sink') }}</label>
<div class="form-text pre-wrap">{{ $t('config.auto_capture_sink_desc') }}</div>
</div>
</template>
</PlatformLayout>
@@ -96,10 +99,27 @@ const config = ref(props.config)
<DisplayModesSettings
:platform="platform"
:config="config"
:vdisplay="vdisplay"
:min_fps_factor="min_fps_factor"
/>
<div class="mb-3 form-check" v-if="platform === 'windows'">
<input type="checkbox" class="form-check-input" id="follow_client_hdr" v-model="config.follow_client_hdr" true-value="enabled" false-value="disabled"/>
<label for="follow_client_hdr" class="form-check-label">{{ $t('config.follow_client_hdr') }}</label>
<div class="form-text pre-wrap">{{ $t('config.follow_client_hdr_desc') }}</div>
</div>
<!--headless_mode-->
<div class="mb-3 form-check" v-if="platform === 'windows'">
<input type="checkbox" class="form-check-input" id="headless_mode" v-model="config.headless_mode" true-value="enabled" false-value="disabled"/>
<label for="qp" class="form-check-label">{{ $t('config.headless_mode') }}</label>
<div class="form-text">{{ $t('config.headless_mode_desc') }}</div>
</div>
<div class="alert" :class="[vdisplay === '0' ? 'alert-success' : 'alert-warning']" v-if="platform === 'windows'">
<i class="fa-solid fa-xl fa-circle-info"></i> SudoVDA Driver status: {{currentDriverStatus}}
</div>
<div class="form-text" v-if="vdisplay !== '0'">Please ensure SudoVDA driver is installed to the latest version and enabled properly.</div>
</div>
</template>

View File

@@ -1,5 +1,5 @@
<script setup>
import { ref, computed } from 'vue'
import { ref } from 'vue'
import { $tp } from '../../../platform-i18n'
import PlatformLayout from '../../../PlatformLayout.vue'
@@ -12,16 +12,6 @@ const props = defineProps([
const config = ref(props.config)
const sudovdaStatus = {
'1': 'Unknown',
'0': 'Ready',
'-1': 'Uninitialized',
'-2': 'Version Incompatible',
'-3': 'Watchdog Failed'
}
const currentDriverStatus = computed(() => sudovdaStatus[props.vdisplay])
const resIn = ref("")
const fpsIn = ref("")
</script>
@@ -34,25 +24,5 @@ const fpsIn = ref("")
<input type="number" min="1" max="3" class="form-control" id="min_fps_factor" placeholder="1" v-model="config.min_fps_factor" />
<div class="form-text">{{ $t('config.min_fps_factor_desc') }}</div>
</div>
<!--headless_mode-->
<div class="mb-3 form-check">
<input type="checkbox" class="form-check-input" id="headless_mode" v-model="config.headless_mode" true-value="enabled" false-value="disabled"/>
<label for="qp" class="form-check-label">{{ $t('config.headless_mode') }}</label>
<div class="form-text">{{ $t('config.headless_mode_desc') }}</div>
</div>
<div class="alert" :class="[vdisplay === '0' ? 'alert-success' : 'alert-warning']">
<i class="fa-solid fa-xl fa-circle-info"></i> SudoVDA Driver status: {{currentDriverStatus}}
</div>
<div class="form-text" v-if="vdisplay !== '0'">Please ensure SudoVDA driver is installed to the latest version and enabled properly.</div>
</div>
</template>
<style scoped>
.ms-item {
background-color: var(--bs-dark-bg-subtle);
font-size: 12px;
font-weight: bold;
}
</style>

View File

@@ -136,6 +136,8 @@
"audio_sink_desc_windows": "The audio device to be used when audio output is allowed on host by the client.\nIf unset, the device is chosen automatically.\nYou can get the Device ID using the following command:",
"audio_sink_placeholder_macos": "BlackHole 2ch",
"audio_sink_placeholder_windows": "Speakers (High Definition Audio Device)",
"auto_capture_sink": "Auto capture current sink",
"auto_capture_sink_desc": "Auto capture current sink after default audio sink changed.",
"av1_mode": "AV1 Support",
"av1_mode_0": "Apollo will advertise support for AV1 based on encoder capabilities (recommended)",
"av1_mode_1": "Apollo will not advertise support for AV1",
@@ -172,6 +174,8 @@
"file_apps_desc": "The file where current apps of Apollo are stored.",
"file_state": "State File",
"file_state_desc": "The file where current state of Apollo is stored",
"follow_client_hdr": "Follow Client's HDR config",
"follow_client_hdr_desc": "Automatically enable/disable HDR of the streaming display according to client's request.(Do not recommended)",
"gamepad": "Emulated Gamepad Type",
"gamepad_auto": "Automatic selection options",
"gamepad_desc": "Choose which type of gamepad to emulate on the host",
@@ -197,6 +201,8 @@
"high_resolution_scrolling_desc": "When enabled, Apollo will pass through high resolution scroll events from Moonlight clients. This can be useful to disable for older applications that scroll too fast with high resolution scroll events.",
"install_steam_audio_drivers": "Install Steam Audio Drivers",
"install_steam_audio_drivers_desc": "If Steam is installed, this will automatically install the Steam Streaming Speakers driver to support 5.1/7.1 surround sound and muting host audio.",
"keep_sink_default": "Keep virtual sink as default",
"keep_sink_default_desc": "Whether to force selected virtual sink as default (effective when host audio output is disabled).",
"key_repeat_delay": "Key Repeat Delay",
"key_repeat_delay_desc": "Control how fast keys will repeat themselves. The initial delay in milliseconds before repeating keys.",
"key_repeat_frequency": "Key Repeat Frequency",

View File

@@ -91,7 +91,7 @@
"adapter_name_desc_linux_2": "找到所有能够使用 VAAPI 的设备",
"adapter_name_desc_linux_3": "用上面的设备替换``renderD129``,列出设备的名称和功能。要获得 Apollo 的支持,设备至少需要具备以下功能:",
"adapter_name_desc_windows": "手动指定用于捕获的 GPU 。如果未设置GPU 将被自动选择。 我们强烈建议将此字段留空以使用自动的 GPU 选择注意此GPU 必须连接并开启显示器。 可以使用以下命令找到适当的值:",
"adapter_name_placeholder_windows": "Radeon RX 580系列",
"adapter_name_placeholder_windows": "Radeon RX 580 Series",
"add": "添加",
"address_family": "IP 地址族",
"address_family_both": "IPv4+IPv6",
@@ -131,9 +131,11 @@
"audio_sink": "音频输出设备",
"audio_sink_desc_linux": "手动指定需要抓取的音频输出设备。如果您没有指定此变量PulseAudio 将选择默认监测设备。 您可以使用以下任何命令找到音频输出设备的名称:",
"audio_sink_desc_macos": "手动指定需要抓取的音频输出设备。由于系统限制Apollo 在 macOS 上只能访问麦克风。 使用 Soundflow 或 BlackHole 来串流系统音频。",
"audio_sink_desc_windows": "手动指定要抓取的特定音频设备。如果未设置,则自动选择该设备。 我们强烈建议将此字段留空以使用自动选择设备! 如果您有多个具有相同名称的音频设备您可以使用以下命令获取设备ID",
"audio_sink_desc_windows": "当客户端允许在PC上播放音频时使用的音频设备。\n如未指定,则自动选择。 \n如果您有多个具有相同名称的音频设备您可以使用以下命令获取设备ID",
"audio_sink_placeholder_macos": "BlackHole 2ch",
"audio_sink_placeholder_windows": "扬声器High Definition Audio Device",
"auto_capture_sink": "自动捕获当前音频输出设备",
"auto_capture_sink_desc": "在默认音频输出设备变更后自动捕获新的默认设备。",
"av1_mode": "AV1 支持",
"av1_mode_0": "Apollo 将基于编码器能力通告对 AV1 的支持(推荐)",
"av1_mode_1": "Apollo 将不会通告对 AV1 的支持",
@@ -170,7 +172,8 @@
"file_apps_desc": "Apollo 保存应用程序配置的文件。",
"file_state": "实时状态文件",
"file_state_desc": "Apollo 保存当前状态的文件",
"fps": "通告 FPS",
"follow_client_hdr": "遵循客户端 HDR 设置",
"follow_client_hdr_desc": "根据客户端请求自动设置串流屏幕 HDR 的开关。(不建议启用)",
"gamepad": "模拟游戏手柄类型",
"gamepad_auto": "自动选择选项",
"gamepad_desc": "选择要在主机上模拟的游戏手柄类型",
@@ -191,11 +194,13 @@
"hevc_mode_3": "Apollo 将通告 HEVC Main 和 Main10 (HDR) 配置支持",
"hevc_mode_desc": "允许客户端请求HEVC 主流或 HEVC Main10 视频流。 HEVC更需要编码因此在使用软件编码时可能降低性能。",
"hide_tray_controls": "隐藏托盘图标控制选项",
"hide_tray_controls_desc": "不在托盘图标菜单内显示 \"Force Stop\", \"Restart\" and \"Quit\"。",
"hide_tray_controls_desc": "不在托盘图标菜单内显示 \"Force Stop\", \"Restart\" \"Quit\"。",
"high_resolution_scrolling": "高分辨率鼠标滚动支持",
"high_resolution_scrolling_desc": "启用后Apollo 将透传来自 Moonlight 客户端的高分辨率滚动事件。对于那些使用高分辨率滚动事件时滚动速度过快的旧版应用程序来说,禁用此功能非常有用。",
"install_steam_audio_drivers": "安装 Steam 音频驱动程序",
"install_steam_audio_drivers_desc": "如果安装了 Steam则会自动安装 Steam Streaming Speakers 驱动程序,以支持 5.1/7.1 环绕声和主机音频静音。",
"keep_sink_default": "保持虚拟音频输出设备为默认设备",
"keep_sink_default_desc": "是否强制保持虚拟音频输出设备为默认设备当客户端设置禁止在PC上播放声音时有效",
"key_repeat_delay": "按键重复延迟",
"key_repeat_delay_desc": "控制按键重复的速度。重复按键前的初始延迟(毫秒)。",
"key_repeat_frequency": "按键重复频率",
@@ -324,7 +329,7 @@
"upnp": "UPnP",
"upnp_desc": "为公网串流自动配置端口转发",
"virtual_sink": "虚拟音频输出设备",
"virtual_sink_desc": "手动指定要使用的虚拟音频设备。如果未设置,则自动选择设备。我们强烈建议将此字段留空,以便使用自动设备选择!",
"virtual_sink_desc": "当客户端禁止PC播放音频时使用的音频输出设备。\n如未指定,则自动选择。\n我们强烈建议将此字段留空,以便使用自动设备选择!",
"virtual_sink_placeholder": "Steam Streaming Speakers",
"vt_coder": "VideoToolbox 编码器",
"vt_realtime": "VideoToolbox 实时编码",