From 8bf0a196d9a3ab8780bf94396aaac9687f57702c Mon Sep 17 00:00:00 2001
From: Tom Rondeau <trondeau@vt.edu>
Date: Mon, 17 Jan 2011 16:45:58 -0500
Subject: Adding accessor function to Goertzel filter implementaiton to
 set/reset its parameters.

---
 gnuradio-core/src/lib/filter/gri_goertzel.cc | 10 ++++++++--
 gnuradio-core/src/lib/filter/gri_goertzel.h  |  3 ++-
 2 files changed, 10 insertions(+), 3 deletions(-)

(limited to 'gnuradio-core/src/lib')

diff --git a/gnuradio-core/src/lib/filter/gri_goertzel.cc b/gnuradio-core/src/lib/filter/gri_goertzel.cc
index f0314e400..85e66c069 100644
--- a/gnuradio-core/src/lib/filter/gri_goertzel.cc
+++ b/gnuradio-core/src/lib/filter/gri_goertzel.cc
@@ -1,6 +1,6 @@
 /* -*- c++ -*- */
 /*
- * Copyright 2002 Free Software Foundation, Inc.
+ * Copyright 2002,2011 Free Software Foundation, Inc.
  * 
  * This file is part of GNU Radio
  * 
@@ -25,6 +25,12 @@
 #include <gri_goertzel.h>
 
 gri_goertzel::gri_goertzel(int rate, int len, float freq)
+{
+  gri_setparms(rate, len, freq);
+}
+
+void
+gri_goertzel::gri_setparms(int rate, int len, float freq)
 {
   d_d1 = 0.0;
   d_d2 = 0.0;
@@ -32,9 +38,9 @@ gri_goertzel::gri_goertzel(int rate, int len, float freq)
   float w = 2.0*M_PI*freq/rate;
   d_wr = 2.0*std::cos(w);
   d_wi = std::sin(w);
-
   d_len = len;
   d_processed = 0;
+
 }
 
 gr_complex gri_goertzel::batch(float *in)
diff --git a/gnuradio-core/src/lib/filter/gri_goertzel.h b/gnuradio-core/src/lib/filter/gri_goertzel.h
index 86d3d34d3..e062f000e 100644
--- a/gnuradio-core/src/lib/filter/gri_goertzel.h
+++ b/gnuradio-core/src/lib/filter/gri_goertzel.h
@@ -1,6 +1,6 @@
 /* -*- c++ -*- */
 /*
- * Copyright 2006 Free Software Foundation, Inc.
+ * Copyright 2006,2011 Free Software Foundation, Inc.
  * 
  * This file is part of GNU Radio
  * 
@@ -34,6 +34,7 @@ class gri_goertzel
 public:
   gri_goertzel() {}
   gri_goertzel(int rate, int len, float freq);
+  void gri_setparms(int rate, int len, float freq);
 
   // Process a input array
   gr_complex batch(float *in);
-- 
cgit v1.2.3


From f1878bbdc36a31c469364a73cfdf22ee74867f69 Mon Sep 17 00:00:00 2001
From: Tom Rondeau <trondeau@vt.edu>
Date: Mon, 17 Jan 2011 16:47:19 -0500
Subject: Adding accessors to Goertzel filter GR block to call setparms from
 implementation file for (re)setting parameters.

---
 gnuradio-core/src/lib/filter/gr_goertzel_fc.cc | 18 +++++++++++++++++-
 gnuradio-core/src/lib/filter/gr_goertzel_fc.h  |  7 ++++++-
 gnuradio-core/src/lib/filter/gr_goertzel_fc.i  |  6 +++++-
 3 files changed, 28 insertions(+), 3 deletions(-)

(limited to 'gnuradio-core/src/lib')

diff --git a/gnuradio-core/src/lib/filter/gr_goertzel_fc.cc b/gnuradio-core/src/lib/filter/gr_goertzel_fc.cc
index a93751b2f..938a522f4 100644
--- a/gnuradio-core/src/lib/filter/gr_goertzel_fc.cc
+++ b/gnuradio-core/src/lib/filter/gr_goertzel_fc.cc
@@ -1,6 +1,6 @@
 /* -*- c++ -*- */
 /*
- * Copyright 2006,2010 Free Software Foundation, Inc.
+ * Copyright 2006,2010,2011 Free Software Foundation, Inc.
  * 
  * This file is part of GNU Radio
  * 
@@ -42,6 +42,8 @@ gr_goertzel_fc::gr_goertzel_fc(int rate, int len, float freq)
     d_goertzel(rate, len, freq)
 {
   d_len = len;
+  d_rate = rate;
+  d_freq = freq;
 }
 
 int gr_goertzel_fc::work(int noutput_items,
@@ -58,3 +60,17 @@ int gr_goertzel_fc::work(int noutput_items,
 
   return noutput_items;
 }
+
+void
+gr_goertzel_fc::set_freq(float freq)
+{
+  d_freq = freq;
+  d_goertzel.gri_setparms(d_rate, d_len, d_freq);
+}
+
+void
+gr_goertzel_fc::set_rate(int rate)
+{
+  d_rate = rate;
+  d_goertzel.gri_setparms(d_rate, d_len, d_freq);
+}
diff --git a/gnuradio-core/src/lib/filter/gr_goertzel_fc.h b/gnuradio-core/src/lib/filter/gr_goertzel_fc.h
index 9518c5c92..c60b63d88 100644
--- a/gnuradio-core/src/lib/filter/gr_goertzel_fc.h
+++ b/gnuradio-core/src/lib/filter/gr_goertzel_fc.h
@@ -1,6 +1,6 @@
 /* -*- c++ -*- */
 /*
- * Copyright 2006 Free Software Foundation, Inc.
+ * Copyright 2006,2011 Free Software Foundation, Inc.
  * 
  * This file is part of GNU Radio
  * 
@@ -44,11 +44,16 @@ private:
   gr_goertzel_fc(int rate, int len, float freq);
   gri_goertzel d_goertzel;
   int          d_len;
+  float	       d_freq;
+  int          d_rate;
 
 public:
   int work(int noutput_items,
 	   gr_vector_const_void_star &input_items,
 	   gr_vector_void_star &output_items);
+
+  void set_freq (float freq);
+  void set_rate (int rate);
 };
 
 #endif /* INCLUDED_GR_GOERTZEL_FC_H */
diff --git a/gnuradio-core/src/lib/filter/gr_goertzel_fc.i b/gnuradio-core/src/lib/filter/gr_goertzel_fc.i
index 4cbc1dece..775c78cc8 100644
--- a/gnuradio-core/src/lib/filter/gr_goertzel_fc.i
+++ b/gnuradio-core/src/lib/filter/gr_goertzel_fc.i
@@ -1,6 +1,6 @@
 /* -*- c++ -*- */
 /*
- * Copyright 2006 Free Software Foundation, Inc.
+ * Copyright 2006,2011 Free Software Foundation, Inc.
  *
  * This file is part of GNU Radio
  *
@@ -28,4 +28,8 @@ class gr_goertzel_fc : public gr_sync_decimator
 {
 private:
   gr_goertzel_fc();
+
+public:
+  void set_freq (float freq);
+  void set_rate (int rate);
 };
-- 
cgit v1.2.3