From 3ad93689d15f17f163f36568e2c8e79aaeeb38df Mon Sep 17 00:00:00 2001 From: fangxiang Date: Tue, 1 Nov 2022 14:11:14 +0800 Subject: [PATCH] =?UTF-8?q?HDMI=E9=87=87=E9=9B=86=E5=8F=B3=E9=94=AE?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=E6=B7=BB=E5=8A=A0=E9=9F=B3=E9=A2=91=E9=87=87?= =?UTF-8?q?=E9=9B=86=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/ClientConnection.ts | 10 +++ src/components/SignalSourceTree.vue | 93 +++++++++++++++++++++++++ src/entities/ApplicationConfigEntity.ts | 2 + src/entities/WSProtocol.ts | 28 ++++++++ src/i18n/en-US/index.ts | 4 ++ src/i18n/zh-CN/index.ts | 2 + 6 files changed, 139 insertions(+) diff --git a/src/common/ClientConnection.ts b/src/common/ClientConnection.ts index fd5624f..a156545 100644 --- a/src/common/ClientConnection.ts +++ b/src/common/ClientConnection.ts @@ -1180,6 +1180,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 eb0d7e7..c962716 100644 --- a/src/components/SignalSourceTree.vue +++ b/src/components/SignalSourceTree.vue @@ -112,6 +112,53 @@ + + + {{ $t("hdmi audio frequency acquisition device") }} + + + + + + + + {{ $t(item.label) }} + + + + + + + { content_height.value = window.innerHeight - 135; @@ -272,6 +321,8 @@ export default defineComponent({ content_height, lossy_pic, current_hdmi_rotation, + hw_version, + current_hdmi_audio_device, loga(a: any) { console.log(a); @@ -432,6 +483,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; @@ -457,6 +517,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 aa1d236..5b42938 100644 --- a/src/entities/ApplicationConfigEntity.ts +++ b/src/entities/ApplicationConfigEntity.ts @@ -32,6 +32,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 96e1c83..c44919c 100644 --- a/src/entities/WSProtocol.ts +++ b/src/entities/WSProtocol.ts @@ -461,6 +461,9 @@ export namespace Protocol { public static get kSetHDMIRotation() { return Commands.PROTOCOL_PREFIX + "SetHDMIRotation"; } + public static get kRpcSetHdmiInAudioDevice() { + return Commands.PROTOCOL_PREFIX + "RpcSetHdmiInAudioDevice"; + } static _all_commands = new Set([ Commands.kUnKnowCommand, @@ -576,6 +579,7 @@ export namespace Protocol { Commands.kRpcDeleteJointActionEquipment, Commands.kCleanBrowserCache, Commands.kSetHDMIRotation, + Commands.kRpcSetHdmiInAudioDevice, ]); public static get AllCommands() { return this._all_commands; @@ -2835,6 +2839,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 d7c89f9..d408f98 100644 --- a/src/i18n/en-US/index.ts +++ b/src/i18n/en-US/index.ts @@ -376,4 +376,8 @@ 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", }; diff --git a/src/i18n/zh-CN/index.ts b/src/i18n/zh-CN/index.ts index e64f07d..69fd671 100644 --- a/src/i18n/zh-CN/index.ts +++ b/src/i18n/zh-CN/index.ts @@ -648,4 +648,6 @@ 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声音采集设备", };