#include void PacketQueue::push(const uint8_t* packet, const MiLightRemoteConfig* remoteConfig, const size_t repeatsOverride) { std::shared_ptr qp = checkoutPacket(); memcpy(qp->packet, packet, remoteConfig->packetFormatter->getPacketLength()); qp->remoteConfig = remoteConfig; qp->repeatsOverride = repeatsOverride; } bool PacketQueue::isEmpty() { return queue.size() == 0; } std::shared_ptr PacketQueue::pop() { return queue.shift(); } std::shared_ptr PacketQueue::checkoutPacket() { if (queue.size() == MILIGHT_MAX_QUEUED_PACKETS) { return queue.getLast(); } else { std::shared_ptr packet = std::make_shared(); queue.add(packet); return packet; } } void PacketQueue::checkinPacket(std::shared_ptr packet) { } size_t PacketQueue::size() { return queue.size(); }