mirror of
https://github.com/chuot/rdio-scanner.git
synced 2026-08-14 17:03:02 -06:00
Version 4.9.2
This commit is contained in:
parent
e8d0f495c1
commit
627fab3bcb
|
|
@ -12,6 +12,10 @@ _v4.9.1_
|
|||
- dirWatch.type="trunk-recorder" now deletes the JSON file in case the audio file is missing.
|
||||
- Fix downstream sending wrong talkgroup id.
|
||||
|
||||
_v4.9.2_
|
||||
|
||||
- Add Config.options.disableKeyboardShortcuts to make everyone a happy camper.
|
||||
|
||||
# Version 4.8
|
||||
|
||||
- Add downstream.system.id_as property to allow export system with a different id.
|
||||
|
|
|
|||
2
client/package-lock.json
generated
2
client/package-lock.json
generated
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "rdio-scanner-client",
|
||||
"version": "4.9.1",
|
||||
"version": "4.9.2",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
|
|
|||
|
|
@ -32,5 +32,5 @@
|
|||
"build": "ng build --base-href ./ --prod",
|
||||
"start": "ng serve"
|
||||
},
|
||||
"version": "4.9.1"
|
||||
"version": "4.9.2"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -118,8 +118,12 @@ export class AppRdioScannerMainComponent implements OnDestroy, OnInit {
|
|||
}
|
||||
}
|
||||
|
||||
@HostListener('document:keydown.a')
|
||||
avoid(options?: RdioScannerAvoidOptions): void {
|
||||
@HostListener('document:keydown.a', ['$event'])
|
||||
avoid(options?: RdioScannerAvoidOptions, event?: KeyboardEvent): void {
|
||||
if (event && !this.config?.keyboardShortcuts) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.auth) {
|
||||
this.authFocus();
|
||||
|
||||
|
|
@ -144,8 +148,12 @@ export class AppRdioScannerMainComponent implements OnDestroy, OnInit {
|
|||
}
|
||||
}
|
||||
|
||||
@HostListener('document:keydown.s')
|
||||
holdSystem(): void {
|
||||
@HostListener('document:keydown.s', ['$event'])
|
||||
holdSystem(event?: KeyboardEvent): void {
|
||||
if (event && !this.config?.keyboardShortcuts) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.auth) {
|
||||
this.authFocus();
|
||||
|
||||
|
|
@ -163,8 +171,12 @@ export class AppRdioScannerMainComponent implements OnDestroy, OnInit {
|
|||
}
|
||||
}
|
||||
|
||||
@HostListener('document:keydown.t')
|
||||
holdTalkgroup(): void {
|
||||
@HostListener('document:keydown.t', ['$event'])
|
||||
holdTalkgroup(event?: KeyboardEvent): void {
|
||||
if (event && !this.config?.keyboardShortcuts) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.auth) {
|
||||
this.authFocus();
|
||||
|
||||
|
|
@ -182,8 +194,12 @@ export class AppRdioScannerMainComponent implements OnDestroy, OnInit {
|
|||
}
|
||||
}
|
||||
|
||||
@HostListener('document:keydown.l')
|
||||
livefeed(): void {
|
||||
@HostListener('document:keydown.l', ['$event'])
|
||||
livefeed(event?: KeyboardEvent): void {
|
||||
if (event && !this.config?.keyboardShortcuts) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.auth) {
|
||||
this.authFocus();
|
||||
|
||||
|
|
@ -207,8 +223,12 @@ export class AppRdioScannerMainComponent implements OnDestroy, OnInit {
|
|||
}
|
||||
|
||||
@HostListener('document:keydown.space', ['$event'])
|
||||
@HostListener('document:keydown.p')
|
||||
@HostListener('document:keydown.p', ['$event'])
|
||||
pause(event?: KeyboardEvent): void {
|
||||
if (event && !this.config?.keyboardShortcuts) {
|
||||
return;
|
||||
}
|
||||
|
||||
event?.preventDefault();
|
||||
|
||||
if (this.auth) {
|
||||
|
|
@ -228,8 +248,12 @@ export class AppRdioScannerMainComponent implements OnDestroy, OnInit {
|
|||
}
|
||||
}
|
||||
|
||||
@HostListener('document:keydown.r')
|
||||
replay(): void {
|
||||
@HostListener('document:keydown.r', ['$event'])
|
||||
replay(event?: KeyboardEvent): void {
|
||||
if (event && !this.config?.keyboardShortcuts) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.auth) {
|
||||
this.authFocus();
|
||||
|
||||
|
|
@ -277,8 +301,12 @@ export class AppRdioScannerMainComponent implements OnDestroy, OnInit {
|
|||
}
|
||||
}
|
||||
|
||||
@HostListener('document:keydown.n')
|
||||
skip(options?: { delay?: boolean }): void {
|
||||
@HostListener('document:keydown.n', ['$event'])
|
||||
skip(options?: { delay?: boolean }, event?: KeyboardEvent): void {
|
||||
if (event && !this.config?.keyboardShortcuts) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.auth) {
|
||||
this.authFocus();
|
||||
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
import { Component, ElementRef, HostListener, OnDestroy, ViewChild } from '@angular/core';
|
||||
import { MatSidenav } from '@angular/material/sidenav';
|
||||
import { RdioScannerEvent, RdioScannerLivefeedMode } from './rdio-scanner';
|
||||
import { RdioScannerConfig, RdioScannerEvent, RdioScannerLivefeedMode } from './rdio-scanner';
|
||||
import { AppRdioScannerService } from './rdio-scanner.service';
|
||||
|
||||
@Component({
|
||||
|
|
@ -28,6 +28,8 @@ import { AppRdioScannerService } from './rdio-scanner.service';
|
|||
templateUrl: './rdio-scanner.component.html',
|
||||
})
|
||||
export class AppRdioScannerComponent implements OnDestroy {
|
||||
private config: RdioScannerConfig | undefined;
|
||||
|
||||
private eventSubscription = this.appRdioScannerService.event.subscribe((event: RdioScannerEvent) => this.eventHandler(event));
|
||||
|
||||
private livefeedMode: RdioScannerLivefeedMode = RdioScannerLivefeedMode.Offline;
|
||||
|
|
@ -65,9 +67,13 @@ export class AppRdioScannerComponent implements OnDestroy {
|
|||
this.eventSubscription.unsubscribe();
|
||||
}
|
||||
|
||||
@HostListener('document:keydown.f')
|
||||
@HostListener('document:keydown.f', ['$event'])
|
||||
@HostListener('document:keydown.tab', ['$event'])
|
||||
toggleFullscreen(event?: KeyboardEvent): void {
|
||||
if (event && !this.config?.keyboardShortcuts) {
|
||||
return;
|
||||
}
|
||||
|
||||
event?.preventDefault();
|
||||
|
||||
if (document.fullscreenElement) {
|
||||
|
|
@ -110,6 +116,10 @@ export class AppRdioScannerComponent implements OnDestroy {
|
|||
}
|
||||
|
||||
private eventHandler(event: RdioScannerEvent): void {
|
||||
if ('config' in event) {
|
||||
this.config = event.config;
|
||||
}
|
||||
|
||||
if (event.livefeedMode) {
|
||||
this.livefeedMode = event.livefeedMode;
|
||||
}
|
||||
|
|
@ -117,6 +127,10 @@ export class AppRdioScannerComponent implements OnDestroy {
|
|||
|
||||
@HostListener('document:keydown.arrowleft', ['$event'])
|
||||
private keyLeftArrow(event?: KeyboardEvent): void {
|
||||
if (event && !this.config?.keyboardShortcuts) {
|
||||
return;
|
||||
}
|
||||
|
||||
event?.preventDefault();
|
||||
|
||||
if (this.selectPanel?.opened) {
|
||||
|
|
@ -129,6 +143,10 @@ export class AppRdioScannerComponent implements OnDestroy {
|
|||
|
||||
@HostListener('document:keydown.arrowright', ['$event'])
|
||||
private keyRightArrow(event?: KeyboardEvent): void {
|
||||
if (event && !this.config?.keyboardShortcuts) {
|
||||
return;
|
||||
}
|
||||
|
||||
event?.preventDefault();
|
||||
|
||||
if (this.searchPanel?.opened) {
|
||||
|
|
|
|||
|
|
@ -74,6 +74,7 @@ export class AppRdioScannerService implements OnDestroy {
|
|||
private config: RdioScannerConfig = {
|
||||
dimmerDelay: false,
|
||||
groups: {},
|
||||
keyboardShortcuts: true,
|
||||
keypadBeeps: false,
|
||||
systems: [],
|
||||
tags: {},
|
||||
|
|
@ -784,6 +785,7 @@ export class AppRdioScannerService implements OnDestroy {
|
|||
this.config = {
|
||||
dimmerDelay: typeof config.dimmerDelay === 'number' ? config.dimmerDelay : 5000,
|
||||
groups: typeof config.groups !== null && typeof config.groups === 'object' ? config.groups : {},
|
||||
keyboardShortcuts: config.keyboardShortcuts,
|
||||
keypadBeeps: config.keypadBeeps !== null && typeof config.keypadBeeps === 'object' ? config.keypadBeeps : {},
|
||||
systems: Array.isArray(config.systems) ? config.systems.slice() : [],
|
||||
tags: typeof config.tags !== null && typeof config.tags === 'object' ? config.tags : {},
|
||||
|
|
|
|||
|
|
@ -73,6 +73,7 @@ export interface RdioScannerCallSource {
|
|||
export interface RdioScannerConfig {
|
||||
dimmerDelay: number | false;
|
||||
groups: { [key: string]: { [key: number]: number[] } };
|
||||
keyboardShortcuts: boolean;
|
||||
keypadBeeps: RdioScannerKeypadBeeps | false;
|
||||
systems: RdioScannerSystem[];
|
||||
tags: { [key: string]: { [key: number]: number[] } };
|
||||
|
|
|
|||
|
|
@ -63,6 +63,10 @@ This file is at the heart of [Rdio Scanner](https://github.com/chuot/rdio-scanne
|
|||
// Default value is false
|
||||
"disableAudioConversion": false,
|
||||
|
||||
// (boolean) Disable the ability to control Rdio Scanner via keyboard shortcuts
|
||||
// Default value is false
|
||||
"disableKeyboardShortcuts": false,
|
||||
|
||||
// (boolean) Emit beeps when clicking buttons
|
||||
// Default value is 1 which is preset #1
|
||||
// See KeypadBeeps section below for more details
|
||||
|
|
|
|||
|
|
@ -10,5 +10,5 @@
|
|||
"start": "node run",
|
||||
"update": "node update"
|
||||
},
|
||||
"version": "4.9.1"
|
||||
"version": "4.9.2"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -334,13 +334,15 @@ class Controller extends EventEmitter {
|
|||
|
||||
const dimmerDelay = this.config.options.dimmerDelay;
|
||||
|
||||
const keyboardShortcuts = !this.config.options.disableKeyboardShortcuts;
|
||||
|
||||
const keypadBeeps = options.keypadBeeps === false ? false
|
||||
: options.keypadBeeps === 1 ? defaults.keypadBeeps.uniden
|
||||
: options.keypadBeeps === 2 ? defaults.keypadBeeps.whistler
|
||||
: options.keypadBeeps !== null && typeof options.keypadBeeps === 'object' ? options.keypadBeeps
|
||||
: defaults.keypadBeeps.uniden;
|
||||
|
||||
return { dimmerDelay, keypadBeeps };
|
||||
return { dimmerDelay, keyboardShortcuts, keypadBeeps };
|
||||
}
|
||||
|
||||
getScope(token, store = this.config.access) {
|
||||
|
|
@ -738,6 +740,9 @@ function parseConfig(config) {
|
|||
delete config.disableAudioConversion;
|
||||
}
|
||||
|
||||
config.options.disableKeyboardShortcuts = typeof config.options.disableKeyboardShortcuts === 'boolean'
|
||||
? config.options.disableKeyboardShortcuts : false;
|
||||
|
||||
config.options.keypadBeeps = config.options.keypadBeeps === false ? false
|
||||
: config.options.keyBeep === false ? false
|
||||
: config.options.keypadBeeps !== null && typeof config.options.keypadBeeps === 'object' ? config.options.keypadBeeps
|
||||
|
|
|
|||
2
server/package-lock.json
generated
2
server/package-lock.json
generated
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "rdio-scanner-server",
|
||||
"version": "4.9.1",
|
||||
"version": "4.9.2",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
|
|
|||
|
|
@ -39,5 +39,5 @@
|
|||
"build": "webpack",
|
||||
"start": "nodemon"
|
||||
},
|
||||
"version": "4.9.1"
|
||||
"version": "4.9.2"
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue