diff options
-rw-r--r-- | gr-fec/grc/ldpc_decoder_def_list.xml | 4 | ||||
-rwxr-xr-x | gr-fec/grc/ldpc_encoder_def_list.xml | 4 | ||||
-rw-r--r-- | gr-fec/include/gnuradio/fec/ldpc_decoder.h | 12 | ||||
-rwxr-xr-x | gr-fec/include/gnuradio/fec/ldpc_encoder.h | 11 | ||||
-rw-r--r-- | gr-fec/lib/ldpc_decoder.cc | 2 | ||||
-rwxr-xr-x | gr-fec/lib/ldpc_encoder.cc | 2 |
6 files changed, 13 insertions, 22 deletions
diff --git a/gr-fec/grc/ldpc_decoder_def_list.xml b/gr-fec/grc/ldpc_decoder_def_list.xml index 01bdce7d55..9e21f245e7 100644 --- a/gr-fec/grc/ldpc_decoder_def_list.xml +++ b/gr-fec/grc/ldpc_decoder_def_list.xml @@ -10,9 +10,9 @@ <import>from gnuradio import fec</import> <var_make> #if int($ndim())==1 # -self.$(id) = $(id) = map( (lambda a: fec.ldpc_make_decoder($file, $sigma, $max_iter)), range(0,$dim1) ); #slurp +self.$(id) = $(id) = map( (lambda a: fec.ldpc_decoder.make($file, $sigma, $max_iter)), range(0,$dim1) ); #slurp #else -self.$(id) = $(id) = map( (lambda b: map( ( lambda a: fec.ldpc_make_decoder($file, $sigma, $max_iter)), range(0,$dim2) ) ), range(0,$dim1)); #slurp +self.$(id) = $(id) = map( (lambda b: map( ( lambda a: fec.ldpc_decoder.make($file, $sigma, $max_iter)), range(0,$dim2) ) ), range(0,$dim1)); #slurp #end if</var_make> <make></make> diff --git a/gr-fec/grc/ldpc_encoder_def_list.xml b/gr-fec/grc/ldpc_encoder_def_list.xml index 26200ab4ba..9ec98b6240 100755 --- a/gr-fec/grc/ldpc_encoder_def_list.xml +++ b/gr-fec/grc/ldpc_encoder_def_list.xml @@ -10,9 +10,9 @@ <import>from gnuradio import fec</import> <var_make> #if int($ndim())==1 # -self.$(id) = $(id) = map( (lambda a: fec.ldpc_make_encoder($file)), range(0,$dim1) ); #slurp +self.$(id) = $(id) = map( (lambda a: fec.ldpc_encoder.make($file)), range(0,$dim1) ); #slurp #else -self.$(id) = $(id) = map( (lambda b: map( ( lambda a: fec.ldpc_make_encoder($file)), range(0,$dim2) ) ), range(0,$dim1)); #slurp +self.$(id) = $(id) = map( (lambda b: map( ( lambda a: fec.ldpc_encoder.make($file)), range(0,$dim2) ) ), range(0,$dim1)); #slurp #end if</var_make> <make></make> diff --git a/gr-fec/include/gnuradio/fec/ldpc_decoder.h b/gr-fec/include/gnuradio/fec/ldpc_decoder.h index 0f411bdb67..bc264640ad 100644 --- a/gr-fec/include/gnuradio/fec/ldpc_decoder.h +++ b/gr-fec/include/gnuradio/fec/ldpc_decoder.h @@ -38,16 +38,10 @@ typedef unsigned char OUTPUT_DATATYPE; namespace gr { namespace fec { -FEC_API generic_decoder::sptr -ldpc_make_decoder (std::string alist_file, float sigma=0.5, int max_iterations=50); #define MAXLOG 1e7 class FEC_API ldpc_decoder : public generic_decoder { - //befriend the global, swigged make function - friend generic_decoder::sptr - ldpc_make_decoder (std::string alist_file, float sigma, int max_iterations); - //private constructor ldpc_decoder (std::string alist_file, float sigma, int max_iterations); @@ -70,9 +64,11 @@ class FEC_API ldpc_decoder : public generic_decoder { public: ~ldpc_decoder (); + double rate() { return (1.0*get_output_item_size() / get_input_item_size()); } + bool set_frame_size(unsigned int frame_size) { return false; } - double rate() { return 1; } - bool set_frame_size(unsigned int frame_size) { throw std::runtime_error("Nope"); } + static generic_decoder::sptr + make (std::string alist_file, float sigma=0.5, int max_iterations=50); }; } diff --git a/gr-fec/include/gnuradio/fec/ldpc_encoder.h b/gr-fec/include/gnuradio/fec/ldpc_encoder.h index 0498430a96..86220e9c87 100755 --- a/gr-fec/include/gnuradio/fec/ldpc_encoder.h +++ b/gr-fec/include/gnuradio/fec/ldpc_encoder.h @@ -34,15 +34,9 @@ namespace gr { namespace fec { -FEC_API generic_encoder::sptr -ldpc_make_encoder (std::string alist_file); class FEC_API ldpc_encoder : public generic_encoder { - //befriend the global, swigged make function - friend generic_encoder::sptr - ldpc_make_encoder (std::string alist_file); - //private constructor ldpc_encoder (std::string alist_file); @@ -57,11 +51,12 @@ class FEC_API ldpc_encoder : public generic_encoder { alist d_list; cldpc d_code; - double rate() { return 1.0; } - bool set_frame_size(unsigned int frame_size) { throw std::runtime_error("Not supported!!!"); } + double rate() { return (1.0*get_input_size() / get_output_size()); } + bool set_frame_size(unsigned int frame_size) { return false; } public: ~ldpc_encoder (); + static generic_encoder::sptr make (std::string alist_file); }; diff --git a/gr-fec/lib/ldpc_decoder.cc b/gr-fec/lib/ldpc_decoder.cc index b7aae0b94f..3f545eda34 100644 --- a/gr-fec/lib/ldpc_decoder.cc +++ b/gr-fec/lib/ldpc_decoder.cc @@ -37,7 +37,7 @@ namespace gr { namespace fec { generic_decoder::sptr -ldpc_make_decoder(std::string alist_file, float sigma, int max_iterations) +ldpc_decoder::make(std::string alist_file, float sigma, int max_iterations) { return generic_decoder::sptr(new ldpc_decoder(alist_file, sigma, max_iterations)); } diff --git a/gr-fec/lib/ldpc_encoder.cc b/gr-fec/lib/ldpc_encoder.cc index 0385dc8533..e25eade9b9 100755 --- a/gr-fec/lib/ldpc_encoder.cc +++ b/gr-fec/lib/ldpc_encoder.cc @@ -34,7 +34,7 @@ namespace gr { namespace fec { generic_encoder::sptr -ldpc_make_encoder(std::string alist_file) +ldpc_encoder::make(std::string alist_file) { return generic_encoder::sptr(new ldpc_encoder(alist_file)); } |