From b731d5b88e3f5eec6a147187fafb79e6ce10685c Mon Sep 17 00:00:00 2001 From: velvettear Date: Thu, 21 Apr 2022 13:43:33 +0200 Subject: [PATCH] moved 'constants' to a global variable --- classes/AudioServer.js | 36 +++++++++++++++++------------------- classes/EventParser.js | 3 +-- classes/Message.js | 4 +--- classes/Queue.js | 20 +++++++++----------- classes/Watcher.js | 16 +++++++--------- example_config_server.json | 2 +- kannon.js | 1 + 7 files changed, 37 insertions(+), 45 deletions(-) diff --git a/classes/AudioServer.js b/classes/AudioServer.js index e7fc12c..5b3281d 100644 --- a/classes/AudioServer.js +++ b/classes/AudioServer.js @@ -6,8 +6,6 @@ const stat = require('fs/promises').stat; const Message = require('./Message.js'); -const { CLIENT_STATE_REGISTERED, CLIENT_STATE_READY, CLIENT_STATE_PLAYING, CLIENT_STATE_PAUSED, CLIENT_STATE_STOPPED, CLIENT_STATE_ERROR } = require('../libs/constants.js'); - class AudioServer { constructor(file) { @@ -78,7 +76,7 @@ class AudioServer { } client.audiosocket = socket; this.clients.push(client); - this.#setClientState(client, CLIENT_STATE_REGISTERED); + this.#setClientState(client, constants.CLIENT_STATE_REGISTERED); client.audiosocket.on('connect', () => { logger.debug(client.getTag() + ' opened audio socket'); }); @@ -143,24 +141,24 @@ class AudioServer { return; } switch (client.state) { - case CLIENT_STATE_REGISTERED: + case constants.CLIENT_STATE_REGISTERED: return this.#handleStateRegistered(client); - case CLIENT_STATE_READY: + case constants.CLIENT_STATE_READY: return this.#handleStateReady(client); - case CLIENT_STATE_PLAYING: + case constants.CLIENT_STATE_PLAYING: return this.#handleStatePlaying(client); - case CLIENT_STATE_PAUSED: + case constants.CLIENT_STATE_PAUSED: return this.#handleStatePaused(client, data); - case CLIENT_STATE_STOPPED: + case constants.CLIENT_STATE_STOPPED: return this.#handleStateStopped(client, data); - case CLIENT_STATE_ERROR: + case constants.CLIENT_STATE_ERROR: return this.#handleStateError(client, data); } } async #handleStateRegistered(client) { logger.debug(client.getTag() + ' has registered...'); - if (!this.#allClientsInState(CLIENT_STATE_REGISTERED)) { + if (!this.#allClientsInState(constants.CLIENT_STATE_REGISTERED)) { return; } this.#transmitFile(); @@ -168,7 +166,7 @@ class AudioServer { async #handleStateReady(client) { logger.debug(client.getTag() + ' is ready for playback...'); - if (!this.#allClientsInState(CLIENT_STATE_READY)) { + if (!this.#allClientsInState(constants.CLIENT_STATE_READY)) { return; } this.#startPlayback(); @@ -213,27 +211,27 @@ class AudioServer { } async #announceAudioServer() { - this.broadcasts[CLIENT_STATE_REGISTERED] = await new Message('audio:initialize', { + this.broadcasts[constants.CLIENT_STATE_REGISTERED] = await new Message('audio:initialize', { port: this.server.address().port, size: this.buffer.size, threshold: this.buffer.threshold }).broadcast(true); - logger.debug('sent broadcast for audio server to client(s) \'' + this.broadcasts[CLIENT_STATE_REGISTERED] + '\'...'); + logger.debug('sent broadcast for audio server to client(s) \'' + this.broadcasts[constants.CLIENT_STATE_REGISTERED] + '\'...'); } async #startPlayback() { - this.broadcasts[CLIENT_STATE_PLAYING] = await new Message('audio:play', { position: this.position }).broadcast(); - logger.debug('sent broadcast to start playback to client(s) \'' + this.broadcasts[CLIENT_STATE_PLAYING] + '\'...'); + this.broadcasts[constants.CLIENT_STATE_PLAYING] = await new Message('audio:play', { position: this.position }).broadcast(); + logger.debug('sent broadcast to start playback to client(s) \'' + this.broadcasts[constants.CLIENT_STATE_PLAYING] + '\'...'); } async #stopPlayback() { - this.broadcasts[CLIENT_STATE_STOPPED] = await new Message('audio:stop').broadcast(); - logger.debug('sent broadcast to stop playback to client(s) \'' + this.broadcasts[CLIENT_STATE_STOPPED] + '\'...'); + this.broadcasts[constants.CLIENT_STATE_STOPPED] = await new Message('audio:stop').broadcast(); + logger.debug('sent broadcast to stop playback to client(s) \'' + this.broadcasts[constants.CLIENT_STATE_STOPPED] + '\'...'); } async #pausePlayback() { - this.broadcasts[CLIENT_STATE_PAUSED] = await new Message('audio:pause').broadcast(); - logger.debug('sent broadcast to pause playback to client(s) \'' + this.broadcasts[CLIENT_STATE_PAUSED] + '\'...'); + this.broadcasts[constants.CLIENT_STATE_PAUSED] = await new Message('audio:pause').broadcast(); + logger.debug('sent broadcast to pause playback to client(s) \'' + this.broadcasts[constants.CLIENT_STATE_PAUSED] + '\'...'); } async #transmitFile() { diff --git a/classes/EventParser.js b/classes/EventParser.js index 9bd1671..a60ea9f 100644 --- a/classes/EventParser.js +++ b/classes/EventParser.js @@ -1,4 +1,3 @@ -const { EVENT_DELIMITER } = require('../libs/constants.js'); const EventEmitter = require('events'); class EventParser extends EventEmitter { @@ -13,7 +12,7 @@ class EventParser extends EventEmitter { return; } this.buffer += data; - const indexOfEnd = this.buffer.indexOf(EVENT_DELIMITER); + const indexOfEnd = this.buffer.indexOf(constants.EVENT_DELIMITER); if (indexOfEnd === -1) { return; } diff --git a/classes/Message.js b/classes/Message.js index bb454ba..ecb2700 100644 --- a/classes/Message.js +++ b/classes/Message.js @@ -1,5 +1,3 @@ -const { EVENT_DELIMITER } = require('../libs/constants.js'); - class Message { constructor(id, data) { @@ -29,7 +27,7 @@ class Message { const data = this.toString(); logger.debug(client.getTag() + ' sending data: ' + data); await new Promise((resolve, reject) => { - client.socket.write(this.toString() + EVENT_DELIMITER, resolve); + client.socket.write(this.toString() + constants.EVENT_DELIMITER, resolve); }); return client.id; } diff --git a/classes/Queue.js b/classes/Queue.js index 712a8f9..a173ab0 100644 --- a/classes/Queue.js +++ b/classes/Queue.js @@ -1,8 +1,6 @@ const metadata = require('../libs/metadata.js'); const ext = require('path').extname; -const { FS_EVENT_ADD: EVENT_ADD, FS_EVENT_UNLINK: EVENT_UNLINK, FS_EVENT_CHANGE: EVENT_CHANGE } = require('../libs/constants.js'); - class Queue { constructor() { @@ -17,14 +15,14 @@ class Queue { } const element = { file: file }; switch (event) { - case EVENT_ADD: - element.event = EVENT_ADD; + case constants.FS_EVENT_ADD: + element.event = constants.FS_EVENT_ADD; break; - case EVENT_UNLINK: - element.event = EVENT_UNLINK; + case constants.FS_EVENT_UNLINK: + element.event = constants.FS_EVENT_UNLINK; break; - case EVENT_CHANGE: - element.event = EVENT_CHANGE; + case constants.FS_EVENT_CHANGE: + element.event = constants.FS_EVENT_CHANGE; break; default: return; @@ -57,13 +55,13 @@ class Queue { const timestamp = new Date().getTime(); logger.debug('handling event \'' + element.event + '\' for queued file \'' + element.file + '\'...'); switch (element.event) { - case EVENT_ADD: + case constants.FS_EVENT_ADD: await this.eventAdd(element.file); break; - case EVENT_UNLINK: + case constants.FS_EVENT_UNLINK: await this.eventUnlink(element.file); break; - case EVENT_CHANGE: + case constants.FS_EVENT_CHANGE: await this.eventChange(element.file); break; } diff --git a/classes/Watcher.js b/classes/Watcher.js index 4e09182..e57a557 100644 --- a/classes/Watcher.js +++ b/classes/Watcher.js @@ -1,8 +1,6 @@ const path = require('path'); const chokidar = require('chokidar'); -const { FS_EVENT_ADD: EVENT_ADD, FS_EVENT_UNLINK: EVENT_UNLINK, FS_EVENT_CHANGE: EVENT_CHANGE } = require('../libs/constants.js'); - class Watcher { constructor() { @@ -27,16 +25,16 @@ class Watcher { if (watcher === undefined) { return; } - watcher.on(EVENT_ADD, (file, stats) => { - queue.add(EVENT_ADD, file, stats); + watcher.on(constants.FS_EVENT_ADD, (file, stats) => { + queue.add(constants.FS_EVENT_ADD, file, stats); }); - watcher.on(EVENT_UNLINK, (file, stats) => { - queue.add(EVENT_UNLINK, file, stats); + watcher.on(constants.FS_EVENT_UNLINK, (file, stats) => { + queue.add(constants.FS_EVENT_UNLINK, file, stats); }); - watcher.on(EVENT_CHANGE, (file, stats) => { - queue.add(EVENT_CHANGE, file, stats); + watcher.on(constants.FS_EVENT_CHANGE, (file, stats) => { + queue.add(constants.FS_EVENT_CHANGE, file, stats); }); } } -module.exports = Watcher, EVENT_ADD, EVENT_UNLINK; \ No newline at end of file +module.exports = Watcher; \ No newline at end of file diff --git a/example_config_server.json b/example_config_server.json index 4ede58e..f51ddb3 100644 --- a/example_config_server.json +++ b/example_config_server.json @@ -22,7 +22,7 @@ "password": "kannon" }, "audio": { - "threshold": 10, + "threshold": 30, "bufferlimit": 64 } } \ No newline at end of file diff --git a/kannon.js b/kannon.js index 9ed536b..6023d5a 100644 --- a/kannon.js +++ b/kannon.js @@ -24,6 +24,7 @@ async function main() { exit('could not read config file at \'' + configPath + '\''); } handleExit(); + global.constants = require('./libs/constants.js'); global.logger.info("launching " + packageJSON.name + " " + packageJSON.version + "..."); try { // connect to the database and create/alter tables