diff options
author | Johnathan Corgan <johnathan@corganlabs.com> | 2013-07-09 09:57:32 -0700 |
---|---|---|
committer | Johnathan Corgan <johnathan@corganlabs.com> | 2013-07-09 09:57:32 -0700 |
commit | 1e9d546b9606f9735032513d593a29b6344856c5 (patch) | |
tree | 4c92bb0ae3129a9a22c8633754bd489e100de58d /gr-analog/lib/ctcss_squelch_ff_impl.cc | |
parent | 530e586d3f6235e0450e297689bc2271986c0727 (diff) | |
parent | 61d88983fbe8ba7822f227efc57aa98fa287c87b (diff) |
Merge branch 'maint'
Diffstat (limited to 'gr-analog/lib/ctcss_squelch_ff_impl.cc')
-rw-r--r-- | gr-analog/lib/ctcss_squelch_ff_impl.cc | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/gr-analog/lib/ctcss_squelch_ff_impl.cc b/gr-analog/lib/ctcss_squelch_ff_impl.cc index 9a6f301ba0..5532c70d6f 100644 --- a/gr-analog/lib/ctcss_squelch_ff_impl.cc +++ b/gr-analog/lib/ctcss_squelch_ff_impl.cc @@ -86,15 +86,18 @@ namespace gr { else f_r = ctcss_tones[i+1]; - d_goertzel_l = fft::goertzel(rate, d_len, f_l); - d_goertzel_c = fft::goertzel(rate, d_len, freq); - d_goertzel_r = fft::goertzel(rate, d_len, f_r); + d_goertzel_l = new fft::goertzel(rate, d_len, f_l); + d_goertzel_c = new fft::goertzel(rate, d_len, freq); + d_goertzel_r = new fft::goertzel(rate, d_len, f_r); d_mute = true; } ctcss_squelch_ff_impl::~ctcss_squelch_ff_impl() { + delete d_goertzel_l; + delete d_goertzel_c; + delete d_goertzel_r; } std::vector<float> @@ -111,16 +114,16 @@ namespace gr { void ctcss_squelch_ff_impl::update_state(const float &in) { - d_goertzel_l.input(in); - d_goertzel_c.input(in); - d_goertzel_r.input(in); + d_goertzel_l->input(in); + d_goertzel_c->input(in); + d_goertzel_r->input(in); float rounder = 100000; float d_out_l, d_out_c, d_out_r; - if(d_goertzel_c.ready()) { - d_out_l = floor(rounder*abs(d_goertzel_l.output()))/rounder; - d_out_c = floor(rounder*abs(d_goertzel_c.output()))/rounder; - d_out_r = floor(rounder*abs(d_goertzel_r.output()))/rounder; + if(d_goertzel_c->ready()) { + d_out_l = floor(rounder*abs(d_goertzel_l->output()))/rounder; + d_out_c = floor(rounder*abs(d_goertzel_c->output()))/rounder; + d_out_r = floor(rounder*abs(d_goertzel_r->output()))/rounder; //printf("d_out_l=%f d_out_c=%f d_out_r=%f\n", d_out_l, d_out_c, d_out_r); d_mute = (d_out_c < d_level || d_out_c < d_out_l || d_out_c < d_out_r); |