Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace C-style casts with C++ casts #404

Merged
merged 15 commits into from
Feb 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,9 @@ if(CMAKE_COMPILER_IS_GNUCXX)
add_compile_options(-fvisibility=hidden)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility-inlines-hidden")

# enable C-style cast warnings in C++
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wold-style-cast")

#disable gcc caller-saves flag for O2-O3 optimizations
#workaround fix for gcc 9.3+
if(CMAKE_BUILD_TYPE STREQUAL "Release" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
Expand Down
2 changes: 1 addition & 1 deletion SoapyLMS7/Settings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -500,7 +500,7 @@ void SoapyLMS7::setSampleRate(const int direction, const size_t channel, const d
throw std::runtime_error("SoapyLMS7::setSampleRate() failed with message " + std::string{ e.what() });
}

sampleRate[bool(direction)] = rate;
sampleRate[static_cast<bool>(direction)] = rate;
return;
}

Expand Down
40 changes: 20 additions & 20 deletions amarisoft-plugin/trx_limesuite.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -149,10 +149,10 @@ static_assert(sizeof(txGainTable) / sizeof(TxGainRow) == 51, "missing tx gains r

static inline int64_t ts_to_time(int64_t fs, int64_t ts)
{
int n, r;
int64_t n, r;
n = (ts / fs);
r = (ts % fs);
return (int64_t)n * 1000000 + (((int64_t)r * 1000000) / fs);
return n * 1000000 + (r * 1000000 / fs);
}

struct PortChPair {
Expand Down Expand Up @@ -297,7 +297,7 @@ static bool OnStreamStatusChange(bool isTx, const SDRDevice::StreamStats* s, voi
static TRXStatistics trxstats;
static int trx_lms7002m_get_stats(TRXState* s, TRXStatistics* m)
{
LimeState* lime = (LimeState*)s->opaque;
LimeState* lime = static_cast<LimeState*>(s->opaque);
for (long p = 0; p < lime->deviceCount; ++p)
{
StreamStatus& stats = portStreamStates[p];
Expand All @@ -311,7 +311,7 @@ static int trx_lms7002m_get_stats(TRXState* s, TRXStatistics* m)
/* Callback must allocate info buffer that will be displayed */
static void trx_lms7002m_dump_info(TRXState* s, trx_printf_cb cb, void* opaque)
{
LimeState* lime = (LimeState*)s->opaque;
LimeState* lime = static_cast<LimeState*>(s->opaque);
std::stringstream ss;
for (long p = 0; p < lime->deviceCount; ++p)
{
Expand All @@ -332,7 +332,7 @@ static void trx_lms7002m_dump_info(TRXState* s, trx_printf_cb cb, void* opaque)
// TODO: read FIFO usage
}
const int len = ss.str().length();
char* buffer = (char*)malloc(len + 1);
char* buffer = static_cast<char*>(malloc(len + 1));
cb(buffer, "%s\n", ss.str().c_str());
}

Expand All @@ -351,7 +351,7 @@ static void trx_lms7002m_write(
meta.flush = (md->flags & TRX_WRITE_MD_FLAG_END_OF_BURST);

// samples format conversion is done internally
LimeState* lime = (LimeState*)s->opaque;
LimeState* lime = static_cast<LimeState*>(s->opaque);
int samplesConsumed =
lime->device[port]->StreamTx(lime->chipIndex[port], reinterpret_cast<const lime::complex32f_t**>(samples), count, &meta);
if (logVerbosity == LogLevel::DEBUG && samplesConsumed != count)
Expand All @@ -372,7 +372,7 @@ static void trx_lms7002m_write(
// return number of samples produced
static int trx_lms7002m_read(TRXState* s, trx_timestamp_t* ptimestamp, void** samples, int count, int port, TRXReadMetadata* md)
{
LimeState* lime = (LimeState*)s->opaque;
LimeState* lime = static_cast<LimeState*>(s->opaque);

SDRDevice::StreamMeta meta;
meta.useTimestamp = false;
Expand Down Expand Up @@ -497,7 +497,7 @@ static int trx_lms7002m_get_sample_rate(TRXState* s1, TRXFraction* psample_rate,
// !!! sometimes trx_lms7002m_write gets calls with samples count more than returned here
static int trx_lms7002m_get_tx_samples_per_packet_func(TRXState* s1)
{
LimeState* lime = (LimeState*)s1->opaque;
LimeState* lime = static_cast<LimeState*>(s1->opaque);
int txExpectedSamples = lime->samplesInPacket[0];
if (lime->streamCfg[0].extraConfig.txSamplesInPacket > 0)
{
Expand All @@ -509,7 +509,7 @@ static int trx_lms7002m_get_tx_samples_per_packet_func(TRXState* s1)

static int trx_lms7002m_get_abs_rx_power_func(TRXState* s1, float* presult, int channel_num)
{
LimeState* s = (LimeState*)s1->opaque;
LimeState* s = static_cast<LimeState*>(s1->opaque);
const PortChPair& pair = gMapTxChannelToPortCh[channel_num];
if (s->rxPowerAvailable[pair.port][pair.ch])
{
Expand All @@ -522,7 +522,7 @@ static int trx_lms7002m_get_abs_rx_power_func(TRXState* s1, float* presult, int

static int trx_lms7002m_get_abs_tx_power_func(TRXState* s1, float* presult, int channel_num)
{
LimeState* s = (LimeState*)s1->opaque;
LimeState* s = static_cast<LimeState*>(s1->opaque);
const PortChPair& pair = gMapTxChannelToPortCh[channel_num];
if (s->txPowerAvailable[pair.port][pair.ch])
{
Expand All @@ -537,9 +537,9 @@ static int trx_lms7002m_get_abs_tx_power_func(TRXState* s1, float* presult, int
//max gain ~70-76 (higher will probably degrade signal quality to much)
static void trx_lms7002m_set_tx_gain_func(TRXState* s1, double gain, int channel_num)
{
LimeState* lime = (LimeState*)s1->opaque;
LimeState* lime = static_cast<LimeState*>(s1->opaque);
int row = gain;
if (row < 0 || row >= (int)(sizeof(txGainTable) / sizeof(TxGainRow)))
if (row < 0 || row >= static_cast<int>(sizeof(txGainTable) / sizeof(TxGainRow)))
return;

std::lock_guard<std::mutex> lk(gainsMutex);
Expand All @@ -560,9 +560,9 @@ static void trx_lms7002m_set_tx_gain_func(TRXState* s1, double gain, int channel

static void trx_lms7002m_set_rx_gain_func(TRXState* s1, double gain, int channel_num)
{
LimeState* lime = (LimeState*)s1->opaque;
LimeState* lime = static_cast<LimeState*>(s1->opaque);
int row = gain;
if (row < 0 || row >= (int)(sizeof(rxGainTable) / sizeof(RxGainRow)))
if (row < 0 || row >= static_cast<int>(sizeof(rxGainTable) / sizeof(RxGainRow)))
return;

std::lock_guard<std::mutex> lk(gainsMutex);
Expand All @@ -583,7 +583,7 @@ static void trx_lms7002m_set_rx_gain_func(TRXState* s1, double gain, int channel

static int trx_lms7002m_start(TRXState* s1, const TRXDriverParams* hostState)
{
LimeState* lime = (LimeState*)s1->opaque;
LimeState* lime = static_cast<LimeState*>(s1->opaque);

try
{
Expand All @@ -598,7 +598,7 @@ static int trx_lms7002m_start(TRXState* s1, const TRXDriverParams* hostState)
lime->tx_channel_count[p] = hostState->tx_port_channel_count[p];
lime->rx_channel_count[p] = hostState->rx_port_channel_count[p];

const double samplingRate = (float)hostState->sample_rate[p].num / hostState->sample_rate[p].den;
const double samplingRate = static_cast<float>(hostState->sample_rate[p].num) / hostState->sample_rate[p].den;
config.channel[0].rx.sampleRate = samplingRate;
config.channel[0].tx.sampleRate = samplingRate;
config.channel[0].rx.oversample = lime->rxOversample[p];
Expand Down Expand Up @@ -649,7 +649,7 @@ static int trx_lms7002m_start(TRXState* s1, const TRXDriverParams* hostState)
}
else
sprintf(loFreqStr, "LO: %.3f MHz", freq / 1.0e6);
gMapRxChannelToPortCh[rxChannelOffset + ch] = { (uint8_t)p, (uint8_t)ch };
gMapRxChannelToPortCh[rxChannelOffset + ch] = { static_cast<uint8_t>(p), static_cast<uint8_t>(ch) };
Log(LogLevel::INFO,
"Port[%i] Rx CH[%i] %s, SR: %.3f MHz BW: %.3f MHz | chipIndex: %i, path: %i('%s')\n",
p,
Expand Down Expand Up @@ -696,7 +696,7 @@ static int trx_lms7002m_start(TRXState* s1, const TRXDriverParams* hostState)
}
else
sprintf(loFreqStr, "LO: %.3f MHz", freq / 1.0e6);
gMapTxChannelToPortCh[txChannelOffset + ch] = { (uint8_t)p, (uint8_t)ch };
gMapTxChannelToPortCh[txChannelOffset + ch] = { static_cast<uint8_t>(p), static_cast<uint8_t>(ch) };
Log(LogLevel::INFO,
"Port[%i] Tx CH[%i] %s, SR: %.3f MHz BW: %.3f MHz | chipIndex: %i, path: %i('%s')\n",
p,
Expand Down Expand Up @@ -790,7 +790,7 @@ static int trx_lms7002m_start(TRXState* s1, const TRXDriverParams* hostState)
}

stream.statusCallback = OnStreamStatusChange;
stream.userData = (void*)&portStreamStates[p];
stream.userData = static_cast<void*>(&portStreamStates[p]);
stream.hintSampleRate = samplingRate;

stream.extraConfig = lime->streamCfg[p].extraConfig;
Expand Down Expand Up @@ -830,7 +830,7 @@ static int trx_lms7002m_start(TRXState* s1, const TRXDriverParams* hostState)

static void trx_lms7002m_end(TRXState* s1)
{
LimeState* lime = (LimeState*)s1->opaque;
LimeState* lime = static_cast<LimeState*>(s1->opaque);
for (int p = 0; p < lime->deviceCount; ++p)
{
SDRDevice* portDevice = lime->device[p];
Expand Down
64 changes: 32 additions & 32 deletions src/ADF4002/ADF4002.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ int ADF4002::UploadConfig()

std::vector<uint32_t> dataWr;
for (int i = 0; i < 12; i += 3)
dataWr.push_back((uint32_t)data[i] << 16 | (uint32_t)data[i + 1] << 8 | data[i + 2]);
dataWr.push_back(static_cast<uint32_t>(data[i]) << 16 | static_cast<uint32_t>(data[i + 1]) << 8 | data[i + 2]);

// ADF4002 needs to be writen 4 values of 24 bits
mComms->SPI(dataWr.data(), nullptr, 4);
Expand Down Expand Up @@ -95,7 +95,7 @@ void ADF4002::MakeData()
m_registers[0x00] = 0x00;
//R Value LSB
itmp = txtRCnt;
btmp = (char)itmp;
btmp = static_cast<char>(itmp);
btmp = btmp << 2;
m_registers[0x00] |= btmp;
//Addr
Expand All @@ -106,20 +106,20 @@ void ADF4002::MakeData()
//======= register addr 0x01 =======
m_registers[0x01] = 0x00;
//R Value MSB
btmp = (char)(itmp >> 6);
btmp = static_cast<char>((itmp >> 6));
btmp = btmp << 0;
m_registers[0x01] |= btmp;

//======= register addr 0x02 =======
m_registers[0x02] = 0x00;
//Anti-Backlash
btmp = (char)cmbABW;
btmp = static_cast<char>(cmbABW);
if (btmp > 0)
btmp++;
btmp = btmp << 0;
m_registers[0x02] |= btmp;
//Lock Detact Precision
btmp = (char)cmbLDP;
btmp = static_cast<char>(cmbLDP);
btmp = btmp << 4;
m_registers[0x02] |= btmp;

Expand All @@ -134,19 +134,19 @@ void ADF4002::MakeData()
m_registers[0x04] = 0x00;
//N Value LSB
itmp = txtNCnt;
btmp = (char)itmp;
btmp = static_cast<char>(itmp);
btmp = btmp << 0;
m_registers[0x04] |= btmp;

//======= register addr 0x05 =======
m_registers[0x05] = 0x00;
//N Value MSB
itmp = txtNCnt;
btmp = (char)(itmp >> 8);
btmp = static_cast<char>((itmp >> 8));
btmp = btmp << 0;
m_registers[0x05] |= btmp;
//CP Gain
btmp = (char)cmbCPG;
btmp = static_cast<char>(cmbCPG);
btmp = btmp << 5;
m_registers[0x05] |= btmp;

Expand All @@ -157,55 +157,55 @@ void ADF4002::MakeData()
btmp = btmp << 0;
m_registers[0x06] |= btmp;
//Counter Reset
btmp = (char)rgrCR_f;
btmp = static_cast<char>(rgrCR_f);
btmp = btmp << 2;
m_registers[0x06] |= btmp;
//PD 1
btmp = (char)rgrPD1_f;
btmp = static_cast<char>(rgrPD1_f);
btmp = btmp << 3;
m_registers[0x06] |= btmp;
//Muxout Control
btmp = (char)cmbMOC_f;
btmp = static_cast<char>(cmbMOC_f);
btmp = btmp << 4;
m_registers[0x06] |= btmp;
//PD Polarity
btmp = (char)rgrPDP_f;
btmp = static_cast<char>(rgrPDP_f);
btmp = btmp << 7;
m_registers[0x06] |= btmp;

//======= register addr 0x07 =======
m_registers[0x07] = 0x00;
//CP State
btmp = (char)rgrCPS_f;
btmp = static_cast<char>(rgrCPS_f);
btmp = btmp << 0;
m_registers[0x07] |= btmp;
//Fastlock
btmp = (char)cmbFL_f;
btmp = static_cast<char>(cmbFL_f);
if (btmp > 0)
btmp++;
btmp = btmp << 1;
m_registers[0x07] |= btmp;
//Timer Counter
btmp = (char)cmbTC_f;
btmp = static_cast<char>(cmbTC_f);
btmp = btmp << 3;
m_registers[0x07] |= btmp;
//Current Setting 1 MSB
btmp = (char)cmbCS1_f;
btmp = static_cast<char>(cmbCS1_f);
btmp = btmp << 7;
m_registers[0x07] |= btmp;

//======= register addr 0x08 =======
m_registers[0x08] = 0x00;
//Current Setting 1 LSB
btmp = (char)cmbCS1_f;
btmp = static_cast<char>(cmbCS1_f);
btmp = btmp >> 1;
m_registers[0x08] |= btmp;
//Current Setting 2
btmp = (char)cmbCS2_f;
btmp = static_cast<char>(cmbCS2_f);
btmp = btmp << 2;
m_registers[0x08] |= btmp;
//PD 2
btmp = (char)rgrPD2_f;
btmp = static_cast<char>(rgrPD2_f);
btmp = btmp << 5;
m_registers[0x08] |= btmp;

Expand All @@ -216,55 +216,55 @@ void ADF4002::MakeData()
btmp = btmp << 0;
m_registers[0x09] |= btmp;
//Counter Reset
btmp = (char)rgrCR_i;
btmp = static_cast<char>(rgrCR_i);
btmp = btmp << 2;
m_registers[0x09] |= btmp;
//PD 1
btmp = (char)rgrPD1_i;
btmp = static_cast<char>(rgrPD1_i);
btmp = btmp << 3;
m_registers[0x09] |= btmp;
//Muxout Control
btmp = (char)cmbMOC_i;
btmp = static_cast<char>(cmbMOC_i);
btmp = btmp << 4;
m_registers[0x09] |= btmp;
//PD Polarity
btmp = (char)rgrPDP_i;
btmp = static_cast<char>(rgrPDP_i);
btmp = btmp << 7;
m_registers[0x09] |= btmp;

//======= register addr 0x0A =======
m_registers[0x0A] = 0x00;
//CP State
btmp = (char)rgrCPS_i;
btmp = static_cast<char>(rgrCPS_i);
btmp = btmp << 0;
m_registers[0x0A] |= btmp;
//Fastlock
btmp = (char)cmbFL_i;
btmp = static_cast<char>(cmbFL_i);
if (btmp > 0)
btmp++;
btmp = btmp << 1;
m_registers[0x0A] |= btmp;
//Timer Counter
btmp = (char)cmbTC_i;
btmp = static_cast<char>(cmbTC_i);
btmp = btmp << 3;
m_registers[0x0A] |= btmp;
//Current Setting 1 MSB
btmp = (char)cmbCS1_i;
btmp = static_cast<char>(cmbCS1_i);
btmp = btmp << 7;
m_registers[0x0A] |= btmp;

//======= register addr 0x0B =======
m_registers[0x0B] = 0x00;
//Current Setting 1 LSB
btmp = (char)cmbCS1_i;
btmp = static_cast<char>(cmbCS1_i);
btmp = btmp >> 1;
m_registers[0x0B] |= btmp;
//Current Setting 2
btmp = (char)cmbCS2_i;
btmp = static_cast<char>(cmbCS2_i);
btmp = btmp << 2;
m_registers[0x0B] |= btmp;
//PD 2
btmp = (char)rgrPD2_i;
btmp = static_cast<char>(rgrPD2_i);
btmp = btmp << 5;
m_registers[0x0B] |= btmp;

Expand Down Expand Up @@ -311,8 +311,8 @@ void ADF4002::CalculateRN()
};

Fcomp = (x + y) / 1000000.0;
int R = (int)((txtFref / Fcomp) + 0.5);
int N = (int)((txtFvco / Fcomp) + 0.5);
int R = std::round(txtFref / Fcomp);
int N = std::round(txtFvco / Fcomp);

txtRCnt = R;
txtNCnt = N;
Expand Down
Loading
Loading