diff options
| author | Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> | 2024-06-15 13:58:30 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-15 13:58:30 +0300 |
| commit | 77e4b066cb8d506b4bc944ab4eb2d6e4679e2202 (patch) | |
| tree | 1d549eca619ed36cb881e487cb054c4643ac8376 /pkg/classes/packet.go | |
| parent | change project name to sdp.go (diff) | |
| download | sdp.go-77e4b066cb8d506b4bc944ab4eb2d6e4679e2202.tar.gz sdp.go-77e4b066cb8d506b4bc944ab4eb2d6e4679e2202.tar.bz2 sdp.go-77e4b066cb8d506b4bc944ab4eb2d6e4679e2202.zip | |
enable multithreading with goroutines (#20)
Diffstat (limited to 'pkg/classes/packet.go')
| -rw-r--r-- | pkg/classes/packet.go | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/pkg/classes/packet.go b/pkg/classes/packet.go index 445ae91..c4f9676 100644 --- a/pkg/classes/packet.go +++ b/pkg/classes/packet.go | |||
| @@ -5,32 +5,32 @@ import ( | |||
| 5 | 5 | ||
| 6 | "github.com/pektezol/bitreader" | 6 | "github.com/pektezol/bitreader" |
| 7 | "github.com/pektezol/sdp.go/pkg/messages" | 7 | "github.com/pektezol/sdp.go/pkg/messages" |
| 8 | "github.com/pektezol/sdp.go/pkg/writer" | 8 | "github.com/pektezol/sdp.go/pkg/types" |
| 9 | ) | 9 | ) |
| 10 | 10 | ||
| 11 | const MSSC int = 2 | 11 | const MSSC int = 2 |
| 12 | 12 | ||
| 13 | type Packet struct { | 13 | type Packet struct { |
| 14 | PacketInfo []CmdInfo | 14 | PacketInfo []CmdInfo `json:"packet_info"` |
| 15 | InSequence uint32 | 15 | InSequence uint32 `json:"in_sequence"` |
| 16 | OutSequence uint32 | 16 | OutSequence uint32 `json:"out_sequence"` |
| 17 | Size uint32 | 17 | Size uint32 `json:"size"` |
| 18 | Data []any | 18 | Data []any `json:"data"` |
| 19 | } | 19 | } |
| 20 | 20 | ||
| 21 | type CmdInfo struct { | 21 | type CmdInfo struct { |
| 22 | Flags uint32 | 22 | Flags uint32 `json:"flags"` |
| 23 | ViewOrigin []float32 | 23 | ViewOrigin []float32 `json:"view_origin"` |
| 24 | ViewAngles []float32 | 24 | ViewAngles []float32 `json:"view_angles"` |
| 25 | LocalViewAngles []float32 | 25 | LocalViewAngles []float32 `json:"local_view_angles"` |
| 26 | ViewOrigin2 []float32 | 26 | ViewOrigin2 []float32 `json:"view_origin_2"` |
| 27 | ViewAngles2 []float32 | 27 | ViewAngles2 []float32 `json:"view_angles_2"` |
| 28 | LocalViewAngles2 []float32 | 28 | LocalViewAngles2 []float32 `json:"local_view_angles_2"` |
| 29 | } | 29 | } |
| 30 | 30 | ||
| 31 | func (packet *Packet) ParsePacket(reader *bitreader.Reader) { | 31 | func (packet *Packet) ParsePacket(reader *bitreader.Reader, demo *types.Demo) { |
| 32 | for count := 0; count < MSSC; count++ { | 32 | for count := 0; count < MSSC; count++ { |
| 33 | packet.ParseCmdInfo(reader) | 33 | packet.ParseCmdInfo(reader, demo) |
| 34 | } | 34 | } |
| 35 | packet.InSequence = reader.TryReadUInt32() | 35 | packet.InSequence = reader.TryReadUInt32() |
| 36 | packet.OutSequence = reader.TryReadUInt32() | 36 | packet.OutSequence = reader.TryReadUInt32() |
| @@ -41,11 +41,11 @@ func (packet *Packet) ParsePacket(reader *bitreader.Reader) { | |||
| 41 | if err != nil { | 41 | if err != nil { |
| 42 | break | 42 | break |
| 43 | } | 43 | } |
| 44 | packet.Data = append(packet.Data, messages.ParseMessages(messageType, packetReader)) | 44 | packet.Data = append(packet.Data, messages.ParseMessages(messageType, packetReader, demo)) |
| 45 | } | 45 | } |
| 46 | } | 46 | } |
| 47 | 47 | ||
| 48 | func (packet *Packet) ParseCmdInfo(reader *bitreader.Reader) { | 48 | func (packet *Packet) ParseCmdInfo(reader *bitreader.Reader, demo *types.Demo) { |
| 49 | packet.PacketInfo = append(packet.PacketInfo, CmdInfo{ | 49 | packet.PacketInfo = append(packet.PacketInfo, CmdInfo{ |
| 50 | Flags: reader.TryReadUInt32(), | 50 | Flags: reader.TryReadUInt32(), |
| 51 | ViewOrigin: []float32{reader.TryReadFloat32(), reader.TryReadFloat32(), reader.TryReadFloat32()}, | 51 | ViewOrigin: []float32{reader.TryReadFloat32(), reader.TryReadFloat32(), reader.TryReadFloat32()}, |
| @@ -55,14 +55,14 @@ func (packet *Packet) ParseCmdInfo(reader *bitreader.Reader) { | |||
| 55 | ViewAngles2: []float32{reader.TryReadFloat32(), reader.TryReadFloat32(), reader.TryReadFloat32()}, | 55 | ViewAngles2: []float32{reader.TryReadFloat32(), reader.TryReadFloat32(), reader.TryReadFloat32()}, |
| 56 | LocalViewAngles2: []float32{reader.TryReadFloat32(), reader.TryReadFloat32(), reader.TryReadFloat32()}, | 56 | LocalViewAngles2: []float32{reader.TryReadFloat32(), reader.TryReadFloat32(), reader.TryReadFloat32()}, |
| 57 | }) | 57 | }) |
| 58 | writer.AppendLine("\tFlags: %s", CmdInfoFlags(packet.PacketInfo[len(packet.PacketInfo)-1].Flags).String()) | 58 | demo.Writer.AppendLine("\tFlags: %s", CmdInfoFlags(packet.PacketInfo[len(packet.PacketInfo)-1].Flags).String()) |
| 59 | writer.AppendLine("\tView Origin: %v", packet.PacketInfo[len(packet.PacketInfo)-1].ViewOrigin) | 59 | demo.Writer.AppendLine("\tView Origin: %v", packet.PacketInfo[len(packet.PacketInfo)-1].ViewOrigin) |
| 60 | writer.AppendLine("\tView Angles: %v", packet.PacketInfo[len(packet.PacketInfo)-1].ViewAngles) | 60 | demo.Writer.AppendLine("\tView Angles: %v", packet.PacketInfo[len(packet.PacketInfo)-1].ViewAngles) |
| 61 | writer.AppendLine("\tLocal View Angles: %v", packet.PacketInfo[len(packet.PacketInfo)-1].LocalViewAngles) | 61 | demo.Writer.AppendLine("\tLocal View Angles: %v", packet.PacketInfo[len(packet.PacketInfo)-1].LocalViewAngles) |
| 62 | writer.AppendLine("\tView Origin 2: %v", packet.PacketInfo[len(packet.PacketInfo)-1].ViewOrigin2) | 62 | demo.Writer.AppendLine("\tView Origin 2: %v", packet.PacketInfo[len(packet.PacketInfo)-1].ViewOrigin2) |
| 63 | writer.AppendLine("\tView Angles 2: %v", packet.PacketInfo[len(packet.PacketInfo)-1].ViewAngles2) | 63 | demo.Writer.AppendLine("\tView Angles 2: %v", packet.PacketInfo[len(packet.PacketInfo)-1].ViewAngles2) |
| 64 | writer.AppendLine("\tLocal View Angles 2: %v", packet.PacketInfo[len(packet.PacketInfo)-1].LocalViewAngles2) | 64 | demo.Writer.AppendLine("\tLocal View Angles 2: %v", packet.PacketInfo[len(packet.PacketInfo)-1].LocalViewAngles2) |
| 65 | writer.AppendLine("") | 65 | demo.Writer.AppendLine("") |
| 66 | } | 66 | } |
| 67 | 67 | ||
| 68 | type CmdInfoFlags int | 68 | type CmdInfoFlags int |