#pragma once #include #include namespace drp::packet::audio { /** * Represent the content of an audio packet. * Contains a chunk of audio and its metadata to play it. */ class AudioPacketData { public: [[nodiscard]] std::vector serialize() const; static AudioPacketData deserialize(std::vector& data); // scheduling // TODO(Faraphel): use a more "fixed" size format ? std::chrono::time_point timePlay; // audio settings std::uint8_t channels {}; std::uint32_t sampleFormat {}; std::uint32_t sampleRate {}; // content std::vector content {}; }; }