summaryrefslogtreecommitdiff
path: root/gnuradio-core/src/lib/general/gr_copy.cc
diff options
context:
space:
mode:
authorJohnathan Corgan2009-10-08 22:12:41 -0700
committerJohnathan Corgan2009-10-08 22:12:41 -0700
commit7ba8192e28713049324398f4b0c6d2eebdaa1fc7 (patch)
treee9b0d49e60cd6bf82c8d56f203a450f90d4f4337 /gnuradio-core/src/lib/general/gr_copy.cc
parent3a3cfaf293a46d83ffb905de04b43f3b1ff07d88 (diff)
parent38d5389f3054164a2f04d6e4e8fe381aa5ee03fc (diff)
downloadgnuradio-7ba8192e28713049324398f4b0c6d2eebdaa1fc7.tar.gz
gnuradio-7ba8192e28713049324398f4b0c6d2eebdaa1fc7.tar.bz2
gnuradio-7ba8192e28713049324398f4b0c6d2eebdaa1fc7.zip
Merge branch 'wip/wxgui' of http://gnuradio.org/git/jblum
* 'wip/wxgui' of http://gnuradio.org/git/jblum: using gr copy in the wxgui connect, added gr copy to grc xml Added gr.copy(itemsize) block point label transpareny, horizontal offset, and toggle on/off capability simplify some params moved the wxgui connect helper functions into the wrapper class making use of update ui event setup special wxgui connect on sinks, needs testing working special connect for fftsink work on a special connect function that registers a callback added bind to visible event function to callback when visibility changes within tabs
Diffstat (limited to 'gnuradio-core/src/lib/general/gr_copy.cc')
-rw-r--r--gnuradio-core/src/lib/general/gr_copy.cc71
1 files changed, 71 insertions, 0 deletions
diff --git a/gnuradio-core/src/lib/general/gr_copy.cc b/gnuradio-core/src/lib/general/gr_copy.cc
new file mode 100644
index 000000000..c6564c231
--- /dev/null
+++ b/gnuradio-core/src/lib/general/gr_copy.cc
@@ -0,0 +1,71 @@
+/* -*- c++ -*- */
+/*
+ * Copyright 2006,2009 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * GNU Radio is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3, or (at your option)
+ * any later version.
+ *
+ * GNU Radio is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNU Radio; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <gr_copy.h>
+#include <gr_io_signature.h>
+#include <string.h>
+
+gr_copy_sptr
+gr_make_copy(size_t itemsize)
+{
+ return gnuradio::get_initial_sptr(new gr_copy(itemsize));
+}
+
+gr_copy::gr_copy(size_t itemsize)
+ : gr_block ("copy",
+ gr_make_io_signature (1, 1, itemsize),
+ gr_make_io_signature (1, 1, itemsize)),
+ d_itemsize(itemsize),
+ d_enabled(true)
+{
+}
+
+bool
+gr_copy::check_topology(int ninputs, int noutputs)
+{
+ return ninputs == noutputs;
+}
+
+int
+gr_copy::general_work(int noutput_items,
+ gr_vector_int &ninput_items,
+ gr_vector_const_void_star &input_items,
+ gr_vector_void_star &output_items)
+{
+ const uint8_t *in = (const uint8_t *) input_items[0];
+ uint8_t *out = (uint8_t *) output_items[0];
+
+ int n = std::min<int>(ninput_items[0], noutput_items);
+ int j = 0;
+
+ if (d_enabled) {
+ memcpy(out, in, n*d_itemsize);
+ j = n;
+ }
+
+ consume_each(n);
+ return j;
+}