From 85f08c19552b0072e1c05b7110e4c4128fd5de41 Mon Sep 17 00:00:00 2001 From: Stefan Dej Date: Wed, 26 Jul 2023 02:16:36 +0200 Subject: [PATCH 1/4] feat: add option to hide FPS counter Signed-off-by: Stefan Dej --- .../settings/Webcams/WebcamForm.vue | 30 +++++++++++++++++++ src/components/webcams/Mjpegstreamer.vue | 8 ++++- .../webcams/MjpegstreamerAdaptive.vue | 8 ++++- src/store/gui/webcams/types.ts | 4 ++- 4 files changed, 47 insertions(+), 3 deletions(-) diff --git a/src/components/settings/Webcams/WebcamForm.vue b/src/components/settings/Webcams/WebcamForm.vue index 55ae5a5e9..d6e28ae0b 100644 --- a/src/components/settings/Webcams/WebcamForm.vue +++ b/src/components/settings/Webcams/WebcamForm.vue @@ -102,6 +102,15 @@ :label="$t('Settings.WebcamsTab.Rotate')" /> + + + + +
@@ -250,6 +259,27 @@ export default class WebcamForm extends Mixins(BaseMixin, WebcamMixin) { return classes } + get hasFpsCounter() { + return ['mjpegstreamer', 'mjpegstreamer-adaptive'].includes(this.webcam.service) + } + + get hideFps() { + return this.webcam.extra_data?.hideFps ?? false + } + + set hideFps(newVal) { + if (!('extra_data' in this.webcam)) { + this.webcam.extra_data = { + hideFps: newVal, + } + + return + } + + // @ts-ignore + this.webcam.extra_data.hideFps = newVal + } + mounted() { this.oldWebcamName = this.webcam.name } diff --git a/src/components/webcams/Mjpegstreamer.vue b/src/components/webcams/Mjpegstreamer.vue index 1e64a04d4..1a43ac969 100644 --- a/src/components/webcams/Mjpegstreamer.vue +++ b/src/components/webcams/Mjpegstreamer.vue @@ -6,7 +6,7 @@ class="webcamImage" :style="webcamStyle" @load="onload" /> - {{ $t('Panels.WebcamPanel.FPS') }}: {{ fpsOutput }} + {{ $t('Panels.WebcamPanel.FPS') }}: {{ fpsOutput }}
@@ -73,6 +73,12 @@ export default class Mjpegstreamer extends Mixins(BaseMixin, WebcamMixin) { return this.currentFPS < 10 ? '0' + this.currentFPS.toString() : this.currentFPS } + get showFpsCounter() { + if (!this.showFps) return false + + return this.camSettings.extra_data?.hideFps ?? true + } + startStream() { if (this.streamState) return this.streamState = true diff --git a/src/components/webcams/MjpegstreamerAdaptive.vue b/src/components/webcams/MjpegstreamerAdaptive.vue index 40d2c77f8..42ea3e055 100644 --- a/src/components/webcams/MjpegstreamerAdaptive.vue +++ b/src/components/webcams/MjpegstreamerAdaptive.vue @@ -10,7 +10,7 @@ height="400" :style="webcamStyle" :class="'webcamImage ' + (isLoaded ? '' : 'hiddenWebcam')"> - + {{ $t('Panels.WebcamPanel.FPS') }}: {{ fpsOutput }} @@ -75,6 +75,12 @@ export default class MjpegstreamerAdaptive extends Mixins(BaseMixin) { return this.currentFPS < 10 ? '0' + this.currentFPS.toString() : this.currentFPS } + get showFpsCounter() { + if (!this.showFps) return false + + return !(this.camSettings.extra_data?.hideFps ?? false) + } + get rotate() { return [90, 270].includes(this.camSettings.rotation ?? 0) } diff --git a/src/store/gui/webcams/types.ts b/src/store/gui/webcams/types.ts index 1fa1385bb..50f03153b 100644 --- a/src/store/gui/webcams/types.ts +++ b/src/store/gui/webcams/types.ts @@ -25,6 +25,8 @@ export interface GuiWebcamStateWebcam { flip_vertical: boolean rotation: number aspect_ratio?: string - extra_data?: {} + extra_data?: { + hideFps?: boolean + } source?: 'config' | 'database' } From 6bff17c4bf59cefceda41b317fbf31352a76aa41 Mon Sep 17 00:00:00 2001 From: Stefan Dej Date: Wed, 26 Jul 2023 02:16:59 +0200 Subject: [PATCH 2/4] locale(en): add english locale Signed-off-by: Stefan Dej --- src/locales/en.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/locales/en.json b/src/locales/en.json index 86d442965..75431dd8e 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -1096,6 +1096,7 @@ "EditCrowsnestConf": "Edit crowsnest.conf", "EditWebcam": "Edit Webcam", "FlipWebcam": "Flip webcam image:", + "HideFps": "Hide FPS counter", "Horizontally": "horizontally", "IconBed": "Bed", "IconCam": "Cam", From b542448196aaf6948bf19a29551e8313509fe928 Mon Sep 17 00:00:00 2001 From: Stefan Dej Date: Wed, 26 Jul 2023 02:17:06 +0200 Subject: [PATCH 3/4] locale(de): add german locale Signed-off-by: Stefan Dej --- src/locales/de.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/locales/de.json b/src/locales/de.json index eb3a1aec2..ab7d92501 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -1097,6 +1097,7 @@ "EditWebcam": "Webcam bearbeiten", "FlipWebcam": "Webcam-Bild spiegeln:", "Hlsstream": "HLS-Stream", + "HideFps": "FPS-Anzeige verstecken", "Horizontally": "horizontal", "IconBed": "Bett", "IconCam": "Kamera", From ea7a85788f15ba40149adecfbec9192429012438 Mon Sep 17 00:00:00 2001 From: Stefan Dej Date: Wed, 9 Aug 2023 01:04:43 +0200 Subject: [PATCH 4/4] fix: invert hideFps attribute to display FPS Signed-off-by: Stefan Dej --- src/components/webcams/Mjpegstreamer.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/webcams/Mjpegstreamer.vue b/src/components/webcams/Mjpegstreamer.vue index 1a43ac969..c6873a9a0 100644 --- a/src/components/webcams/Mjpegstreamer.vue +++ b/src/components/webcams/Mjpegstreamer.vue @@ -76,7 +76,7 @@ export default class Mjpegstreamer extends Mixins(BaseMixin, WebcamMixin) { get showFpsCounter() { if (!this.showFps) return false - return this.camSettings.extra_data?.hideFps ?? true + return !(this.camSettings.extra_data?.hideFps ?? false) } startStream() {