summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gr-fec/grc/ldpc_decoder_def_list.xml4
-rwxr-xr-xgr-fec/grc/ldpc_encoder_def_list.xml4
-rw-r--r--gr-fec/include/gnuradio/fec/ldpc_decoder.h12
-rwxr-xr-xgr-fec/include/gnuradio/fec/ldpc_encoder.h11
-rw-r--r--gr-fec/lib/ldpc_decoder.cc2
-rwxr-xr-xgr-fec/lib/ldpc_encoder.cc2
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));
}