#include "AudioPacketData.hpp" #include "utils/serialize/basics.hpp" namespace drp::packet::audio { std::vector AudioPacketData::serialize() const { // serialize the members const auto serializedTimePlay = util::serialize::serializeObject(this->timePlay); const auto serializedChannels = util::serialize::serializeObject(this->channels); const auto serializedSampleFormat = util::serialize::serializeObject(this->sampleFormat); const auto serializedSampleRate = util::serialize::serializeObject(this->sampleRate); const auto serializedContent = util::serialize::serializeVector(this->content); // create a buffer to store our members std::vector data; // store our members data.insert(data.end(), serializedTimePlay.begin(), serializedTimePlay.end()); data.insert(data.end(), serializedChannels.begin(), serializedChannels.end()); data.insert(data.end(), serializedSampleFormat.begin(), serializedSampleFormat.end()); data.insert(data.end(), serializedSampleRate.begin(), serializedSampleRate.end()); data.insert(data.end(), serializedContent.begin(), serializedContent.end()); return data; } AudioPacketData AudioPacketData::deserialize(std::vector& data) { // deserialize the members const auto packetTimePlay = util::serialize::deserializeObject>(data); const auto packetChannels = util::serialize::deserializeObject(data); const auto packetSampleFormat = util::serialize::deserializeObject(data); const auto packetSampleRate = util::serialize::deserializeObject(data); const auto packetContent = util::serialize::deserializeVector(data); return {packetTimePlay, packetChannels, packetSampleFormat, packetSampleRate, packetContent}; } }