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))