aboutsummaryrefslogtreecommitdiffstats
path: root/AlignSample.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'AlignSample.cpp')
-rw-r--r--AlignSample.cpp25
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);