#include <gr_io_signature.h>
#include <iostream>
-#define USRP2_SOURCE_32FC_DEBUG 0
-
usrp2_source_32fc_sptr
usrp2_make_source_32fc(const std::string &ifc, const std::string &mac_addr)
throw (std::runtime_error)
{
- return usrp2_source_32fc_sptr(new usrp2_source_32fc(ifc, mac_addr));
+ return gnuradio::get_initial_sptr(new usrp2_source_32fc(ifc, mac_addr));
}
usrp2_source_32fc::usrp2_source_32fc(const std::string &ifc, const std::string &mac_addr)
usrp2_source_32fc::~usrp2_source_32fc()
{
+ // NOP
}
int
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items)
{
- if (USRP2_SOURCE_32FC_DEBUG)
- printf("work: noutput_items=%i\n", noutput_items);
-
gr_complex *out = (gr_complex *)output_items[0];
rx_32fc_handler::sptr handler = rx_32fc_handler::make(noutput_items, USRP2_MIN_RX_SAMPLES, out);
- bool ok = d_u2->rx_samples(0, handler.get());
- if (!ok)
+ bool ok = d_u2->rx_samples(0, handler.get()); // FIXME: channel number instead of 0
+ if (!ok){
std::cerr << "usrp2::rx_samples() failed" << std::endl;
+ return -1; // say we're done
+ }
- int j = handler->nsamples();
- int f = handler->nframes();
-
- if (USRP2_SOURCE_32FC_DEBUG)
- printf("work: produced=%i items from %i frames\n\n", j, f);
-
- return j;
+ return handler->nsamples();
}