summaryrefslogtreecommitdiff
path: root/gr-trellis/lib/permutation_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gr-trellis/lib/permutation_impl.cc')
-rw-r--r--gr-trellis/lib/permutation_impl.cc23
1 files changed, 22 insertions, 1 deletions
diff --git a/gr-trellis/lib/permutation_impl.cc b/gr-trellis/lib/permutation_impl.cc
index 06bba1e11f..2fe0ea8cb8 100644
--- a/gr-trellis/lib/permutation_impl.cc
+++ b/gr-trellis/lib/permutation_impl.cc
@@ -49,10 +49,30 @@ namespace gr {
d_SYMS_PER_BLOCK(SYMS_PER_BLOCK),
d_BYTES_PER_SYMBOL(BYTES_PER_SYMBOL)
{
- set_output_multiple(d_K*SYMS_PER_BLOCK);
+ set_output_multiple(d_K*d_SYMS_PER_BLOCK);
//std::cout << d_K << "\n";
}
+ void permutation_impl::set_K(int K)
+ {
+ gr::thread::scoped_lock guard(d_setlock);
+ d_K=K;
+ set_output_multiple(d_K*d_SYMS_PER_BLOCK);
+ }
+
+ void permutation_impl::set_TABLE (const std::vector<int> &table)
+ {
+ gr::thread::scoped_lock guard(d_setlock);
+ d_TABLE = table;
+ }
+
+ void permutation_impl::set_SYMS_PER_BLOCK(int spb)
+ {
+ gr::thread::scoped_lock guard(d_setlock);
+ d_SYMS_PER_BLOCK=spb;
+ set_output_multiple(d_K*d_SYMS_PER_BLOCK);
+ }
+
permutation_impl::~permutation_impl()
{
}
@@ -62,6 +82,7 @@ namespace gr {
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items)
{
+ gr::thread::scoped_lock guard(d_setlock);
int nstreams = input_items.size();
for(int m=0;m<nstreams;m++) {