diff options
Diffstat (limited to 'lib/hackrf/hackrf_source_c.h')
-rw-r--r-- | lib/hackrf/hackrf_source_c.h | 40 |
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 */ |