feat(KeyBoard): add ScreenStream for keyboard setting

This commit is contained in:
AkiChase 2024-05-24 12:38:59 +08:00
parent 4b48a6a563
commit b3d13e2089
3 changed files with 23 additions and 12 deletions

View File

@ -27,7 +27,6 @@ const message = useMessage();
const dialog = useDialog(); const dialog = useDialog();
const curPageActive = ref(false); const curPageActive = ref(false);
const screenStreamClientId = genClientId();
onBeforeRouteLeave(() => { onBeforeRouteLeave(() => {
curPageActive.value = false; curPageActive.value = false;
@ -59,6 +58,7 @@ onActivated(async () => {
}); });
onMounted(async () => { onMounted(async () => {
store.screenStreamClientId = genClientId();
await loadLocalStore(); await loadLocalStore();
store.checkUpdate = checkUpdate; store.checkUpdate = checkUpdate;
if (store.checkUpdateAtStart) checkUpdate(); if (store.checkUpdateAtStart) checkUpdate();
@ -266,7 +266,7 @@ async function checkUpdate() {
<template v-if="store.keyMappingConfigList.length"> <template v-if="store.keyMappingConfigList.length">
<div @contextmenu.prevent class="mask" id="maskElement"></div> <div @contextmenu.prevent class="mask" id="maskElement"></div>
<ScreenStream <ScreenStream
:cid="screenStreamClientId" :cid="store.screenStreamClientId"
v-if="curPageActive && store.controledDevice && store.screenStream.enable" v-if="curPageActive && store.controledDevice && store.screenStream.enable"
/> />
<div <div

View File

@ -8,6 +8,7 @@ import KeySkill from "./KeySkill.vue";
import KeyObservation from "./KeyObservation.vue"; import KeyObservation from "./KeyObservation.vue";
import KeySight from "./KeySight.vue"; import KeySight from "./KeySight.vue";
import KeyFire from "./KeyFire.vue"; import KeyFire from "./KeyFire.vue";
import ScreenStream from "../ScreenStream.vue";
import { import {
KeyDirectionalSkill, KeyDirectionalSkill,
@ -31,6 +32,7 @@ const keyboardStore = useKeyboardStore();
const dialog = useDialog(); const dialog = useDialog();
const message = useMessage(); const message = useMessage();
const curPageActive = ref(false);
const addButtonPos = ref({ x: 0, y: 0 }); const addButtonPos = ref({ x: 0, y: 0 });
const addButtonOptions: DropdownOption[] = [ const addButtonOptions: DropdownOption[] = [
{ {
@ -280,12 +282,14 @@ function resetKeyMappingConfig() {
} }
onActivated(() => { onActivated(() => {
curPageActive.value = true;
document.addEventListener("keydown", handleKeyDown); document.addEventListener("keydown", handleKeyDown);
document.addEventListener("keyup", handleKeyUp); document.addEventListener("keyup", handleKeyUp);
document.addEventListener("wheel", handleMouseWheel); document.addEventListener("wheel", handleMouseWheel);
}); });
onBeforeRouteLeave(() => { onBeforeRouteLeave(() => {
curPageActive.value = false;
return new Promise((resolve, _) => { return new Promise((resolve, _) => {
document.removeEventListener("keydown", handleKeyDown); document.removeEventListener("keydown", handleKeyDown);
document.removeEventListener("keyup", handleKeyUp); document.removeEventListener("keyup", handleKeyUp);
@ -316,6 +320,10 @@ onBeforeRouteLeave(() => {
</script> </script>
<template> <template>
<ScreenStream
:cid="store.screenStreamClientId"
v-if="curPageActive && store.controledDevice && store.screenStream.enable"
/>
<div <div
v-if="store.keyMappingConfigList.length" v-if="store.keyMappingConfigList.length"
id="keyboardElement" id="keyboardElement"

View File

@ -78,6 +78,17 @@ export const useGlobalStore = defineStore("global", () => {
const maskSizeW: Ref<number> = ref(0); const maskSizeW: Ref<number> = ref(0);
const maskSizeH: Ref<number> = ref(0); const maskSizeH: Ref<number> = ref(0);
const screenStreamClientId = ref("scrcpy-mask");
// persistent storage
const keyMappingConfigList: Ref<KeyMappingConfig[]> = ref([]);
const curKeyMappingIndex = ref(0);
const maskButton = ref({
transparency: 0.5,
show: true,
});
const checkUpdateAtStart = ref(true);
const screenStream = ref({ const screenStream = ref({
enable: false, enable: false,
address: "", address: "",
@ -89,15 +100,6 @@ export const useGlobalStore = defineStore("global", () => {
horizontalLength: 800, horizontalLength: 800,
}); });
// persistent storage
const keyMappingConfigList: Ref<KeyMappingConfig[]> = ref([]);
const curKeyMappingIndex = ref(0);
const maskButton = ref({
transparency: 0.5,
show: true,
});
const checkUpdateAtStart = ref(true);
return { return {
// persistent storage // persistent storage
keyMappingConfigList, keyMappingConfigList,
@ -105,9 +107,10 @@ export const useGlobalStore = defineStore("global", () => {
maskButton, maskButton,
checkUpdateAtStart, checkUpdateAtStart,
externalControlled, externalControlled,
// in-memory storage
screenStream, screenStream,
rotation, rotation,
// in-memory storage
screenStreamClientId,
maskSizeW, maskSizeW,
maskSizeH, maskSizeH,
screenSizeW, screenSizeW,