diff options
author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2013-11-22 19:12:30 +0100 |
---|---|---|
committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2014-05-20 21:39:36 +0200 |
commit | 05da854addac962e20ff9f1e7bdad3cbacb66905 (patch) | |
tree | 0e135fb84cdba7f8ee02606e09c97de99bb5ef16 /src/dabOutput/edi/AFPacket.h | |
parent | 417cd7e7ce8a75ed79dc01687428d172f590189d (diff) | |
download | dabmux-05da854addac962e20ff9f1e7bdad3cbacb66905.tar.gz dabmux-05da854addac962e20ff9f1e7bdad3cbacb66905.tar.bz2 dabmux-05da854addac962e20ff9f1e7bdad3cbacb66905.zip |
Add AFPacket and a few TagItems
Diffstat (limited to 'src/dabOutput/edi/AFPacket.h')
-rw-r--r-- | src/dabOutput/edi/AFPacket.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/dabOutput/edi/AFPacket.h b/src/dabOutput/edi/AFPacket.h new file mode 100644 index 0000000..c4f33bf --- /dev/null +++ b/src/dabOutput/edi/AFPacket.h @@ -0,0 +1,60 @@ +/* + Copyright (C) 2013 Matthias P. Braendli + http://mpb.li + + EDI output. + This implements an AF Packet as defined ETSI TS 102 821. + Also see ETSI TS 102 693 + + */ +/* + This file is part of CRC-DabMux. + + CRC-DabMux 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. + + CRC-DabMux 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 CRC-DabMux. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef _AFPACKET_H_ +#define _AFPACKET_H_ + +#include "config.h" +#include <vector> +#include <stdint.h> +#define PACKED __attribute__ ((packed)) + +// ETSI TS 102 821, 6.1 AF packet structure +struct AFHeader +{ + uint16_t sync; + uint32_t len; + uint16_t seq; + uint8_t ar_cf:1; + uint8_t ar_maj:3; + uint8_t ar_min:4; + uint8_t pt; +} PACKED; + +class AFPacket +{ + public: + AFPacket(); + + std::vector<uint8_t> Assemble(); + + private: + AFHeader header; + std::vector<uint8_t> packet_; +}; + +#endif + |