diff --git a/docs/changelog.md b/docs/changelog.md index 5a962c839..9094120ed 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -48,6 +48,9 @@ SPDX-FileCopyrightText: 2011-2020 Carles Fernandez-Prades = 8) { @@ -373,6 +380,25 @@ void Gr_Complex_Ip_Packet_Source::demux_samples(const gr_vector_void_star &outpu } } break; + case 3: // interleaved float samples + for (auto &output_item : output_items) + { + float real; + float imag; + memcpy(&real, &fifo_buff[fifo_read_ptr], sizeof(real)); + fifo_read_ptr += 4; // Four bytes in float + memcpy(&imag, &fifo_buff[fifo_read_ptr], sizeof(imag)); + fifo_read_ptr += 4; // Four bytes in float + if (d_IQ_swap) + { + static_cast(output_item)[n] = gr_complex(real, imag); + } + else + { + static_cast(output_item)[n] = gr_complex(imag, real); + } + } + break; default: std::cout << "Unknown wire sample type\n"; exit(0); @@ -407,6 +433,7 @@ int Gr_Complex_Ip_Packet_Source::work(int noutput_items, { case 1: // complex byte samples case 2: // complex 4 bits samples + case 3: // complex float samples bytes_requested = noutput_items * d_bytes_per_sample; if (bytes_requested < fifo_items) {