M2-PT-DRP/source/packets/AudioPacket.py

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