diff options
author | Johnathan Corgan | 2009-10-08 22:12:41 -0700 |
---|---|---|
committer | Johnathan Corgan | 2009-10-08 22:12:41 -0700 |
commit | 7ba8192e28713049324398f4b0c6d2eebdaa1fc7 (patch) | |
tree | e9b0d49e60cd6bf82c8d56f203a450f90d4f4337 /gnuradio-core/src/lib/general/gr_copy.cc | |
parent | 3a3cfaf293a46d83ffb905de04b43f3b1ff07d88 (diff) | |
parent | 38d5389f3054164a2f04d6e4e8fe381aa5ee03fc (diff) | |
download | gnuradio-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.cc | 71 |
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; +} |