summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gr-analog/lib/ctcss_squelch_ff_impl.cc15
-rw-r--r--gr-analog/lib/ctcss_squelch_ff_impl.h9
-rw-r--r--gr-analog/lib/pwr_squelch_cc_impl.cc14
-rw-r--r--gr-analog/lib/pwr_squelch_cc_impl.h4
-rw-r--r--gr-analog/lib/squelch_base_cc_impl.cc4
5 files changed, 37 insertions, 9 deletions
diff --git a/gr-analog/lib/ctcss_squelch_ff_impl.cc b/gr-analog/lib/ctcss_squelch_ff_impl.cc
index fb34485178..7edda64a1d 100644
--- a/gr-analog/lib/ctcss_squelch_ff_impl.cc
+++ b/gr-analog/lib/ctcss_squelch_ff_impl.cc
@@ -149,5 +149,20 @@ namespace gr {
}
}
+ void
+ ctcss_squelch_ff_impl::set_level(float level)
+ {
+ gr::thread::scoped_lock l(d_setlock);
+ d_level = level;
+ }
+
+ void
+ ctcss_squelch_ff_impl::set_frequency(float frequency)
+ {
+ gr::thread::scoped_lock l(d_setlock);
+ d_freq = frequency;
+ update_fft_params();
+ }
+
} /* namespace analog */
} /* namespace gr */
diff --git a/gr-analog/lib/ctcss_squelch_ff_impl.h b/gr-analog/lib/ctcss_squelch_ff_impl.h
index 67ce66c4ba..f6e12de766 100644
--- a/gr-analog/lib/ctcss_squelch_ff_impl.h
+++ b/gr-analog/lib/ctcss_squelch_ff_impl.h
@@ -59,15 +59,10 @@ namespace gr {
std::vector<float> squelch_range() const;
float level() const { return d_level; }
- void set_level(float level) { d_level = level; }
+ void set_level(float level);
int len() const { return d_len; }
float frequency() const { return d_freq; }
-
- void set_frequency(float frequency)
- {
- d_freq = frequency;
- update_fft_params();
- }
+ void set_frequency(float frequency);
int ramp() const { return squelch_base_ff_impl::ramp(); }
void set_ramp(int ramp) { squelch_base_ff_impl::set_ramp(ramp); }
diff --git a/gr-analog/lib/pwr_squelch_cc_impl.cc b/gr-analog/lib/pwr_squelch_cc_impl.cc
index 1a414ed464..62b9cff5c6 100644
--- a/gr-analog/lib/pwr_squelch_cc_impl.cc
+++ b/gr-analog/lib/pwr_squelch_cc_impl.cc
@@ -69,5 +69,19 @@ namespace gr {
d_pwr = d_iir.filter(in.real()*in.real()+in.imag()*in.imag());
}
+ void
+ pwr_squelch_cc_impl::set_threshold(double db)
+ {
+ gr::thread::scoped_lock l(d_setlock);
+ d_threshold = std::pow(10.0, db/10);
+ }
+
+ void
+ pwr_squelch_cc_impl::set_alpha(double alpha)
+ {
+ gr::thread::scoped_lock l(d_setlock);
+ d_iir.set_taps(alpha);
+ }
+
} /* namespace analog */
} /* namespace gr */
diff --git a/gr-analog/lib/pwr_squelch_cc_impl.h b/gr-analog/lib/pwr_squelch_cc_impl.h
index eea881a733..d72ad58c64 100644
--- a/gr-analog/lib/pwr_squelch_cc_impl.h
+++ b/gr-analog/lib/pwr_squelch_cc_impl.h
@@ -51,8 +51,8 @@ namespace gr {
std::vector<float> squelch_range() const;
double threshold() const { return 10*log10(d_threshold); }
- void set_threshold(double db) { d_threshold = std::pow(10.0, db/10); }
- void set_alpha(double alpha) { d_iir.set_taps(alpha); }
+ void set_threshold(double db);
+ void set_alpha(double alpha);
int ramp() const { return squelch_base_cc_impl::ramp(); }
void set_ramp(int ramp) { squelch_base_cc_impl::set_ramp(ramp); }
diff --git a/gr-analog/lib/squelch_base_cc_impl.cc b/gr-analog/lib/squelch_base_cc_impl.cc
index c62efc339b..3255d3bde4 100644
--- a/gr-analog/lib/squelch_base_cc_impl.cc
+++ b/gr-analog/lib/squelch_base_cc_impl.cc
@@ -55,6 +55,7 @@ namespace gr {
void
squelch_base_cc_impl::set_ramp(int ramp)
{
+ gr::thread::scoped_lock l(d_setlock);
d_ramp = ramp;
}
@@ -67,6 +68,7 @@ namespace gr {
void
squelch_base_cc_impl::set_gate(bool gate)
{
+ gr::thread::scoped_lock l(d_setlock);
d_gate = gate;
}
@@ -87,6 +89,8 @@ namespace gr {
int j = 0;
+ gr::thread::scoped_lock l(d_setlock);
+
for(int i = 0; i < noutput_items; i++) {
update_state(in[i]);