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.h46
1 files changed, 16 insertions, 30 deletions
diff --git a/lib/hackrf/hackrf_source_c.h b/lib/hackrf/hackrf_source_c.h
index 6ae81d2..55a0fbb 100644
--- a/lib/hackrf/hackrf_source_c.h
+++ b/lib/hackrf/hackrf_source_c.h
@@ -1,41 +1,40 @@
/* -*- c++ -*- */
/*
* Copyright 2013 Dimitri Stolnikov <horiz0n@gmx.net>
+ * Copyright 2020 Clayton Smith <argilo@gmail.com>
*
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
+ * gr-osmosdr 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.
*
- * GNU Radio is distributed in the hope that it will be useful,
+ * gr-osmosdr 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 GNU Radio; see the file COPYING. If not, write to
+ * along with gr-osmosdr; 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 <boost/thread/mutex.hpp>
-#include <boost/thread/condition_variable.hpp>
+#include <condition_variable>
+#include <mutex>
#include <libhackrf/hackrf.h>
#include "source_iface.h"
+#include "hackrf_common.h"
class hackrf_source_c;
/*
- * We use boost::shared_ptr's instead of raw pointers for all access
+ * We use std::shared_ptr's instead of raw pointers for all access
* to gr::blocks (and many other data structures). The shared_ptr gets
* us transparent reference counting, which greatly simplifies storage
* management issues. This is especially helpful in our hybrid
@@ -43,9 +42,9 @@ class hackrf_source_c;
*
* See http://www.boost.org/libs/smart_ptr/smart_ptr.htm
*
- * As a convention, the _sptr suffix indicates a boost::shared_ptr
+ * As a convention, the _sptr suffix indicates a std::shared_ptr
*/
-typedef boost::shared_ptr<hackrf_source_c> hackrf_source_c_sptr;
+typedef std::shared_ptr<hackrf_source_c> hackrf_source_c_sptr;
/*!
* \brief Return a shared_ptr to a new instance of hackrf_source_c.
@@ -62,12 +61,12 @@ hackrf_source_c_sptr make_hackrf_source_c (const std::string & args = "");
*/
class hackrf_source_c :
public gr::sync_block,
- public source_iface
+ public source_iface,
+ protected hackrf_common
{
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);
/*!
@@ -123,35 +122,22 @@ 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<gr_complex> _lut;
+ std::vector<float> _lut;
- hackrf_device *_dev;
- gr::thread::thread _thread;
- unsigned short **_buf;
+ unsigned char **_buf;
unsigned int _buf_num;
unsigned int _buf_len;
unsigned int _buf_head;
unsigned int _buf_used;
- boost::mutex _buf_mutex;
- boost::condition_variable _buf_cond;
+ std::mutex _buf_mutex;
+ std::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 */