diff options
Diffstat (limited to 'src/webrtc/opcodes/Speaking.ts')
-rw-r--r-- | src/webrtc/opcodes/Speaking.ts | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/webrtc/opcodes/Speaking.ts b/src/webrtc/opcodes/Speaking.ts new file mode 100644 index 00000000..e2227040 --- /dev/null +++ b/src/webrtc/opcodes/Speaking.ts @@ -0,0 +1,22 @@ +import { Payload, Send, WebSocket } from "@fosscord/gateway"; +import { getClients, VoiceOPCodes } from "../util"; + +// {"speaking":1,"delay":5,"ssrc":2805246727} + +export async function onSpeaking(this: WebSocket, data: Payload) { + if (!this.client) return; + + getClients(this.client.channel_id).forEach((client) => { + if (client === this.client) return; + const ssrc = this.client!.out.tracks.get(client.websocket.user_id); + + Send(client.websocket, { + op: VoiceOPCodes.SPEAKING, + d: { + user_id: client.websocket.user_id, + speaking: data.d.speaking, + ssrc: ssrc?.audio_ssrc || 0 + } + }); + }); +} \ No newline at end of file |