diff options
author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2016-09-02 17:43:32 +0200 |
---|---|---|
committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2016-09-07 21:20:24 +0200 |
commit | 4809f3c042a99a639542b1e6cd22657871113260 (patch) | |
tree | dc0ec0f256eaceb79d63daa09591d4a6ef08cb73 /watermarkdecoder.hpp | |
parent | 5542c8ecff635f9abc05b6b2ff255db02c2c9c46 (diff) | |
download | etisnoop-4809f3c042a99a639542b1e6cd22657871113260.tar.gz etisnoop-4809f3c042a99a639542b1e6cd22657871113260.tar.bz2 etisnoop-4809f3c042a99a639542b1e6cd22657871113260.zip |
Move all sources to src/
Diffstat (limited to 'watermarkdecoder.hpp')
-rw-r--r-- | watermarkdecoder.hpp | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/watermarkdecoder.hpp b/watermarkdecoder.hpp deleted file mode 100644 index 57196e1..0000000 --- a/watermarkdecoder.hpp +++ /dev/null @@ -1,98 +0,0 @@ -/* - Copyright (C) 2014 CSP Innovazione nelle ICT s.c.a r.l. (http://www.csp.it/) - Copyright (C) 2016 Matthias P. Braendli (http://www.opendigitalradio.org) - Copyright (C) 2015 Data Path - - 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/>. - - Authors: - Sergio Sagliocco <sergio.sagliocco@csp.it> - Matthias P. Braendli <matthias@mpb.li> - / | |- ')|) |-|_ _ (|,_ .| _ ,_ \ - Data Path \(|(||_(|/_| (||_||(a)_||||(|||.(_()|||/ - -*/ - -#pragma once -#include <vector> -#include <sstream> -#include "utils.hpp" - -class WatermarkDecoder -{ - public: - WatermarkDecoder() {} - - void push_confind_bit(bool confind) - { - // The ConfInd of FIG 0/10 contains the CRC-DABMUX and ODR-DabMux watermark - m_confind_bits.push_back(confind); - } - - std::string calculate_watermark() - { - // First try to find the 0x55 0x55 sync in the waternark data - size_t bit_ix; - int alternance_count = 0; - bool last_bit = 1; - for (bit_ix = 0; bit_ix < m_confind_bits.size(); bit_ix++) { - if (alternance_count == 16) { - break; - } - else { - if (last_bit != m_confind_bits[bit_ix]) { - last_bit = m_confind_bits[bit_ix]; - alternance_count++; - } - else { - alternance_count = 0; - last_bit = 1; - } - } - - } - - printf("Found SYNC at offset %zu out of %zu\n", bit_ix - alternance_count, m_confind_bits.size()); - - std::stringstream watermark_ss; - - uint8_t b = 0; - size_t i = 0; - while (bit_ix < m_confind_bits.size()) { - - b |= m_confind_bits[bit_ix] << (7 - i); - - if (i == 7) { - watermark_ss << (char)b; - - b = 0; - i = 0; - } - else { - i++; - } - - bit_ix += 2; - } - - return watermark_ss.str(); - } - - private: - const WatermarkDecoder& operator=(const WatermarkDecoder&) = delete; - WatermarkDecoder(const WatermarkDecoder&) = delete; - - std::vector<bool> m_confind_bits; -}; - |