diff options
| author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2021-01-15 08:22:18 +0100 | 
|---|---|---|
| committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2021-01-15 08:22:18 +0100 | 
| commit | 9d6ddfcb36115084237bac3a3f1c49ddf0da765f (patch) | |
| tree | 6b828d92034a3322f9109663be32ff2646009d1f /lib/edioutput/TagPacket.h | |
| parent | b65ec3d9d712c23f99f6af6a85aa421a98b4c8a0 (diff) | |
| download | ODR-SourceCompanion-9d6ddfcb36115084237bac3a3f1c49ddf0da765f.tar.gz ODR-SourceCompanion-9d6ddfcb36115084237bac3a3f1c49ddf0da765f.tar.bz2 ODR-SourceCompanion-9d6ddfcb36115084237bac3a3f1c49ddf0da765f.zip | |
Common 6b5db53: Update zmq.hpp, TCPReceiveServer, EDI decoder and output
Diffstat (limited to 'lib/edioutput/TagPacket.h')
| -rw-r--r-- | lib/edioutput/TagPacket.h | 61 | 
1 files changed, 61 insertions, 0 deletions
| diff --git a/lib/edioutput/TagPacket.h b/lib/edioutput/TagPacket.h new file mode 100644 index 0000000..b53b718 --- /dev/null +++ b/lib/edioutput/TagPacket.h @@ -0,0 +1,61 @@ +/* +   Copyright (C) 2020 +   Matthias P. Braendli, matthias.braendli@mpb.li + +    http://www.opendigitalradio.org + +   EDI output. +    This defines a TAG Packet. +   */ +/* +   This file is part of the ODR-mmbTools. + +   This program is free software: you can redistribute it and/or modify +   it under the terms of the GNU General Public License as +   published by the Free Software Foundation, either version 3 of the +   License, or (at your option) any later version. + +   This program is distributed in the hope that it will be useful, +   but WITHOUT ANY WARRANTY; without even the implied warranty of +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +   GNU General Public License for more details. + +   You should have received a copy of the GNU General Public License +   along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#include "config.h" +#include "TagItems.h" +#include <vector> +#include <string> +#include <list> +#include <cstdint> + +namespace edi { + +// A TagPacket is nothing else than a list of tag items, with an +// Assemble function that puts the bytestream together and adds +// padding such that the total length is a multiple of 8 Bytes. +// +// Alternatively, a raw tagpacket can be used instead of the +// items list +// +// ETSI TS 102 821, 5.1 Tag Packet +class TagPacket +{ +    public: +        TagPacket(unsigned int alignment); +        std::vector<uint8_t> Assemble(); + +        std::list<TagItem*> tag_items; + +        std::vector<uint8_t> raw_tagpacket; + +    private: +        unsigned int m_alignment; +}; + +} + | 
