Hi, All,
Do you notice that the return of this function is noutput_items rather
than output_items? In this function , the noutput_items is the number of
the input_items and output_items. In my opinion, the output of this
function should be output_items. After all, what we concern is the
calculation result of the input data rather than the length of the data?
Does anyone thinks so?
Please clarify it for me!
Thanks!
Fangming
int
gr_bytes_to_syms::work (int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items)
{
const unsigned char *in = (unsigned char *) input_items[0];
float *out = (float *) output_items[0];
assert (noutput_items % BITS_PER_BYTE == 0);
for (int i = 0; i < noutput_items / BITS_PER_BYTE; i++){
int x = in[i];
*out++ = (((x >> 7) & 0x1) << 1) - 1;
*out++ = (((x >> 6) & 0x1) << 1) - 1;
*out++ = (((x >> 5) & 0x1) << 1) - 1;
*out++ = (((x >> 4) & 0x1) << 1) - 1;
*out++ = (((x >> 3) & 0x1) << 1) - 1;
*out++ = (((x >> 2) & 0x1) << 1) - 1;
*out++ = (((x >> 1) & 0x1) << 1) - 1;
*out++ = (((x >> 0) & 0x1) << 1) - 1;
}
return noutput_items;
}