aboutsummaryrefslogtreecommitdiff
path: root/pkg/messages/types/svcVoiceInit.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/messages/types/svcVoiceInit.go')
-rw-r--r--pkg/messages/types/svcVoiceInit.go16
1 files changed, 11 insertions, 5 deletions
diff --git a/pkg/messages/types/svcVoiceInit.go b/pkg/messages/types/svcVoiceInit.go
index afabfc9..a6d711a 100644
--- a/pkg/messages/types/svcVoiceInit.go
+++ b/pkg/messages/types/svcVoiceInit.go
@@ -3,18 +3,24 @@ package messages
3import "github.com/pektezol/bitreader" 3import "github.com/pektezol/bitreader"
4 4
5type SvcVoiceInit struct { 5type SvcVoiceInit struct {
6 Codec string 6 Codec string
7 Quality uint8 7 Quality uint8
8 Unk float32 8 SampleRate int32
9} 9}
10 10
11func ParseSvcVoiceInit(reader *bitreader.Reader) SvcVoiceInit { 11func ParseSvcVoiceInit(reader *bitreader.Reader) SvcVoiceInit {
12 svcVoiceInit := SvcVoiceInit{ 12 svcVoiceInit := SvcVoiceInit{
13 Codec: reader.TryReadString(), 13 Codec: reader.TryReadString(),
14 Quality: uint8(reader.TryReadBits(8)), 14 Quality: reader.TryReadUInt8(),
15 } 15 }
16 if svcVoiceInit.Quality == 0b11111111 { 16 if svcVoiceInit.Quality == 0b11111111 {
17 svcVoiceInit.Unk = reader.TryReadFloat32() 17 svcVoiceInit.SampleRate = reader.TryReadSInt32()
18 } else {
19 if svcVoiceInit.Codec == "vaudio_celt" {
20 svcVoiceInit.SampleRate = 22050
21 } else {
22 svcVoiceInit.SampleRate = 11025
23 }
18 } 24 }
19 return svcVoiceInit 25 return svcVoiceInit
20} 26}