diff --git a/src/common/ClientConnection.ts b/src/common/ClientConnection.ts index 5f33df5..16b3902 100644 --- a/src/common/ClientConnection.ts +++ b/src/common/ClientConnection.ts @@ -1279,6 +1279,16 @@ export default class ClientConnection { } } + public async setHdmiInAudioDevice(index: number, type: string) { + try { + return await this.doRpc( + new Protocol.SetHdmiInAudioDeviceRequestEntity(index, type) + ); + } catch (e) { + console.error(e); + } + } + public async getCityList(language?: string) { try { return await this.doRpc( diff --git a/src/components/SignalSourceTree.vue b/src/components/SignalSourceTree.vue index 2fdf227..119dfce 100644 --- a/src/components/SignalSourceTree.vue +++ b/src/components/SignalSourceTree.vue @@ -116,6 +116,53 @@ + + + {{ $t("hdmi audio frequency acquisition device") }} + + + + + + + + {{ $t(item.label) }} + + + + + + + { content_height.value = window.innerHeight - 135; @@ -276,6 +325,8 @@ export default defineComponent({ content_height, lossy_pic, current_hdmi_rotation, + hw_version, + current_hdmi_audio_device, loga(a: any) { console.log(a); @@ -443,6 +494,15 @@ export default defineComponent({ lossy_pic.value = GlobalData.getInstance().applicationConfig?.hdmi_in_decode_type_1 == "NV12"; + + const num = parseInt( + GlobalData.getInstance().applicationConfig?.hw_version ?? "1" + ); + if (isNaN(num)) { + hw_version.value = 1; + } else { + hw_version.value = num; + } }, async setHdmiInDecodeType(index: number, type: string) { let success = false; @@ -468,6 +528,39 @@ export default defineComponent({ current_hdmi_rotation.value = GlobalData.getInstance().applicationConfig?.device_hdmi_rotation ?? 0; }, + updateCurrentHdmiAudioDevice() { + current_hdmi_audio_device.value = + GlobalData.getInstance().applicationConfig?.hdmi_in_audio_device_1 ?? + ""; + switch (current_hdmi_audio_device.value) { + case "": + case "3.5mm": + break; + default: + current_hdmi_audio_device.value = ""; + break; + } + }, + async setHdmiInAudioDevice(index: number, device: string) { + let success = false; + + const response = await GlobalData.getInstance() + .getCurrentClient() + ?.setHdmiInAudioDevice(index, device); + + if (response) { + success = response.success; + } + + $q.notify({ + color: success ? "positive" : "negative", + icon: success ? "done" : "warning", + message: + $t.t("set") + (success ? $t.t("success") : $t.t("fail")) + "!", + position: "top", + timeout: 1500, + }); + }, setHDMIRotation(rotation: number) { let success = true; try { diff --git a/src/entities/ApplicationConfigEntity.ts b/src/entities/ApplicationConfigEntity.ts index 5543f2d..333b3e9 100644 --- a/src/entities/ApplicationConfigEntity.ts +++ b/src/entities/ApplicationConfigEntity.ts @@ -34,6 +34,8 @@ export default class ApplicationConfigEntity { runtime_os: string = ""; registered: boolean = false; hdmi_in_decode_type_1: string | undefined; + hdmi_in_audio_device_1: string | undefined; + hw_version: string | undefined; device_hdmi_output_count = 1; video_suffix_filter: string | null = ""; image_suffix_filter: string | null = ""; diff --git a/src/entities/WSProtocol.ts b/src/entities/WSProtocol.ts index abd19c7..6ae18fc 100644 --- a/src/entities/WSProtocol.ts +++ b/src/entities/WSProtocol.ts @@ -474,6 +474,9 @@ export namespace Protocol { public static get kSetHDMIRotation() { return Commands.PROTOCOL_PREFIX + "SetHDMIRotation"; } + public static get kRpcSetHdmiInAudioDevice() { + return Commands.PROTOCOL_PREFIX + "RpcSetHdmiInAudioDevice"; + } public static get kRpcSetMagicWallConfig() { return Commands.PROTOCOL_PREFIX + "RpcSetMagicWallConfig"; @@ -616,6 +619,7 @@ export namespace Protocol { Commands.kRpcDeleteJointActionEquipment, Commands.kCleanBrowserCache, Commands.kSetHDMIRotation, + Commands.kRpcSetHdmiInAudioDevice, Commands.kRpcGetMagicWallConfig, Commands.kRpcSetMagicWallConfig, Commands.kRpcTestA, @@ -2919,6 +2923,30 @@ export namespace Protocol { note = ""; } + export class SetHdmiInAudioDeviceRequestEntity extends PacketEntity { + constructor(index: number, device: string, rpc_id = 0) { + super(); + super.command = Commands.kRpcSetHdmiInAudioDevice; + super.flag = PacketEntity.FLAG_REQUEST; + super.rpc_id = rpc_id; + this.index = index ?? 1; + this.device = device ?? ""; + } + index: number; + device: string; + note: string = ""; + } + + export class SetHdmiInAudioDeviceResponseEntity extends PacketEntity { + constructor() { + super(); + super.flag = PacketEntity.FLAG_RESPONSE; + } + + success = false; + note = ""; + } + export class GetCityListRequestEntity extends PacketEntity { constructor(language?: string, rpc_id = 0) { super(); diff --git a/src/i18n/en-US/index.ts b/src/i18n/en-US/index.ts index e2194b3..a1a5788 100644 --- a/src/i18n/en-US/index.ts +++ b/src/i18n/en-US/index.ts @@ -376,6 +376,10 @@ export default { "row multiply column should be less than or equal to ": "Row Multiply Column Should Be Less Than Or Equal To ", "please select window rotation": "Please Select Window Rotation", + "hdmi internal": "HDMI Internal", + set: "Set", + "hdmi audio frequency acquisition device": + "HDMI Audio Frequency Acquisition Device", "send command": "Send Command", "please check connection config": "Please Check Connection Config", "connection setting": "Connection Setting", diff --git a/src/i18n/zh-CN/index.ts b/src/i18n/zh-CN/index.ts index 94c433b..dba5e39 100644 --- a/src/i18n/zh-CN/index.ts +++ b/src/i18n/zh-CN/index.ts @@ -648,6 +648,8 @@ export default { "row multiply column should be less than or equal to ": "行乘以列的值不能大于", "please select window rotation": "请选择窗口旋转", + "hdmi internal": "HDMI内置", + "hdmi audio frequency acquisition device": "HDMI声音采集设备", "please check connection config": "请检查连接配置", "connection setting": "连接设置", "connection type": "连接类型",