summaryrefslogtreecommitdiff
path: root/gr-fec/lib/repetition_encoder_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gr-fec/lib/repetition_encoder_impl.cc')
-rw-r--r--gr-fec/lib/repetition_encoder_impl.cc119
1 files changed, 51 insertions, 68 deletions
diff --git a/gr-fec/lib/repetition_encoder_impl.cc b/gr-fec/lib/repetition_encoder_impl.cc
index dd6bc01615..5be5995110 100644
--- a/gr-fec/lib/repetition_encoder_impl.cc
+++ b/gr-fec/lib/repetition_encoder_impl.cc
@@ -30,79 +30,62 @@
#include <sstream>
namespace gr {
- namespace fec {
- namespace code {
-
- generic_encoder::sptr
- repetition_encoder::make(int frame_size, int rep)
- {
- return generic_encoder::sptr
- (new repetition_encoder_impl(frame_size, rep));
- }
-
- repetition_encoder_impl::repetition_encoder_impl(int frame_size, int rep)
- : generic_encoder("repetition_encoder")
- {
- d_max_frame_size = frame_size;
- set_frame_size(frame_size);
-
- if(rep < 0)
- throw std::runtime_error("repetition_encoder: repetition rate must be >= 0");
-
- d_rep = rep;
- }
-
- repetition_encoder_impl::~repetition_encoder_impl()
- {
- }
-
- int
- repetition_encoder_impl::get_output_size()
- {
- return d_frame_size*d_rep;
- }
-
- int
- repetition_encoder_impl::get_input_size()
- {
- return d_frame_size;
- }
-
- bool
- repetition_encoder_impl::set_frame_size(unsigned int frame_size)
- {
- bool ret = true;
- if(frame_size > d_max_frame_size) {
- GR_LOG_INFO(d_logger, boost::format("tried to set frame to %1%; max possible is %2%") \
- % frame_size % d_max_frame_size);
- frame_size = d_max_frame_size;
- ret = false;
- }
+namespace fec {
+namespace code {
+
+generic_encoder::sptr repetition_encoder::make(int frame_size, int rep)
+{
+ return generic_encoder::sptr(new repetition_encoder_impl(frame_size, rep));
+}
+
+repetition_encoder_impl::repetition_encoder_impl(int frame_size, int rep)
+ : generic_encoder("repetition_encoder")
+{
+ d_max_frame_size = frame_size;
+ set_frame_size(frame_size);
+
+ if (rep < 0)
+ throw std::runtime_error("repetition_encoder: repetition rate must be >= 0");
+
+ d_rep = rep;
+}
+
+repetition_encoder_impl::~repetition_encoder_impl() {}
+
+int repetition_encoder_impl::get_output_size() { return d_frame_size * d_rep; }
+
+int repetition_encoder_impl::get_input_size() { return d_frame_size; }
+
+bool repetition_encoder_impl::set_frame_size(unsigned int frame_size)
+{
+ bool ret = true;
+ if (frame_size > d_max_frame_size) {
+ GR_LOG_INFO(d_logger,
+ boost::format("tried to set frame to %1%; max possible is %2%") %
+ frame_size % d_max_frame_size);
+ frame_size = d_max_frame_size;
+ ret = false;
+ }
- d_frame_size = frame_size;
+ d_frame_size = frame_size;
- return ret;
- }
+ return ret;
+}
- double
- repetition_encoder_impl::rate()
- {
- return static_cast<double>(d_rep);
- }
+double repetition_encoder_impl::rate() { return static_cast<double>(d_rep); }
- void
- repetition_encoder_impl::generic_work(void *inbuffer, void *outbuffer)
- {
- const unsigned char *in = (const unsigned char*)inbuffer;
- unsigned char *out = (unsigned char*)outbuffer;
+void repetition_encoder_impl::generic_work(void* inbuffer, void* outbuffer)
+{
+ const unsigned char* in = (const unsigned char*)inbuffer;
+ unsigned char* out = (unsigned char*)outbuffer;
- for(unsigned int i = 0; i < d_frame_size; i++) {
- for(unsigned int r = 0; r < d_rep; r++) {
- out[d_rep*i + r] = in[i];
- }
+ for (unsigned int i = 0; i < d_frame_size; i++) {
+ for (unsigned int r = 0; r < d_rep; r++) {
+ out[d_rep * i + r] = in[i];
}
- }
+ }
+}
- } /* namespace code */
- } /* namespace fec */
+} /* namespace code */
+} /* namespace fec */
} /* namespace gr */