diff options
Diffstat (limited to 'gr-qtgui/lib/eye_sink_f_impl.cc')
-rw-r--r-- | gr-qtgui/lib/eye_sink_f_impl.cc | 46 |
1 files changed, 9 insertions, 37 deletions
diff --git a/gr-qtgui/lib/eye_sink_f_impl.cc b/gr-qtgui/lib/eye_sink_f_impl.cc index f96a5734f9..16b4c39c63 100644 --- a/gr-qtgui/lib/eye_sink_f_impl.cc +++ b/gr-qtgui/lib/eye_sink_f_impl.cc @@ -50,29 +50,14 @@ eye_sink_f_impl::eye_sink_f_impl(int size, if (nconnections > 24) throw std::runtime_error("eye_sink_f only supports up to 24 inputs"); - // Required now for Qt; argc must be greater than 0 and argv - // must have at least one valid character. Must be valid through - // life of the qApplication: - // http://harmattan-dev.nokia.com/docs/library/html/qt4/qapplication.html - d_argc = 1; - d_argv = new char; - d_argv[0] = '\0'; - - d_main_gui = NULL; - // setup PDU handling input port message_port_register_in(pmt::mp("in")); set_msg_handler(pmt::mp("in"), [this](pmt::pmt_t msg) { this->handle_pdus(msg); }); // +1 for the PDU buffer for (unsigned int n = 0; n < d_nconnections + 1; n++) { - d_buffers.push_back( - (double*)volk_malloc(d_buffer_size * sizeof(double), volk_get_alignment())); - memset(d_buffers[n], 0, d_buffer_size * sizeof(double)); - - d_fbuffers.push_back( - (float*)volk_malloc(d_buffer_size * sizeof(float), volk_get_alignment())); - memset(d_fbuffers[n], 0, d_buffer_size * sizeof(float)); + d_buffers.emplace_back(d_buffer_size); + d_fbuffers.emplace_back(d_buffer_size); } // Set alignment properties for VOLK @@ -94,14 +79,6 @@ eye_sink_f_impl::~eye_sink_f_impl() { if (!d_main_gui->isClosed()) d_main_gui->close(); - - // d_main_gui is a qwidget destroyed with its parent - for (unsigned int n = 0; n < d_nconnections + 1; n++) { - volk_free(d_buffers[n]); - volk_free(d_fbuffers[n]); - } - - delete d_argv; } bool eye_sink_f_impl::check_topology(int ninputs, int noutputs) @@ -284,15 +261,10 @@ void eye_sink_f_impl::set_nsamps(const int newsize) // Resize buffers and replace data for (unsigned int n = 0; n < d_nconnections + 1; n++) { - volk_free(d_buffers[n]); - d_buffers[n] = (double*)volk_malloc(d_buffer_size * sizeof(double), - volk_get_alignment()); - memset(d_buffers[n], 0, d_buffer_size * sizeof(double)); - - volk_free(d_fbuffers[n]); - d_fbuffers[n] = - (float*)volk_malloc(d_buffer_size * sizeof(float), volk_get_alignment()); - memset(d_fbuffers[n], 0, d_buffer_size * sizeof(float)); + d_buffers[n].clear(); + d_buffers[n].resize(d_buffer_size); + d_fbuffers[n].clear(); + d_fbuffers[n].resize(d_buffer_size); } // If delay was set beyond the new boundary, pull it back. @@ -380,7 +352,7 @@ void eye_sink_f_impl::_reset() // represents data that might have to be plotted again if a // trigger occurs and we have a trigger delay set. The tail // section is between (d_end-d_trigger_delay) and d_end. - memmove(d_fbuffers[n], + memmove(d_fbuffers[n].data(), &d_fbuffers[n][d_end - d_trigger_delay], d_trigger_delay * sizeof(float)); @@ -573,7 +545,7 @@ int eye_sink_f_impl::work(int noutput_items, if ((d_triggered) && (d_index == d_end)) { // Copy data to be plotted to start of buffers. for (n = 0; n < d_nconnections; n++) { - volk_32f_convert_64f(d_buffers[n], &d_fbuffers[n][d_start], d_size); + volk_32f_convert_64f(d_buffers[n].data(), &d_fbuffers[n][d_start], d_size); } // Plot if we are able to update @@ -629,7 +601,7 @@ void eye_sink_f_impl::handle_pdus(pmt::pmt_t msg) set_nsamps(len); - volk_32f_convert_64f(d_buffers[d_nconnections], in, len); + volk_32f_convert_64f(d_buffers[d_nconnections].data(), in, len); std::vector<std::vector<gr::tag_t>> t; d_qApplication->postEvent(d_main_gui, new TimeUpdateEvent(d_buffers, len, t)); |