diff --git a/lib/packet_pad_impl.cc b/lib/packet_pad_impl.cc
index 2d3820a..a499eb3 100644
--- a/lib/packet_pad_impl.cc
+++ b/lib/packet_pad_impl.cc
@@ -14,20 +14,16 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-#include
-#include
+#include "packet_pad_impl.h"
+#include
#include
using namespace gr::foo;
-
-class packet_pad_impl : public packet_pad {
-
#define dout d_debug && std::cout
-public:
-packet_pad_impl(bool debug, unsigned int pad_front, unsigned int pad_tail) : block("packet_pad",
+packet_pad_impl::packet_pad_impl(bool debug, unsigned int pad_front, unsigned int pad_tail) : block("packet_pad",
gr::io_signature::make(1, 1, sizeof(gr_complex)),
gr::io_signature::make(1, 1, sizeof(gr_complex))),
d_debug(debug), d_pad_front(pad_front),
@@ -38,11 +34,12 @@ packet_pad_impl(bool debug, unsigned int pad_front, unsigned int pad_tail) : blo
set_tag_propagation_policy(block::TPP_DONT);
}
-~packet_pad_impl(){
+packet_pad_impl::~packet_pad_impl(){
}
-void insert_sob(uint64_t item) {
- dout << "OFDM PAD: insert sob at: " << item << std::endl;
+void
+packet_pad_impl::add_sob(uint64_t item) {
+ dout << "PACKET PAD: insert sob at: " << item << std::endl;
static const pmt::pmt_t sob_key = pmt::string_to_symbol("tx_sob");
static const pmt::pmt_t value = pmt::PMT_T;
@@ -50,8 +47,9 @@ void insert_sob(uint64_t item) {
add_item_tag(0, item, sob_key, value, srcid);
}
-void insert_eob(uint64_t item) {
- dout << "OFDM PAD: insert eob at: " << item << std::endl;
+void
+packet_pad_impl::add_eob(uint64_t item) {
+ dout << "PACKET PAD: insert eob at: " << item << std::endl;
static const pmt::pmt_t eob_key = pmt::string_to_symbol("tx_eob");
static const pmt::pmt_t value = pmt::PMT_T;
@@ -59,7 +57,8 @@ void insert_eob(uint64_t item) {
add_item_tag(0, item, eob_key, value, srcid);
}
-int general_work (int noutput_items, gr_vector_int& ninput_items,
+int
+packet_pad_impl::general_work (int noutput_items, gr_vector_int& ninput_items,
gr_vector_const_void_star& input_items,
gr_vector_void_star& output_items) {
@@ -77,13 +76,12 @@ int general_work (int noutput_items, gr_vector_int& ninput_items,
const uint64_t nread = this->nitems_read(0);
std::vector tags;
- dout << "OFDM PAD: input size: " << ninput_items[0] << " output size: "
+ dout << "PACKET PAD: input size: " << ninput_items[0] << " output size: "
<< noutput_items << std::endl;
while(written < noutput) {
- // debug
- dout << "OFDM PAD: iteration - consumed: " << consumed <<
+ dout << "PACKET PAD: iteration - consumed: " << consumed <<
" written: " << written << std::endl;
switch(d_state) {
@@ -105,10 +103,10 @@ int general_work (int noutput_items, gr_vector_int& ninput_items,
d_frame_left = pmt::to_uint64(tags[0].value);
d_tail_left = d_pad_tail;
- insert_sob(this->nitems_written(0) + written);
+ add_sob(this->nitems_written(0) + written);
d_state = FRONT;
- dout << "OFDM PAD: new frame - length: " << d_frame_left << std::endl;
+ dout << "PACKET PAD: new frame - length: " << d_frame_left << std::endl;
break;
@@ -123,7 +121,7 @@ int general_work (int noutput_items, gr_vector_int& ninput_items,
break;
}
- dout << "OFDM PAD: pad front" << std::endl;
+ dout << "PACKET PAD: pad front" << std::endl;
memset(out, 0, sizeof(gr_complex));
@@ -140,7 +138,7 @@ int general_work (int noutput_items, gr_vector_int& ninput_items,
goto out;
}
- dout << "OFDM PAD: copy frame" << std::endl;
+ dout << "PACKET PAD: copy frame" << std::endl;
memcpy(out, in, sizeof(gr_complex));
@@ -161,11 +159,11 @@ int general_work (int noutput_items, gr_vector_int& ninput_items,
if(!d_tail_left) {
d_state = IDLE;
- insert_eob(this->nitems_written(0) + written - 1);
+ add_eob(this->nitems_written(0) + written - 1);
goto out;
}
- dout << "OFDM PAD: pad tail" << std::endl;
+ dout << "PACKET PAD: pad tail" << std::endl;
memset(out, 0, sizeof(gr_complex));
@@ -183,13 +181,13 @@ int general_work (int noutput_items, gr_vector_int& ninput_items,
out:
- dout << "OFDM PAD: consumed: " << consumed << " produced: " << written << std::endl;
+ dout << "PACKET PAD: consumed: " << consumed << " produced: " << written << std::endl;
consume(0, consumed);
return written;
}
void
-forecast (int noutput_items, gr_vector_int &ninput_items_required)
+packet_pad_impl::forecast (int noutput_items, gr_vector_int &ninput_items_required)
{
if(d_frame_left) {
@@ -206,21 +204,6 @@ forecast (int noutput_items, gr_vector_int &ninput_items_required)
dout << "d_frame_left " << d_frame_left << std::endl;
}
-
-
-private:
- bool d_debug;
-
- int d_pad_front;
- int d_pad_tail;
-
- int d_front_left;
- int d_tail_left;
- int d_frame_left;
-
- enum {IDLE, FRONT, FRAME, TAIL} d_state;
-};
-
packet_pad::sptr
packet_pad::make(bool debug, unsigned int pad_front, unsigned int pad_tail) {
return gnuradio::get_initial_sptr(new packet_pad_impl(debug, pad_front, pad_tail));
diff --git a/lib/packet_pad_impl.h b/lib/packet_pad_impl.h
new file mode 100644
index 0000000..37c8d92
--- /dev/null
+++ b/lib/packet_pad_impl.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2013 Bastian Bloessl .
+ *
+ * This is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this software; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef INCLUDED_FOO_PACKET_PAD_IMPL_H
+#define INCLUDED_FOO_PACKET_PAD_IMPL_H
+
+#include
+
+namespace gr {
+namespace foo {
+
+ class packet_pad_impl : public packet_pad {
+ private:
+ void add_eob(uint64_t item);
+ void add_sob(uint64_t item);
+
+ bool d_debug;
+
+ int d_pad_front;
+ int d_pad_tail;
+
+ int d_front_left;
+ int d_tail_left;
+ int d_frame_left;
+
+ enum {IDLE, FRONT, FRAME, TAIL} d_state;
+
+
+ public:
+ packet_pad_impl(bool debug, unsigned int pad_front,
+ unsigned int pad_tail);
+
+ ~packet_pad_impl();
+
+ int general_work (int noutput_items,
+ gr_vector_int& ninput_items,
+ gr_vector_const_void_star& input_items,
+ gr_vector_void_star& output_items);
+ void forecast (int noutput_items,
+ gr_vector_int &ninput_items_required);
+ };
+
+} // namespace foo
+} // namespace gr
+
+#endif /* INCLUDED_FOO_BURST_TAGGER_IMPL_H */
+