1
0
Fork 0
mirror of https://github.com/demostf/demo.js synced 2026-06-04 00:54:14 +02:00

add encoder for voiceData

This commit is contained in:
Robin Appelman 2017-08-16 22:02:50 +02:00
commit f360011ef4
3 changed files with 47 additions and 6 deletions

View file

@ -15,7 +15,7 @@ import {EncodeSetConVar, ParseSetConVar} from '../Packet/SetConVar';
import {ParseTempEntities} from '../Packet/TempEntities';
import {EncodeUpdateStringTable, ParseUpdateStringTable} from '../Packet/UpdateStringTable';
import {ParseUserMessage} from '../Packet/UserMessage';
import {ParseVoiceData} from '../Packet/VoiceData';
import {EncodeVoiceData, ParseVoiceData} from '../Packet/VoiceData';
import {EncodeVoiceInit, ParseVoiceInit} from '../Packet/VoiceInit';
import {Parser} from './Parser';
@ -44,7 +44,7 @@ export class Packet extends Parser {
12: {parser: ParseCreateStringTable, encoder: EncodeCreateStringTable},
13: {parser: ParseUpdateStringTable, encoder: EncodeUpdateStringTable},
14: {parser: ParseVoiceInit, encoder: EncodeVoiceInit},
15: {parser: ParseVoiceData, encoder: voidEncoder},
15: {parser: ParseVoiceData, encoder: EncodeVoiceData},
17: {parser: ParseParseSounds, encoder: voidEncoder},
18: make('setView', 'index{11}'),
19: make('fixAngle', 'relative{b}x{16}y{16}z{16}'),

View file

@ -2,11 +2,11 @@ import {BitStream} from 'bit-buffer';
import {VoiceDataPacket} from '../../Data/Packet';
export function ParseVoiceData(stream: BitStream): VoiceDataPacket {
// 'client{8}proximity{8}length{16}_{$length}'
const client = stream.readUint8();
const client = stream.readUint8();
const proximity = stream.readUint8();
const length = stream.readUint16();
const data = stream.readBitStream(length);
const length = stream.readUint16();
const data = stream.readBitStream(length);
return {
packetType: 'voiceData',
client,
@ -15,3 +15,17 @@ export function ParseVoiceData(stream: BitStream): VoiceDataPacket {
data,
};
}
export function EncodeVoiceData(packet: VoiceDataPacket, stream: BitStream) {
stream.writeUint8(packet.client);
stream.writeUint8(packet.proximity);
stream.writeUint16(packet.length);
packet.data.index = 0;
stream.writeBitStream(packet.data, packet.length);
packet.data.index = 0;
const length = stream.index;
stream.index = 0;
console.log(stream.readArrayBuffer(Math.ceil(length / 8)));
}

View file

@ -0,0 +1,27 @@
import {BitStream} from 'bit-buffer';
import {assertEncoder, assertParser, getStream} from './PacketTest';
import {EncodeVoiceData, ParseVoiceData} from '../../../../Parser/Packet/VoiceData';
const data = [5, 18, 24, 0, 123, 219, 1];
suite('VoiceInit', () => {
test('Parse voiceInit', () => {
assertParser(ParseVoiceData, getStream(data), {
packetType: 'voiceData',
client: '5',
proximity: 18,
length: 24,
data: getStream([123, 219, 1])
}, 56);
});
test('Encode voiceInit', () => {
assertEncoder(ParseVoiceData, EncodeVoiceData, {
packetType: 'voiceData',
client: '5',
proximity: 18,
length: 24,
data: getStream([123, 219, 1])
}, 56);
});
});