-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTimsSDR_Session.cpp
More file actions
37 lines (32 loc) · 899 Bytes
/
TimsSDR_Session.cpp
File metadata and controls
37 lines (32 loc) · 899 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include "SoapyTimsSDR.hpp"
#include <SoapySDR/Logger.hpp>
#include <mutex>
#include <cstddef>
static std::mutex sessionMutex;
static size_t sessionCount = 0;
SoapyTimsSDRSession::SoapyTimsSDRSession(void)
{
std::lock_guard<std::mutex> lock(sessionMutex);
if (sessionCount == 0)
{
int ret = timssdr_init();
if (ret != TIMSSDR_SUCCESS)
{
SoapySDR::logf(SOAPY_SDR_ERROR, "hackrf_init() failed -- %s", timssdr_error_name(timssdr_error(ret)));
}
}
sessionCount++;
}
SoapyTimsSDRSession::~SoapyTimsSDRSession(void)
{
std::lock_guard<std::mutex> lock(sessionMutex);
sessionCount--;
if (sessionCount == 0)
{
int ret = timssdr_exit();
if (ret != TIMSSDR_SUCCESS)
{
SoapySDR::logf(SOAPY_SDR_ERROR, "hackrf_exit() failed -- %s", timssdr_error_name(timssdr_error(ret)));
}
}
}