From cb161a8a40dd2563f2642a17bcbd14b763ae7440 Mon Sep 17 00:00:00 2001 From: Amish Shah Date: Fri, 19 Jan 2018 22:47:01 +0000 Subject: [PATCH] Implement Receiver debug events --- src/client/voice/VoiceConnection.js | 5 ----- src/client/voice/receiver/PacketHandler.js | 5 ++++- src/client/voice/receiver/Receiver.js | 10 ++++++---- src/client/voice/receiver/VoiceReceiver.js | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/client/voice/VoiceConnection.js b/src/client/voice/VoiceConnection.js index 064d1c8f9..4147fdf94 100644 --- a/src/client/voice/VoiceConnection.js +++ b/src/client/voice/VoiceConnection.js @@ -415,11 +415,6 @@ class VoiceConnection extends EventEmitter { const guild = this.channel.guild; const user = this.client.users.get(user_id); this.ssrcMap.set(+ssrc, user); - if (!speaking) { - for (const receiver of this.receivers) { - receiver.stoppedSpeaking(user); - } - } /** * Emitted whenever a user starts/stops speaking. * @event VoiceConnection#speaking diff --git a/src/client/voice/receiver/PacketHandler.js b/src/client/voice/receiver/PacketHandler.js index 8fcd3d089..1e2115e54 100644 --- a/src/client/voice/receiver/PacketHandler.js +++ b/src/client/voice/receiver/PacketHandler.js @@ -50,7 +50,10 @@ class PacketHandler { const stream = this.streams.get(user.id); if (!stream) return; const opusPacket = this.parseBuffer(buffer); - if (opusPacket instanceof Error) return; + if (opusPacket instanceof Error) { + this.emit('error', opusPacket); + return; + } stream.push(opusPacket); } } diff --git a/src/client/voice/receiver/Receiver.js b/src/client/voice/receiver/Receiver.js index 6e63ade5a..c6b03ea2d 100644 --- a/src/client/voice/receiver/Receiver.js +++ b/src/client/voice/receiver/Receiver.js @@ -7,6 +7,12 @@ class VoiceReceiver extends EventEmitter { super(); this.connection = connection; this.packets = new PacketHandler(this); + /** + * Emitted whenever there is a warning + * @event VoiceReceiver#debug + * @param {Error|string} error The error or message to debug + */ + this.packets.on('error', err => this.emit('debug', err)); this.connection.sockets.udp.socket.on('message', buffer => this.packets.push(buffer)); } @@ -21,10 +27,6 @@ class VoiceReceiver extends EventEmitter { } return stream; } - - stoppedSpeaking() { - return false; - } } module.exports = VoiceReceiver; diff --git a/src/client/voice/receiver/VoiceReceiver.js b/src/client/voice/receiver/VoiceReceiver.js index 07c4894bd..bc7a87061 100644 --- a/src/client/voice/receiver/VoiceReceiver.js +++ b/src/client/voice/receiver/VoiceReceiver.js @@ -131,7 +131,7 @@ class VoiceReceiver extends EventEmitter { return stream; } - /** + /** * Creates a readable stream for a user that provides PCM data while the user is speaking. When the user * stops speaking, the stream is destroyed. The stream is 32-bit signed stereo PCM at 48KHz. * @param {UserResolvable} user The user to create the stream for