添加静音图标

This commit is contained in:
fangxiang 2021-12-23 09:28:21 +08:00
parent 5811d2f7f6
commit 7e456340dc
7 changed files with 108 additions and 35 deletions

View File

@ -635,6 +635,26 @@ export default class ClientConnection {
}
}
public async unmuteWindow(window_id: number) {
try {
return await this.doRpc<Protocol.NoneResponse>(
new Protocol.UnMuteWindowRequestEntity(window_id, 0)
);
} catch (e) {
console.error(e);
}
}
public async muteWindow(window_id: number) {
try {
return await this.doRpc<Protocol.NoneResponse>(
new Protocol.MuteWindowRequestEntity(window_id, 0)
);
} catch (e) {
console.error(e);
}
}
public restartDevice(delay_ms?: number) {
this.ws?.send(
JSON.stringify(new Protocol.RestartDeviceRequestEntity(delay_ms))

View File

@ -19,7 +19,7 @@
v-close-popup
:disable="$props.disable"
@click="$emit('edit_volume', $props.window.window_id)"
v-if="!$props.window.muted"
v-if="!$props.window.muted && is_audo_player_window"
>
<q-item-section> {{ $t("edit volume") }} </q-item-section>
</q-item>
@ -28,8 +28,11 @@
v-close-popup
:disable="$props.disable"
@click="$emit('mute_unmute', $props.window.window_id)"
v-if="is_audo_player_window"
>
<q-item-section> {{ $t("mute") }} </q-item-section>
<q-item-section>
{{ $props.window.muted ? $t("unmute") : $t("mute") }}
</q-item-section>
</q-item>
<q-item
clickable
@ -59,9 +62,14 @@
</q-item>
</q-list>
</q-popup-proxy>
<div class="title_bar full-width">
<q-icon :name="getItemIcon(signal_source.window_type)" />
<div class="row title_bar full-width">
<q-icon :name="getItemIcon(signal_source.window_type)" class="q-mr-xs" />
<span>{{ signal_source.name }}</span>
<q-space />
<q-icon
v-if="is_audo_player_window"
:name="$props.window.muted ? 'volume_off' : 'volume_up'"
/>
</div>
<div
@ -250,7 +258,7 @@ div.absolute_left_down {
import { Common } from "src/common/Common";
import EventBus, { EventNamesDefine } from "src/common/EventBus";
import GlobalData from "src/common/GlobalData";
import { defineComponent, ref, watch, onUnmounted } from "vue";
import { defineComponent, ref, watch, onUnmounted, computed } from "vue";
import { useStore } from "src/store";
import { SignalSourceEntity } from "src/entities/SignalSourceEntity";
@ -306,8 +314,15 @@ export default defineComponent({
signal_source.value,
GlobalData.getInstance().getSignalSource(props.signal_source_table_uuid)
);
console.log(signal_source.value.window_type);
};
const is_audo_player_window = computed(
() =>
signal_source.value.window_type == "EwindowType::Multimedia" ||
signal_source.value.window_type == "EwindowType::HdmiIn"
);
reload_signal_source();
watch(props, (a, b) => {
reload_signal_source();
@ -346,7 +361,7 @@ export default defineComponent({
});
watch(
() => props.window.window_state,
() => props.window.focus,
(newValue, oldValue) => {
if (newValue) {
let old = selected.value;
@ -379,6 +394,7 @@ export default defineComponent({
can_move,
can_resize,
flags,
is_audo_player_window,
onClick(evt: PointerEvent) {
if (selected.value != true) {

View File

@ -2,18 +2,6 @@ import BaseEntity from "./BaseEntity";
import { SignalSourceEntity } from "./SignalSourceEntity";
import { Protocol } from "./WSProtocol";
export class WindowStates {
playing = false;
focus = false;
muted = false;
constructor(playing?: boolean, focus?: boolean, muted?: boolean) {
this.playing = playing ?? false;
this.focus = focus ?? false;
this.muted = muted ?? false;
}
}
export class MultimediaWindowEntity extends BaseEntity {
x: number = 0;
y: number = 0;
@ -21,7 +9,6 @@ export class MultimediaWindowEntity extends BaseEntity {
height: number = 0;
signal_source_table_uuid: string = "";
window_state = new WindowStates();
volume: number = 80;
muted: boolean = false;
paused: boolean = false;

View File

@ -224,6 +224,14 @@ export namespace Protocol {
return Commands.PROTOCOL_PREFIX + "SetWindowVolume";
}
public static get kMuteWidow() {
return Commands.PROTOCOL_PREFIX + "MuteWidow";
}
public static get kUnMuteWidow() {
return Commands.PROTOCOL_PREFIX + "UnMuteWidow";
}
static _all_commands = new Set([
Commands.kUnKnowCommand,
Commands.kSearchDevice,
@ -275,6 +283,8 @@ export namespace Protocol {
Commands.kRpcSetOutputBoardSetting,
Commands.kRpcGetOutputBoardSetting,
Commands.kSetWindowVolume,
Commands.kMuteWidow,
Commands.kUnMuteWidow,
]);
public static get AllCommands() {
@ -1351,4 +1361,26 @@ export namespace Protocol {
this.volume = volume;
}
}
export class MuteWindowRequestEntity extends Protocol.PacketEntity {
window_id: number;
constructor(window_id: number, rcp_id?: number) {
super();
this.rpc_id = rcp_id ?? 0;
this.command = Protocol.Commands.kMuteWidow;
this.window_id = window_id;
}
}
export class UnMuteWindowRequestEntity extends Protocol.PacketEntity {
window_id: number;
constructor(window_id: number, rcp_id?: number) {
super();
this.rpc_id = rcp_id ?? 0;
this.command = Protocol.Commands.kUnMuteWidow;
this.window_id = window_id;
}
}
}

View File

@ -5,4 +5,5 @@ export default class WindowOtherStateChangeNotifyEntity extends Protocol.PacketE
playing = false;
focus = false;
muted = false;
volume = 80;
}

View File

@ -265,6 +265,7 @@ export default {
"重要图形参数已更改,需要重启后生效,是否重启",
"output audio card": "输出声卡",
muted: "静音",
unmute: "取消静音",
"the system will reboot after the setup is complete":
"系统将在设置完成后重启",
"restart command send": "重启指令发送",

View File

@ -115,10 +115,7 @@ import Window from "src/components/Window.vue";
import { useI18n } from "vue-i18n";
import { useStore } from "src/store";
import EventBus, { EventNamesDefine } from "src/common/EventBus";
import {
WindowOpenNotifyEntity,
WindowStates,
} from "src/entities/MultimediaWindowEntity";
import { WindowOpenNotifyEntity } from "src/entities/MultimediaWindowEntity";
import WindowOtherStateChangeNotifyEntity from "src/entities/WindowOtherStateChangeNotifyEntity";
import { useQuasar } from "quasar";
import { NotifyMessage } from "src/common/ClientConnection";
@ -285,16 +282,30 @@ export default defineComponent({
(item) => item.window_id == temp.window_id
);
if (window) {
window.window_state; //
$store.commit("setWindowProperty", {
window,
property_name: "window_state",
value: new WindowStates(
temp.playing,
temp.focus,
temp.muted
),
});
console.log(temp);
console.log(window);
$store.commit("setWindowPropertys", [
{
window,
property_name: "playing",
value: temp.playing,
},
{
window,
property_name: "focus",
value: temp.focus,
},
{
window,
property_name: "muted",
value: temp.muted,
},
{
window,
property_name: "volume",
value: temp.volume,
},
]);
}
}
}
@ -535,12 +546,17 @@ export default defineComponent({
}
},
mute_unmute(window_id: number) {
console.log(windows.value);
const window = windows.value.find(
(element) => element && element.window_id == window_id
);
if (window) {
if (window.muted) {
GlobalData.getInstance()
.getCurrentClient()
?.unmuteWindow(window_id);
} else {
GlobalData.getInstance().getCurrentClient()?.muteWindow(window_id);
}
}
},
};