aboutsummaryrefslogtreecommitdiffstats
path: root/lib/hackrf/hackrf_source_c.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/hackrf/hackrf_source_c.h')
-rw-r--r--lib/hackrf/hackrf_source_c.h40
1 files changed, 27 insertions, 13 deletions
diff --git a/lib/hackrf/hackrf_source_c.h b/lib/hackrf/hackrf_source_c.h
index 0d38ac0..6ae81d2 100644
--- a/lib/hackrf/hackrf_source_c.h
+++ b/lib/hackrf/hackrf_source_c.h
@@ -1,35 +1,36 @@
/* -*- c++ -*- */
/*
* Copyright 2013 Dimitri Stolnikov <horiz0n@gmx.net>
- * Copyright 2020 Clayton Smith <argilo@gmail.com>
*
- * gr-osmosdr is free software; you can redistribute it and/or modify
+ * This file is part of GNU Radio
+ *
+ * GNU Radio 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, or (at your option)
* any later version.
*
- * gr-osmosdr is distributed in the hope that it will be useful,
+ * GNU Radio 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 gr-osmosdr; see the file COPYING. If not, write to
+ * along with GNU Radio; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street,
* Boston, MA 02110-1301, USA.
*/
#ifndef INCLUDED_HACKRF_SOURCE_C_H
#define INCLUDED_HACKRF_SOURCE_C_H
+#include <gnuradio/thread/thread.h>
#include <gnuradio/sync_block.h>
-#include <condition_variable>
-#include <mutex>
+#include <boost/thread/mutex.hpp>
+#include <boost/thread/condition_variable.hpp>
#include <libhackrf/hackrf.h>
#include "source_iface.h"
-#include "hackrf_common.h"
class hackrf_source_c;
@@ -61,12 +62,12 @@ hackrf_source_c_sptr make_hackrf_source_c (const std::string & args = "");
*/
class hackrf_source_c :
public gr::sync_block,
- public source_iface,
- protected hackrf_common
+ public source_iface
{
private:
// The friend declaration allows make_hackrf_source_c to
// access the private constructor.
+
friend hackrf_source_c_sptr make_hackrf_source_c (const std::string & args);
/*!
@@ -122,22 +123,35 @@ public:
private:
static int _hackrf_rx_callback(hackrf_transfer* transfer);
int hackrf_rx_callback(unsigned char *buf, uint32_t len);
+ static void _hackrf_wait(hackrf_source_c *obj);
+ void hackrf_wait();
+
+ static int _usage;
+ static boost::mutex _usage_mutex;
- std::vector<float> _lut;
+ std::vector<gr_complex> _lut;
- unsigned char **_buf;
+ hackrf_device *_dev;
+ gr::thread::thread _thread;
+ unsigned short **_buf;
unsigned int _buf_num;
unsigned int _buf_len;
unsigned int _buf_head;
unsigned int _buf_used;
- std::mutex _buf_mutex;
- std::condition_variable _buf_cond;
+ boost::mutex _buf_mutex;
+ boost::condition_variable _buf_cond;
unsigned int _buf_offset;
int _samp_avail;
+ double _sample_rate;
+ double _center_freq;
+ double _freq_corr;
+ bool _auto_gain;
+ double _amp_gain;
double _lna_gain;
double _vga_gain;
+ double _bandwidth;
};
#endif /* INCLUDED_HACKRF_SOURCE_C_H */