summaryrefslogtreecommitdiff
path: root/gr-blocks/lib/delay_impl.cc
diff options
context:
space:
mode:
authorMarcus Müller <mmueller@gnuradio.org>2019-08-07 21:45:12 +0200
committerMarcus Müller <marcus@hostalia.de>2019-08-09 23:04:28 +0200
commitf7bbf2c1d8d780294f3e016aff239ca35eb6516e (patch)
treee09ab6112e02b2215b2d59ac24d3d6ea2edac745 /gr-blocks/lib/delay_impl.cc
parent78431dc6941e3acc67c858277dfe4a0ed583643c (diff)
Tree: clang-format without the include sorting
Diffstat (limited to 'gr-blocks/lib/delay_impl.cc')
-rw-r--r--gr-blocks/lib/delay_impl.cc146
1 files changed, 69 insertions, 77 deletions
diff --git a/gr-blocks/lib/delay_impl.cc b/gr-blocks/lib/delay_impl.cc
index 0ebe124b09..d064ccf86d 100644
--- a/gr-blocks/lib/delay_impl.cc
+++ b/gr-blocks/lib/delay_impl.cc
@@ -29,117 +29,109 @@
#include <string.h>
namespace gr {
- namespace blocks {
+namespace blocks {
- delay::sptr
- delay::make(size_t itemsize, int delay)
- {
- return gnuradio::get_initial_sptr
- (new delay_impl(itemsize, delay));
- }
+delay::sptr delay::make(size_t itemsize, int delay)
+{
+ return gnuradio::get_initial_sptr(new delay_impl(itemsize, delay));
+}
- delay_impl::delay_impl(size_t itemsize, int delay)
- : block("delay",
- io_signature::make(1, -1, itemsize),
- io_signature::make(1, -1, itemsize)),
- d_itemsize(itemsize)
- {
- if(delay < 0) {
+delay_impl::delay_impl(size_t itemsize, int delay)
+ : block("delay",
+ io_signature::make(1, -1, itemsize),
+ io_signature::make(1, -1, itemsize)),
+ d_itemsize(itemsize)
+{
+ if (delay < 0) {
throw std::runtime_error("delay: Cannot initialize block with a delay < 0.");
- }
- set_dly(delay);
- d_delta = 0;
}
+ set_dly(delay);
+ d_delta = 0;
+}
- delay_impl::~delay_impl()
- {
- }
+delay_impl::~delay_impl() {}
- void
- delay_impl::forecast(int noutput_items,
- gr_vector_int &ninput_items_required)
- {
- // make sure all inputs have noutput_items available
- unsigned ninputs = ninput_items_required.size();
- for(unsigned i = 0; i < ninputs; i++)
+void delay_impl::forecast(int noutput_items, gr_vector_int& ninput_items_required)
+{
+ // make sure all inputs have noutput_items available
+ unsigned ninputs = ninput_items_required.size();
+ for (unsigned i = 0; i < ninputs; i++)
ninput_items_required[i] = noutput_items;
- }
+}
- void
- delay_impl::set_dly(int d)
- {
- // only set a new delta if there is a change in the delay; this
- // protects from quickly-repeated calls to this function that
- // would end with d_delta=0.
- if(d != dly()) {
+void delay_impl::set_dly(int d)
+{
+ // only set a new delta if there is a change in the delay; this
+ // protects from quickly-repeated calls to this function that
+ // would end with d_delta=0.
+ if (d != dly()) {
gr::thread::scoped_lock l(d_mutex_delay);
int old = dly();
- set_history(d+1);
- declare_sample_delay(history()-1);
+ set_history(d + 1);
+ declare_sample_delay(history() - 1);
d_delta += dly() - old;
- }
}
+}
- int
- delay_impl::general_work(int noutput_items,
- gr_vector_int &ninput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items)
- {
- gr::thread::scoped_lock l(d_mutex_delay);
- assert(input_items.size() == output_items.size());
+int delay_impl::general_work(int noutput_items,
+ gr_vector_int& ninput_items,
+ gr_vector_const_void_star& input_items,
+ gr_vector_void_star& output_items)
+{
+ gr::thread::scoped_lock l(d_mutex_delay);
+ assert(input_items.size() == output_items.size());
- const char *iptr;
- char *optr;
- int cons, ret;
+ const char* iptr;
+ char* optr;
+ int cons, ret;
- // No change in delay; just memcpy ins to outs
- if(d_delta == 0) {
- for(size_t i = 0; i < input_items.size(); i++) {
- iptr = (const char *)input_items[i];
- optr = (char *)output_items[i];
- std::memcpy(optr, iptr, noutput_items*d_itemsize);
+ // No change in delay; just memcpy ins to outs
+ if (d_delta == 0) {
+ for (size_t i = 0; i < input_items.size(); i++) {
+ iptr = (const char*)input_items[i];
+ optr = (char*)output_items[i];
+ std::memcpy(optr, iptr, noutput_items * d_itemsize);
}
cons = noutput_items;
ret = noutput_items;
- }
+ }
- // Skip over d_delta items on the input
- else if(d_delta < 0) {
+ // Skip over d_delta items on the input
+ else if (d_delta < 0) {
int n_to_copy, n_adj;
int delta = -d_delta;
- n_to_copy = std::max(0, noutput_items-delta);
+ n_to_copy = std::max(0, noutput_items - delta);
n_adj = std::min(delta, noutput_items);
- for(size_t i = 0; i < input_items.size(); i++) {
- iptr = (const char *) input_items[i];
- optr = (char *) output_items[i];
- std::memcpy(optr, iptr+delta*d_itemsize, n_to_copy*d_itemsize);
+ for (size_t i = 0; i < input_items.size(); i++) {
+ iptr = (const char*)input_items[i];
+ optr = (char*)output_items[i];
+ std::memcpy(optr, iptr + delta * d_itemsize, n_to_copy * d_itemsize);
}
cons = noutput_items;
ret = n_to_copy;
delta -= n_adj;
d_delta = -delta;
- }
+ }
- //produce but not consume (inserts zeros)
- else { // d_delta > 0
+ // produce but not consume (inserts zeros)
+ else { // d_delta > 0
int n_from_input, n_padding;
- n_from_input = std::max(0, noutput_items-d_delta);
+ n_from_input = std::max(0, noutput_items - d_delta);
n_padding = std::min(d_delta, noutput_items);
- for(size_t i = 0; i < input_items.size(); i++) {
- iptr = (const char *) input_items[i];
- optr = (char *) output_items[i];
- std::memset(optr, 0, n_padding*d_itemsize);
- std::memcpy(optr, iptr, n_from_input*d_itemsize);
+ for (size_t i = 0; i < input_items.size(); i++) {
+ iptr = (const char*)input_items[i];
+ optr = (char*)output_items[i];
+ std::memset(optr, 0, n_padding * d_itemsize);
+ std::memcpy(optr, iptr, n_from_input * d_itemsize);
}
cons = n_from_input;
ret = noutput_items;
d_delta -= n_padding;
- }
-
- consume_each(cons);
- return ret;
}
- } /* namespace blocks */
+ consume_each(cons);
+ return ret;
+}
+
+} /* namespace blocks */
} /* namespace gr */