diff options
Diffstat (limited to 'AlignSample.cpp')
-rw-r--r-- | AlignSample.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/AlignSample.cpp b/AlignSample.cpp index b6afc2a..50b818e 100644 --- a/AlignSample.cpp +++ b/AlignSample.cpp @@ -210,6 +210,31 @@ CorrelationResult AlignSample::crosscorrelate(size_t len) return result; } +std::pair<std::vector<complexf>, std::vector<complexf> > AlignSample::get_samples( + size_t len, size_t rx_delay) +{ + std::pair<std::vector<complexf>, std::vector<complexf> > rval; + + std::lock_guard<std::mutex> lock(m_mutex); + if (align() and + m_rxsamples.size() > len + rx_delay + and m_txsamples.size() > len) { + + rval.first.reserve(len); + rval.second.reserve(len); + + std::copy(m_rxsamples.begin() + rx_delay, + m_rxsamples.begin() + rx_delay + len, + std::back_inserter(rval.first)); + + std::copy(m_txsamples.begin(), + m_txsamples.begin() + len, + std::back_inserter(rval.second)); + } + + return rval; +} + void AlignSample::consume(size_t samples) { std::lock_guard<std::mutex> lock(m_mutex); |