30 lines
604 B
Python
30 lines
604 B
Python
import dataclasses
|
|
|
|
import msgpack
|
|
|
|
from source.packets import base
|
|
|
|
|
|
@dataclasses.dataclass
|
|
class AudioPacket(base.BasePacket):
|
|
"""
|
|
Represent a packet of audio data
|
|
"""
|
|
|
|
data: bytes = dataclasses.field()
|
|
|
|
rate: int = dataclasses.field()
|
|
channels: int = dataclasses.field()
|
|
encoding: int = dataclasses.field()
|
|
|
|
def pack(self) -> bytes:
|
|
return msgpack.packb((
|
|
self.data,
|
|
self.rate,
|
|
self.channels,
|
|
self.encoding
|
|
))
|
|
|
|
@classmethod
|
|
def unpack(cls, data: bytes):
|
|
return cls(*msgpack.unpackb(data))
|