aboutsummaryrefslogtreecommitdiffstats
path: root/lib/hackrf/hackrf_source_c.cc
diff options
context:
space:
mode:
Diffstat (limited to 'lib/hackrf/hackrf_source_c.cc')
-rw-r--r--lib/hackrf/hackrf_source_c.cc27
1 files changed, 17 insertions, 10 deletions
diff --git a/lib/hackrf/hackrf_source_c.cc b/lib/hackrf/hackrf_source_c.cc
index 4211603..30b63c7 100644
--- a/lib/hackrf/hackrf_source_c.cc
+++ b/lib/hackrf/hackrf_source_c.cc
@@ -49,17 +49,18 @@ using namespace boost::assign;
#define BYTES_PER_SAMPLE 2 /* HackRF device produces 8 bit unsigned IQ data */
-#define HACKRF_FORMAT_ERROR(ret) \
- boost::str( boost::format("(%d) %s") \
- % ret % hackrf_error_name((enum hackrf_error)ret) ) \
+#define HACKRF_FORMAT_ERROR(ret, msg) \
+ boost::str( boost::format(msg " (%1%) %2%") \
+ % ret % hackrf_error_name((enum hackrf_error)ret) )
#define HACKRF_THROW_ON_ERROR(ret, msg) \
- if ( ret != HACKRF_SUCCESS ) \
- throw std::runtime_error( boost::str( boost::format(msg " (%d) %s") \
- % ret % hackrf_error_name((enum hackrf_error)ret) ) );
+ if ( ret != HACKRF_SUCCESS ) \
+ { \
+ throw std::runtime_error( HACKRF_FORMAT_ERROR(ret, msg) ); \
+ }
#define HACKRF_FUNC_STR(func, arg) \
- boost::str(boost::format(func "(%d)") % arg) + " has failed"
+ boost::str(boost::format(func "(%1%)") % arg) + " has failed"
int hackrf_source_c::_usage = 0;
boost::mutex hackrf_source_c::_usage_mutex;
@@ -214,7 +215,7 @@ hackrf_source_c::hackrf_source_c (const std::string &args)
ret = hackrf_set_antenna_enable(_dev, static_cast<uint8_t>(bias));
if ( ret != HACKRF_SUCCESS )
{
- std::cerr << "Failed to apply antenna bias voltage state: " << bias << " " << HACKRF_FORMAT_ERROR(ret) << std::endl;
+ std::cerr << "Failed to apply antenna bias voltage state: " << bias << HACKRF_FORMAT_ERROR(ret, "") << std::endl;
}
else
{
@@ -243,9 +244,15 @@ hackrf_source_c::~hackrf_source_c ()
if (_dev) {
// _thread.join();
int ret = hackrf_stop_rx( _dev );
- HACKRF_THROW_ON_ERROR(ret, "Failed to stop RX streaming")
+ if ( ret != HACKRF_SUCCESS )
+ {
+ std::cerr << HACKRF_FORMAT_ERROR(ret, "Failed to stop RX streaming") << std::endl;
+ }
ret = hackrf_close( _dev );
- HACKRF_THROW_ON_ERROR(ret, "Failed to close HackRF")
+ if ( ret != HACKRF_SUCCESS )
+ {
+ std::cerr << HACKRF_FORMAT_ERROR(ret, "Failed to close HackRF") << std::endl;
+ }
_dev = NULL;
{