From be42eb5b5d57fa0fb262f579ca71b82989e83c0e Mon Sep 17 00:00:00 2001 From: DavidVentura Date: Sat, 27 Jan 2024 21:27:12 +0100 Subject: [PATCH] emit connection event --- handlers.ts | 4 ++++ server.ts | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/handlers.ts b/handlers.ts index 9e5c5fb..e38fe73 100644 --- a/handlers.ts +++ b/handlers.ts @@ -2,6 +2,7 @@ import { Commands, CommandsByValue, ControlCommands } from "./datatypes.js"; import { create_P2pRdy, SendStartVideo, SendUsrChk } from "./impl.js"; import { Session } from "./server.js"; import { u16_swap } from "./utils.js"; +import { hexdump } from "./hexdump.js"; let curImage = null; @@ -30,6 +31,7 @@ export const handle_PunchPkt = (session: Session, dv: DataView) => { const serial = dv.add(8).readU64().toString(); const suffix = dv.add(16).readString(4); // f141 20 BATC 609531 EXLV + session.eventEmitter.emit("connect", prefix.toString() + serial + suffix.toString()); session.send(create_P2pRdy(dv.add(4).readByteArray(len))); }; @@ -72,6 +74,8 @@ const deal_with_data = (session: Session, dv: DataView) => { const audio_len = u16_swap(dv.add(8 + 16).readU16()); const audio_buf = dv.add(32 + 8).readByteArray(audio_len).buffer; // 8 for pkt header, 32 for `stream_head_t` session.eventEmitter.emit("audio", Buffer.from(audio_buf)); + } else { + // not sure what these are for, there's one per frame. maybe alignment? } } else { const data = dv.add(8).readByteArray(pkt_len - 4); diff --git a/server.ts b/server.ts index 448b562..6733dcd 100644 --- a/server.ts +++ b/server.ts @@ -130,3 +130,7 @@ s.eventEmitter.on("frame", (frame: Buffer) => { s.eventEmitter.on("audio", (frame: Buffer) => { audioFd.write(frame); }); + +s.eventEmitter.on("connect", (name: string) => { + console.log(`Connected to ${name}`); +});