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

add encoder for voiceInit

This commit is contained in:
Robin Appelman 2017-08-16 21:55:00 +02:00
commit 7f2d702ab0
3 changed files with 39 additions and 4 deletions

View file

@ -16,7 +16,7 @@ import {ParseTempEntities} from '../Packet/TempEntities';
import {EncodeUpdateStringTable, ParseUpdateStringTable} from '../Packet/UpdateStringTable';
import {ParseUserMessage} from '../Packet/UserMessage';
import {ParseVoiceData} from '../Packet/VoiceData';
import {ParseVoiceInit} from '../Packet/VoiceInit';
import {EncodeVoiceInit, ParseVoiceInit} from '../Packet/VoiceInit';
import {Parser} from './Parser';
import {Packet as IPacket} from '../../Data/Packet';
@ -43,7 +43,7 @@ export class Packet extends Parser {
11: make('setPause', 'paused{b}'),
12: {parser: ParseCreateStringTable, encoder: EncodeCreateStringTable},
13: {parser: ParseUpdateStringTable, encoder: EncodeUpdateStringTable},
14: {parser: ParseVoiceInit, encoder: voidEncoder},
14: {parser: ParseVoiceInit, encoder: EncodeVoiceInit},
15: {parser: ParseVoiceData, encoder: voidEncoder},
17: {parser: ParseParseSounds, encoder: voidEncoder},
18: make('setView', 'index{11}'),

View file

@ -2,10 +2,12 @@ import {BitStream} from 'bit-buffer';
import {VoiceInitPacket} from '../../Data/Packet';
export function ParseVoiceInit(stream: BitStream): VoiceInitPacket {
const codec = stream.readASCIIString();
const quality = stream.readUint8();
const codec = stream.readASCIIString();
const quality = stream.readUint8();
// no clue, from 2017-2-14 update
const extraData = (codec === 'vaudio_celt' && quality === 255) ? stream.readUint16() : 0;
return {
packetType: 'voiceInit',
codec,
@ -13,3 +15,11 @@ export function ParseVoiceInit(stream: BitStream): VoiceInitPacket {
extraData,
};
}
export function EncodeVoiceInit(packet: VoiceInitPacket, stream: BitStream) {
stream.writeASCIIString(packet.codec);
stream.writeUint8(packet.quality);
if (packet.extraData) {
stream.writeUint16(packet.extraData);
}
}