diff --git a/firmware/baseband/proc_ais.cpp b/firmware/baseband/proc_ais.cpp index e3005b93f..72bc5a160 100644 --- a/firmware/baseband/proc_ais.cpp +++ b/firmware/baseband/proc_ais.cpp @@ -42,12 +42,7 @@ void AISProcessor::execute(buffer_c8_t buffer) { */ for(size_t i=0; ifloat is not allowed. - const std::complex sample { - static_cast(decimator_out.p[i].real()), - static_cast(decimator_out.p[i].imag()) - }; - if( mf.execute_once(sample) ) { + if( mf.execute_once(decimator_out.p[i]) ) { clock_recovery(mf.get_output()); } } diff --git a/firmware/baseband/proc_tpms.cpp b/firmware/baseband/proc_tpms.cpp index edabf4681..90f441e99 100644 --- a/firmware/baseband/proc_tpms.cpp +++ b/firmware/baseband/proc_tpms.cpp @@ -42,12 +42,7 @@ void TPMSProcessor::execute(buffer_c8_t buffer) { */ for(size_t i=0; ifloat is not allowed. - const std::complex sample { - static_cast(decimator_out.p[i].real()), - static_cast(decimator_out.p[i].imag()) - }; - if( mf.execute_once(sample) ) { + if( mf.execute_once(decimator_out.p[i]) ) { clock_recovery(mf.get_output()); } } diff --git a/firmware/common/complex.hpp b/firmware/common/complex.hpp index d9ceb1395..b2cfc1dec 100644 --- a/firmware/common/complex.hpp +++ b/firmware/common/complex.hpp @@ -105,6 +105,13 @@ public: return _rep; } + constexpr operator std::complex() const { + return { + static_cast(_v[0]), + static_cast(_v[1]) + }; + } + private: union { int16_t _v[2];