diff options
Diffstat (limited to 'gnuradio-core/src/lib')
37 files changed, 553 insertions, 4407 deletions
diff --git a/gnuradio-core/src/lib/.gitignore b/gnuradio-core/src/lib/.gitignore deleted file mode 100644 index 0d5077da5..000000000 --- a/gnuradio-core/src/lib/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -/Makefile -/Makefile.in -/.deps -/.libs -/*.la -/*.lo -/gnuradio-config-info diff --git a/gnuradio-core/src/lib/Makefile.am b/gnuradio-core/src/lib/Makefile.am deleted file mode 100644 index 21e721073..000000000 --- a/gnuradio-core/src/lib/Makefile.am +++ /dev/null @@ -1,72 +0,0 @@ -# Copyright 2001,2004,2009,2010 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. -# - -include $(top_srcdir)/Makefile.common - -## Process this file with automake to produce Makefile.in - -# We've got to build . before swig -SUBDIRS = missing runtime filter viterbi general gengen reed-solomon io hier . swig - -AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES) $(CPPUNIT_INCLUDES) $(WITH_INCLUDES) - -# generate libgnuradio-core.la from the convenience libraries in subdirs - -lib_LTLIBRARIES = libgnuradio-core.la -noinst_LTLIBRARIES = libgnuradio-core-qa.la - -libgnuradio_core_la_SOURCES = bug_work_around_6.cc -libgnuradio_core_la_LDFLAGS = $(NO_UNDEFINED) $(LTVERSIONFLAGS) - -libgnuradio_core_qa_la_SOURCES = bug_work_around_6.cc -libgnuradio_core_qa_la_LDFLAGS = $(NO_UNDEFINED) -version-info 0:0:0 \ - $(LIBGNURADIO_CORE_EXTRA_LDFLAGS) - - -libgnuradio_core_la_LIBADD = \ - filter/libfilter.la \ - viterbi/libviterbi.la \ - general/libgeneral.la \ - gengen/libgengen.la \ - io/libio.la \ - missing/libmissing.la \ - reed-solomon/librs.la \ - runtime/libruntime.la \ - hier/libhier.la \ - $(GRUEL_LA) \ - $(VOLK_LA) \ - $(FFTW3F_LIBS) \ - $(GSL_LIBS) \ - $(CBLAS_LIBS) \ - $(BOOST_FILESYSTEM_LIB) - -libgnuradio_core_qa_la_LIBADD = \ - filter/libfilter-qa.la \ - general/libgeneral-qa.la \ - runtime/libruntime-qa.la \ - libgnuradio-core.la \ - $(CPPUNIT_LIBS) - -bin_PROGRAMS = gnuradio-config-info -gnuradio_config_info_SOURCES = gnuradio-config-info.cc -gnuradio_config_info_LDADD = libgnuradio-core.la \ - $(BOOST_LDFLAGS) \ - $(BOOST_PROGRAM_OPTIONS_LIB) \ - $(BOOST_FILESYSTEM_LIB) diff --git a/gnuradio-core/src/lib/filter/.gitignore b/gnuradio-core/src/lib/filter/.gitignore deleted file mode 100644 index faaf02cb8..000000000 --- a/gnuradio-core/src/lib/filter/.gitignore +++ /dev/null @@ -1,226 +0,0 @@ -/Makefile -/Makefile.in -/.la -/.lo -/.deps -/.libs -/*.la -/*.lo -/*.pyc -/generate-stamp -/# -/--- -/generate -/files: -/don't -/go -/in -/CVS -/--- -/GrFIRfilterCCC.cc -/GrFIRfilterCCC.h -/GrFIRfilterCCF.cc -/GrFIRfilterCCF.h -/GrFIRfilterFCC.cc -/GrFIRfilterFCC.h -/GrFIRfilterFFF.cc -/GrFIRfilterFFF.h -/GrFIRfilterFSF.cc -/GrFIRfilterFSF.h -/GrFIRfilterSCC.cc -/GrFIRfilterSCC.h -/GrFIRfilterSIS.cc -/GrFIRfilterSIS.h -/GrFreqXlatingFIRfilterCCC.cc -/GrFreqXlatingFIRfilterCCC.h -/GrFreqXlatingFIRfilterCCF.cc -/GrFreqXlatingFIRfilterCCF.h -/GrFreqXlatingFIRfilterFCC.cc -/GrFreqXlatingFIRfilterFCC.h -/GrFreqXlatingFIRfilterFCF.cc -/GrFreqXlatingFIRfilterFCF.h -/GrFreqXlatingFIRfilterSCC.cc -/GrFreqXlatingFIRfilterSCC.h -/GrFreqXlatingFIRfilterSCF.cc -/GrFreqXlatingFIRfilterSCF.h -/gr_fir_CCC.cc -/gr_fir_CCC.h -/gr_fir_CCC_generic.cc -/gr_fir_CCC_generic.h -/gr_fir_CCF.cc -/gr_fir_CCF.h -/gr_fir_CCF_generic.cc -/gr_fir_CCF_generic.h -/gr_fir_FCC.cc -/gr_fir_FCC.h -/gr_fir_FCC_generic.cc -/gr_fir_FCC_generic.h -/gr_fir_FFF.cc -/gr_fir_FFF.h -/gr_fir_FFF_generic.cc -/gr_fir_FFF_generic.h -/gr_fir_FSF.cc -/gr_fir_FSF.h -/gr_fir_FSF_generic.cc -/gr_fir_FSF_generic.h -/gr_fir_SCC.cc -/gr_fir_SCC.h -/gr_fir_SCC_generic.cc -/gr_fir_SCC_generic.h -/gr_fir_SIS.cc -/gr_fir_SIS.h -/gr_fir_SIS_generic.cc -/gr_fir_SIS_generic.h -/gr_fir_sysconfig.cc -/gr_fir_sysconfig.h -/gr_fir_sysconfig_generic.cc -/gr_fir_sysconfig_generic.h -/gr_fir_util.cc -/gr_fir_util.h -/GrFIRfilterCCC.i -/GrFIRfilterCCF.i -/GrFIRfilterFCC.i -/GrFIRfilterFFF.i -/GrFIRfilterFSF.i -/GrFIRfilterSCC.i -/GrFIRfilterSIS.i -/GrFreqXlatingFIRfilterCCC.i -/GrFreqXlatingFIRfilterCCF.i -/GrFreqXlatingFIRfilterFCC.i -/GrFreqXlatingFIRfilterFCF.i -/GrFreqXlatingFIRfilterSCC.i -/GrFreqXlatingFIRfilterSCF.i -/# -/--- -/end -/generated -/files -/--- -/filter_generated.i -/gr_fir_ccc.cc -/gr_fir_ccc.h -/gr_fir_ccc_generic.cc -/gr_fir_ccc_generic.h -/gr_fir_ccf.cc -/gr_fir_ccf.h -/gr_fir_ccf_generic.cc -/gr_fir_ccf_generic.h -/gr_fir_fcc.cc -/gr_fir_fcc.h -/gr_fir_fcc_generic.cc -/gr_fir_fcc_generic.h -/gr_fir_fff.cc -/gr_fir_fff.h -/gr_fir_fff_generic.cc -/gr_fir_fff_generic.h -/gr_fir_fsf.cc -/gr_fir_fsf.h -/gr_fir_fsf_generic.cc -/gr_fir_fsf_generic.h -/gr_fir_scc.cc -/gr_fir_scc.h -/gr_fir_scc_generic.cc -/gr_fir_scc_generic.h -/gr_fir_filter_ccc.cc -/gr_fir_filter_ccc.h -/gr_fir_filter_ccc.i -/gr_fir_filter_ccf.cc -/gr_fir_filter_ccf.h -/gr_fir_filter_ccf.i -/gr_fir_filter_fcc.cc -/gr_fir_filter_fcc.h -/gr_fir_filter_fcc.i -/gr_fir_filter_fff.cc -/gr_fir_filter_fff.h -/gr_fir_filter_fff.i -/gr_fir_filter_fsf.cc -/gr_fir_filter_fsf.h -/gr_fir_filter_fsf.i -/gr_fir_filter_scc.cc -/gr_fir_filter_scc.h -/gr_fir_filter_scc.i -/gr_freq_xlating_fir_filter_ccc.cc -/gr_freq_xlating_fir_filter_ccc.h -/gr_freq_xlating_fir_filter_ccc.i -/gr_freq_xlating_fir_filter_ccf.cc -/gr_freq_xlating_fir_filter_ccf.h -/gr_freq_xlating_fir_filter_ccf.i -/gr_freq_xlating_fir_filter_fcc.cc -/gr_freq_xlating_fir_filter_fcc.h -/gr_freq_xlating_fir_filter_fcc.i -/gr_freq_xlating_fir_filter_fcf.cc -/gr_freq_xlating_fir_filter_fcf.h -/gr_freq_xlating_fir_filter_fcf.i -/gr_freq_xlating_fir_filter_scc.cc -/gr_freq_xlating_fir_filter_scc.h -/gr_freq_xlating_fir_filter_scc.i -/gr_freq_xlating_fir_filter_scf.cc -/gr_freq_xlating_fir_filter_scf.h -/gr_freq_xlating_fir_filter_scf.i -/gr_interp_fir_filter_ccc.cc -/gr_interp_fir_filter_ccc.h -/gr_interp_fir_filter_ccc.i -/gr_interp_fir_filter_ccf.cc -/gr_interp_fir_filter_ccf.h -/gr_interp_fir_filter_ccf.i -/gr_interp_fir_filter_fcc.cc -/gr_interp_fir_filter_fcc.h -/gr_interp_fir_filter_fcc.i -/gr_interp_fir_filter_fff.cc -/gr_interp_fir_filter_fff.h -/gr_interp_fir_filter_fff.i -/gr_interp_fir_filter_fsf.cc -/gr_interp_fir_filter_fsf.h -/gr_interp_fir_filter_fsf.i -/gr_interp_fir_filter_scc.cc -/gr_interp_fir_filter_scc.h -/gr_interp_fir_filter_scc.i -/gr_rational_resampler_ccc.cc -/gr_rational_resampler_ccc.h -/gr_rational_resampler_ccc.i -/gr_rational_resampler_ccf.cc -/gr_rational_resampler_ccf.h -/gr_rational_resampler_ccf.i -/gr_rational_resampler_fcc.cc -/gr_rational_resampler_fcc.h -/gr_rational_resampler_fcc.i -/gr_rational_resampler_fff.cc -/gr_rational_resampler_fff.h -/gr_rational_resampler_fff.i -/gr_rational_resampler_fsf.cc -/gr_rational_resampler_fsf.h -/gr_rational_resampler_fsf.i -/gr_rational_resampler_scc.cc -/gr_rational_resampler_scc.h -/gr_rational_resampler_scc.i -/gr_rational_resampler_base_ccc.cc -/gr_rational_resampler_base_ccc.h -/gr_rational_resampler_base_ccc.i -/gr_rational_resampler_base_ccf.cc -/gr_rational_resampler_base_ccf.h -/gr_rational_resampler_base_ccf.i -/gr_rational_resampler_base_fcc.cc -/gr_rational_resampler_base_fcc.h -/gr_rational_resampler_base_fcc.i -/gr_rational_resampler_base_fff.cc -/gr_rational_resampler_base_fff.h -/gr_rational_resampler_base_fff.i -/gr_rational_resampler_base_fsf.cc -/gr_rational_resampler_base_fsf.h -/gr_rational_resampler_base_fsf.i -/gr_rational_resampler_base_scc.cc -/gr_rational_resampler_base_scc.h -/gr_rational_resampler_base_scc.i -/gri_fir_filter_with_buffer_ccc.cc -/gri_fir_filter_with_buffer_ccc.h -/gri_fir_filter_with_buffer_ccf.cc -/gri_fir_filter_with_buffer_ccf.h -/gri_fir_filter_with_buffer_fcc.cc -/gri_fir_filter_with_buffer_fcc.h -/gri_fir_filter_with_buffer_fff.cc -/gri_fir_filter_with_buffer_fff.h -/gri_fir_filter_with_buffer_fsf.cc -/gri_fir_filter_with_buffer_fsf.h -/gri_fir_filter_with_buffer_scc.cc -/gri_fir_filter_with_buffer_scc.h -/stamp-* diff --git a/gnuradio-core/src/lib/filter/CMakeLists.txt b/gnuradio-core/src/lib/filter/CMakeLists.txt index d26e55fb8..02a72191c 100644 --- a/gnuradio-core/src/lib/filter/CMakeLists.txt +++ b/gnuradio-core/src/lib/filter/CMakeLists.txt @@ -333,7 +333,7 @@ set(gr_core_filter_triple_threats gr_single_pole_iir_filter_ff gr_single_pole_iir_filter_cc gr_pfb_channelizer_ccf - gr_pfb_synthesis_filterbank_ccf + gr_pfb_synthesizer_ccf gr_pfb_decimator_ccf gr_pfb_interpolator_ccf gr_pfb_arb_resampler_ccf diff --git a/gnuradio-core/src/lib/filter/Makefile.am b/gnuradio-core/src/lib/filter/Makefile.am deleted file mode 100644 index c314431bf..000000000 --- a/gnuradio-core/src/lib/filter/Makefile.am +++ /dev/null @@ -1,402 +0,0 @@ -# -# Copyright 2001,2002,2004-2011 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. -# - -include $(top_srcdir)/Makefile.common - -# -# This directory contains mostly filter routines, plus a few -# other performance critical items -# - -# $(WITH_INCLUDES) must _always_ be last -AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES) $(CPPUNIT_INCLUDES) \ - $(FFTW3F_CPPFLAGS) $(WITH_INCLUDES) - -noinst_LTLIBRARIES = libfilter.la libfilter-qa.la - -# ---------------------------------------------------------------- -# these scripts generate FIR code -# - -code_generator = \ - generate_all.py \ - generate_gr_fir_XXX.py \ - generate_gr_fir_filter_XXX.py \ - generate_gr_interp_fir_filter_XXX.py \ - generate_gr_rational_resampler_base_XXX.py \ - generate_gr_fir_sysconfig.py \ - generate_gr_fir_sysconfig_generic.py \ - generate_gr_fir_util.py \ - generate_gr_freq_xlating_fir_filter_XXX.py \ - generate_gri_fir_filter_with_buffer_XXX.py \ - generate_utils.py \ - gr_fir_XXX.cc.t \ - gr_fir_XXX.h.t \ - gr_fir_XXX_generic.cc.t \ - gr_fir_XXX_generic.h.t \ - gr_fir_filter_XXX.cc.t \ - gr_fir_filter_XXX.h.t \ - gr_fir_filter_XXX.i.t \ - gr_interp_fir_filter_XXX.cc.t \ - gr_interp_fir_filter_XXX.h.t \ - gr_interp_fir_filter_XXX.i.t \ - gr_rational_resampler_base_XXX.cc.t \ - gr_rational_resampler_base_XXX.h.t \ - gr_rational_resampler_base_XXX.i.t \ - gr_freq_xlating_fir_filter_XXX.cc.t \ - gr_freq_xlating_fir_filter_XXX.h.t \ - gr_freq_xlating_fir_filter_XXX.i.t \ - gri_fir_filter_with_buffer_XXX.cc.t \ - gri_fir_filter_with_buffer_XXX.h.t - - -# Source built by Python into $(builddir) -BUILT_SOURCES += \ - $(GENERATED_H) \ - $(GENERATED_I) \ - $(GENERATED_CC) \ - filter_generated.i - -# ---------------------------------------------------------------- -# MD_CPU and MD_SUBCPU are set at configure time by way of -# gnuradio/config/gr_set_md_cpu.m4. -# It indicates which set of machine dependent code we should be building. -# We currently implement "generic" and "x86" - -# -# <foo>_CODE entry for each set of machine specific speedups -# - -generic_CODE = \ - sysconfig_generic.cc - -generic_qa_CODE = \ - qa_dotprod_generic.cc - -x86_CODE = \ - sysconfig_x86.cc \ - gr_fir_sysconfig_x86.cc \ - gr_cpu_x86.cc \ - gr_fir_ccc_simd.cc \ - gr_fir_ccc_x86.cc \ - gr_fir_fff_simd.cc \ - gr_fir_fff_x86.cc \ - gr_fir_fsf_simd.cc \ - gr_fir_fsf_x86.cc \ - gr_fir_scc_simd.cc \ - gr_fir_scc_x86.cc \ - gr_fir_fcc_simd.cc \ - gr_fir_fcc_x86.cc \ - gr_fir_ccf_simd.cc \ - gr_fir_ccf_x86.cc \ - sse_debug.c - -x86_SUBCODE = \ - float_dotprod_sse.S \ - float_dotprod_3dnow.S \ - complex_dotprod_3dnowext.S \ - complex_dotprod_3dnow.S \ - complex_dotprod_sse.S \ - ccomplex_dotprod_3dnowext.S \ - ccomplex_dotprod_3dnow.S \ - ccomplex_dotprod_sse.S \ - fcomplex_dotprod_3dnow.S \ - fcomplex_dotprod_sse.S \ - short_dotprod_mmx.S - -x86_64_SUBCODE = \ - float_dotprod_sse64.S \ - float_dotprod_3dnow64.S \ - complex_dotprod_3dnowext64.S \ - complex_dotprod_3dnow64.S \ - complex_dotprod_sse64.S \ - ccomplex_dotprod_3dnowext64.S \ - ccomplex_dotprod_3dnow64.S \ - ccomplex_dotprod_sse64.S \ - fcomplex_dotprod_3dnow64.S \ - fcomplex_dotprod_sse64.S \ - short_dotprod_mmx64.S - -x86_qa_CODE = \ - qa_dotprod_x86.cc \ - qa_float_dotprod_x86.cc \ - qa_complex_dotprod_x86.cc \ - qa_ccomplex_dotprod_x86.cc - -powerpc_CODE = \ - sysconfig_powerpc.cc \ - gr_fir_sysconfig_powerpc.cc \ - gr_cpu_powerpc.cc \ - gr_fir_fff_altivec.cc \ - gr_altivec.c \ - dotprod_fff_altivec.c - -powerpc_qa_CODE = \ - qa_dotprod_powerpc.cc - -armv7_a_CODE = \ - sysconfig_armv7_a.cc \ - gr_fir_sysconfig_armv7_a.cc \ - gr_cpu_armv7_a.cc \ - gr_fir_fff_armv7_a.cc \ - dotprod_fff_armv7_a.c \ - gr_fir_ccf_armv7_a.cc \ - dotprod_ccf_armv7_a.c - -armv7_a_qa_CODE = \ - qa_dotprod_armv7_a.cc - -# -# include each <foo>_CODE entry here... -# -EXTRA_libfilter_la_SOURCES = \ - $(generic_CODE) \ - $(generic_qa_CODE) \ - $(x86_CODE) \ - $(x86_SUBCODE) \ - $(x86_64_SUBCODE) \ - $(x86_qa_CODE) \ - $(powerpc_CODE) \ - $(powerpc_qa_CODE) \ - $(armv7_a_CODE) \ - $(armv7_a_qa_CODE) - - -EXTRA_DIST += \ - 3dnow_float_dotprod_really_simple.S \ - 3dnow_float_dotprod_simple.S \ - $(code_generator) - -# work around automake deficiency -libfilter_la_common_SOURCES = \ - $(GENERATED_CC) \ - gr_adaptive_fir_ccc.cc \ - gr_adaptive_fir_ccf.cc \ - gri_fft_filter_fff_generic.cc \ - gri_fft_filter_ccc_generic.cc \ - gr_fft_filter_ccc.cc \ - gr_fft_filter_fff.cc \ - gr_goertzel_fc.cc \ - gr_filter_delay_fc.cc \ - gr_fractional_interpolator_ff.cc \ - gr_fractional_interpolator_cc.cc \ - gr_hilbert_fc.cc \ - gr_iir_filter_ffd.cc \ - gr_sincos.c \ - gr_single_pole_iir_filter_ff.cc \ - gr_single_pole_iir_filter_cc.cc \ - gri_goertzel.cc \ - gri_mmse_fir_interpolator.cc \ - gri_mmse_fir_interpolator_cc.cc \ - complex_dotprod_generic.cc \ - ccomplex_dotprod_generic.cc \ - float_dotprod_generic.c \ - short_dotprod_generic.c \ - gr_pfb_channelizer_ccf.cc \ - gr_pfb_synthesis_filterbank_ccf.cc\ - gr_pfb_decimator_ccf.cc \ - gr_pfb_interpolator_ccf.cc \ - gr_pfb_arb_resampler_ccf.cc \ - gr_pfb_arb_resampler_fff.cc \ - gr_pfb_clock_sync_ccf.cc \ - gr_pfb_clock_sync_fff.cc \ - gr_dc_blocker_cc.cc \ - gr_dc_blocker_ff.cc - -libfilter_qa_la_common_SOURCES = \ - qa_filter.cc \ - qa_gr_fir_ccf.cc \ - qa_gr_fir_fcc.cc \ - qa_gr_fir_fff.cc \ - qa_gr_fir_ccc.cc \ - qa_gr_fir_scc.cc \ - qa_gr_rotator.cc \ - qa_gri_mmse_fir_interpolator.cc \ - qa_gri_mmse_fir_interpolator_cc.cc \ - qa_gri_fir_filter_with_buffer_ccf.cc \ - qa_gri_fir_filter_with_buffer_ccc.cc \ - qa_gri_fir_filter_with_buffer_fcc.cc \ - qa_gri_fir_filter_with_buffer_fff.cc \ - qa_gri_fir_filter_with_buffer_fsf.cc \ - qa_gri_fir_filter_with_buffer_scc.cc - -if MD_CPU_generic -libfilter_la_SOURCES = $(libfilter_la_common_SOURCES) $(generic_CODE) -libfilter_qa_la_SOURCES = $(libfilter_qa_la_common_SOURCES) $(generic_qa_CODE) -endif - -if MD_CPU_x86 -if MD_SUBCPU_x86_64 -libfilter_la_SOURCES = $(libfilter_la_common_SOURCES) $(x86_64_SUBCODE) $(x86_CODE) -else -libfilter_la_SOURCES = $(libfilter_la_common_SOURCES) $(x86_SUBCODE) $(x86_CODE) -endif - -libfilter_qa_la_SOURCES = $(libfilter_qa_la_common_SOURCES) $(x86_qa_CODE) -endif - -if MD_CPU_powerpc -libfilter_la_SOURCES = $(libfilter_la_common_SOURCES) $(powerpc_CODE) -libfilter_qa_la_SOURCES = $(libfilter_qa_la_common_SOURCES) $(powerpc_qa_CODE) -endif - -if MD_CPU_armv7_a -libfilter_la_SOURCES = $(libfilter_la_common_SOURCES) $(armv7_a_CODE) -libfilter_qa_la_SOURCES = $(libfilter_qa_la_common_SOURCES) $(armv7_a_qa_CODE) -endif - - -grinclude_HEADERS = \ - $(GENERATED_H) \ - complex_dotprod_generic.h \ - complex_dotprod_x86.h \ - fcomplex_dotprod_x86.h \ - ccomplex_dotprod_generic.h \ - ccomplex_dotprod_x86.h \ - float_dotprod_generic.h \ - float_dotprod_x86.h \ - gr_adaptive_fir_ccc.h \ - gr_adaptive_fir_ccf.h \ - gr_altivec.h \ - gr_cpu.h \ - gri_fft_filter_fff_generic.h \ - gri_fft_filter_ccc_generic.h \ - gr_fft_filter_ccc.h \ - gr_fft_filter_fff.h \ - gr_filter_delay_fc.h \ - gr_fir_sysconfig_x86.h \ - gr_fir_sysconfig_powerpc.h \ - gr_fractional_interpolator_ff.h \ - gr_fractional_interpolator_cc.h \ - gr_goertzel_fc.h \ - gr_hilbert_fc.h \ - gr_iir_filter_ffd.h \ - gr_rotator.h \ - gr_sincos.h \ - gr_single_pole_iir.h \ - gr_single_pole_iir_filter_ff.h \ - gr_single_pole_iir_filter_cc.h \ - gr_vec_types.h \ - gri_goertzel.h \ - gri_iir.h \ - gri_mmse_fir_interpolator.h \ - gri_mmse_fir_interpolator_cc.h \ - qa_filter.h \ - short_dotprod_generic.h \ - short_dotprod_x86.h \ - sse_debug.h \ - gr_pfb_channelizer_ccf.h \ - gr_pfb_synthesis_filterbank_ccf.h\ - gr_pfb_decimator_ccf.h \ - gr_pfb_interpolator_ccf.h \ - gr_pfb_arb_resampler_ccf.h \ - gr_pfb_arb_resampler_fff.h \ - gr_pfb_clock_sync_ccf.h \ - gr_pfb_clock_sync_fff.h \ - gr_dc_blocker_cc.h \ - gr_dc_blocker_ff.h - -noinst_HEADERS = \ - assembly.h \ - gcc_x86_cpuid.h \ - dotprod_fff_altivec.h \ - dotprod_fff_armv7_a.h \ - dotprod_ccf_armv7_a.h \ - gr_fir_scc_simd.h \ - gr_fir_scc_x86.h \ - gr_fir_fcc_simd.h \ - gr_fir_fcc_x86.h \ - gr_fir_ccf_simd.h \ - gr_fir_ccf_x86.h \ - gr_fir_ccc_simd.h \ - gr_fir_ccc_x86.h \ - gr_fir_fff_altivec.h \ - gr_fir_fff_armv7_a.h \ - gr_fir_ccf_armv7_a.h \ - gr_fir_fff_simd.h \ - gr_fir_fff_x86.h \ - gr_fir_fsf_simd.h \ - gr_fir_fsf_x86.h \ - interpolator_taps.h \ - qa_complex_dotprod_x86.h \ - qa_ccomplex_dotprod_x86.h \ - qa_dotprod.h \ - qa_float_dotprod_x86.h \ - qa_gr_fir_ccf.h \ - qa_gr_fir_fcc.h \ - qa_gr_fir_fff.h \ - qa_gr_fir_ccc.h \ - qa_gr_fir_scc.h \ - qa_gr_rotator.h \ - qa_gri_mmse_fir_interpolator.h \ - qa_gri_mmse_fir_interpolator_cc.h \ - qa_gri_fir_filter_with_buffer_ccf.h \ - qa_gri_fir_filter_with_buffer_ccc.h \ - qa_gri_fir_filter_with_buffer_fcc.h \ - qa_gri_fir_filter_with_buffer_fff.h \ - qa_gri_fir_filter_with_buffer_fsf.h \ - qa_gri_fir_filter_with_buffer_scc.h - - -swiginclude_HEADERS = \ - filter.i \ - filter_generated.i \ - gr_adaptive_fir_ccc.i \ - gr_adaptive_fir_ccf.i \ - gr_fft_filter_ccc.i \ - gr_fft_filter_fff.i \ - gr_filter_delay_fc.i \ - gr_fractional_interpolator_ff.i \ - gr_fractional_interpolator_cc.i \ - gr_goertzel_fc.i \ - gr_hilbert_fc.i \ - gr_iir_filter_ffd.i \ - gr_single_pole_iir_filter_ff.i \ - gr_single_pole_iir_filter_cc.i \ - gr_pfb_channelizer_ccf.i \ - gr_pfb_synthesis_filterbank_ccf.i\ - gr_pfb_decimator_ccf.i \ - gr_pfb_interpolator_ccf.i \ - gr_pfb_arb_resampler_ccf.i \ - gr_pfb_arb_resampler_fff.i \ - gr_pfb_clock_sync_ccf.i \ - gr_pfb_clock_sync_fff.i \ - gr_dc_blocker_cc.i \ - gr_dc_blocker_ff.i \ - $(GENERATED_I) - - -# Do creation and inclusion of other Makefiles last - -# include the srcdir's Makefile.gen; doing this creates an implicit -# dependency between $(srcdir)/Makefile.in and $(srcdir)/Makefile.gen. -include $(srcdir)/Makefile.gen - -# common way for generating local Makefile.gen -makefile_gen_gen_command = PYTHONPATH=$(top_srcdir)/gnuradio-core/src/python srcdir=$(srcdir) do_makefile=1 do_sources=0 $(PYTHON) $(srcdir)/generate_all.py -include $(top_srcdir)/Makefile.gen.gen - -# common way for generating sources from templates when using -# BUILT_SOURCES, using parallel build protection. -gen_sources = $(BUILT_SOURCES) -gen_sources_deps = $(core_generator) -par_gen_command = PYTHONPATH=$(top_srcdir)/gnuradio-core/src/python srcdir=$(srcdir) $(PYTHON) $(srcdir)/generate_all.py -include $(top_srcdir)/Makefile.par.gen diff --git a/gnuradio-core/src/lib/filter/filter.i b/gnuradio-core/src/lib/filter/filter.i index 8c3bb9eb6..2b7d9d0b7 100644 --- a/gnuradio-core/src/lib/filter/filter.i +++ b/gnuradio-core/src/lib/filter/filter.i @@ -32,7 +32,7 @@ #include <gr_fractional_interpolator_cc.h> #include <gr_goertzel_fc.h> #include <gr_pfb_channelizer_ccf.h> -#include <gr_pfb_synthesis_filterbank_ccf.h> +#include <gr_pfb_synthesizer_ccf.h> #include <gr_pfb_decimator_ccf.h> #include <gr_pfb_interpolator_ccf.h> #include <gr_pfb_arb_resampler_ccf.h> @@ -54,7 +54,7 @@ %include "gr_fractional_interpolator_cc.i" %include "gr_goertzel_fc.i" %include "gr_pfb_channelizer_ccf.i" -%include "gr_pfb_synthesis_filterbank_ccf.i" +%include "gr_pfb_synthesizer_ccf.i" %include "gr_pfb_decimator_ccf.i" %include "gr_pfb_interpolator_ccf.i" %include "gr_pfb_arb_resampler_ccf.i" diff --git a/gnuradio-core/src/lib/filter/gr_pfb_channelizer_ccf.cc b/gnuradio-core/src/lib/filter/gr_pfb_channelizer_ccf.cc index db16a634b..a82d3901c 100644 --- a/gnuradio-core/src/lib/filter/gr_pfb_channelizer_ccf.cc +++ b/gnuradio-core/src/lib/filter/gr_pfb_channelizer_ccf.cc @@ -46,7 +46,7 @@ gr_pfb_channelizer_ccf::gr_pfb_channelizer_ccf (unsigned int numchans, float oversample_rate) : gr_block ("pfb_channelizer_ccf", gr_make_io_signature (numchans, numchans, sizeof(gr_complex)), - gr_make_io_signature (1, 1, numchans*sizeof(gr_complex))), + gr_make_io_signature (1, numchans, sizeof(gr_complex))), d_updated (false), d_numchans(numchans), d_oversample_rate(oversample_rate) { // The over sampling rate must be rationally related to the number of channels @@ -62,11 +62,13 @@ gr_pfb_channelizer_ccf::gr_pfb_channelizer_ccf (unsigned int numchans, set_relative_rate(1.0/intp); d_filters = std::vector<gr_fir_ccf*>(d_numchans); + d_channel_map.resize(d_numchans); // Create an FIR filter for each channel and zero out the taps std::vector<float> vtaps(0, d_numchans); for(unsigned int i = 0; i < d_numchans; i++) { d_filters[i] = gr_fir_util::create_gr_fir_ccf(vtaps); + d_channel_map[i] = i; } // Now, actually set the filters' taps @@ -104,6 +106,7 @@ gr_pfb_channelizer_ccf::~gr_pfb_channelizer_ccf () void gr_pfb_channelizer_ccf::set_taps (const std::vector<float> &taps) { + gruel::scoped_lock guard(d_mutex); unsigned int i,j; unsigned int ntaps = taps.size(); @@ -151,6 +154,33 @@ gr_pfb_channelizer_ccf::print_taps() } } +std::vector< std::vector<float> > +gr_pfb_channelizer_ccf::taps() const +{ + return d_taps; +} + +void +gr_pfb_channelizer_ccf::set_channel_map(const std::vector<int> &map) +{ + gruel::scoped_lock guard(d_mutex); + + if(map.size() > 0) { + unsigned int max = (unsigned int)*std::max_element(map.begin(), map.end()); + unsigned int min = (unsigned int)*std::min_element(map.begin(), map.end()); + if((max >= d_numchans) || (min < 0)) { + throw std::invalid_argument("gr_pfb_channelizer_ccf::set_channel_map: map range out of bounds.\n"); + } + d_channel_map = map; + } +} + +std::vector<int> +gr_pfb_channelizer_ccf::channel_map() const +{ + return d_channel_map; +} + int gr_pfb_channelizer_ccf::general_work (int noutput_items, @@ -158,6 +188,8 @@ gr_pfb_channelizer_ccf::general_work (int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) { + gruel::scoped_lock guard(d_mutex); + gr_complex *in = (gr_complex *) input_items[0]; gr_complex *out = (gr_complex *) output_items[0]; @@ -166,7 +198,9 @@ gr_pfb_channelizer_ccf::general_work (int noutput_items, return 0; // history requirements may have changed. } - int n=1, i=-1, j=0, last; + size_t noutputs = output_items.size(); + + int n=1, i=-1, j=0, oo=0, last; int toconsume = (int)rintf(noutput_items/d_oversample_rate); while(n <= toconsume) { j = 0; @@ -191,8 +225,13 @@ gr_pfb_channelizer_ccf::general_work (int noutput_items, // despin through FFT d_fft->execute(); - memcpy(out, d_fft->get_outbuf(), d_numchans*sizeof(gr_complex)); - out += d_numchans; + + // Send to output channels + for(unsigned int nn = 0; nn < noutputs; nn++) { + out = (gr_complex*)output_items[nn]; + out[oo] = d_fft->get_outbuf()[d_channel_map[nn]]; + } + oo++; } consume_each(toconsume); diff --git a/gnuradio-core/src/lib/filter/gr_pfb_channelizer_ccf.h b/gnuradio-core/src/lib/filter/gr_pfb_channelizer_ccf.h index 8fd5c4f78..040b93e73 100644 --- a/gnuradio-core/src/lib/filter/gr_pfb_channelizer_ccf.h +++ b/gnuradio-core/src/lib/filter/gr_pfb_channelizer_ccf.h @@ -26,6 +26,7 @@ #include <gr_core_api.h> #include <gr_block.h> +#include <gruel/thread.h> class gr_pfb_channelizer_ccf; typedef boost::shared_ptr<gr_pfb_channelizer_ccf> gr_pfb_channelizer_ccf_sptr; @@ -146,6 +147,8 @@ class GR_CORE_API gr_pfb_channelizer_ccf : public gr_block int *d_idxlut; int d_rate_ratio; int d_output_multiple; + std::vector<int> d_channel_map; + gruel::mutex d_mutex; // mutex to protect set/work access /*! * Build the polyphase filterbank decimator. @@ -170,6 +173,49 @@ public: * Print all of the filterbank taps to screen. */ void print_taps(); + + /*! + * Return a vector<vector<>> of the filterbank taps + */ + std::vector<std::vector<float> > taps() const; + + /*! + * Set the channel map. Channels are numbers as: + * + * N/2+1 | ... | N-1 | 0 | 1 | 2 | ... | N/2 + * <------------------- 0 --------------------> + * freq + * + * So output stream 0 comes from channel 0, etc. Setting a new + * channel map allows the user to specify which channel in frequency + * he/she wants to got to which output stream. + * + * The map should have the same number of elements as the number of + * output connections from the block. The minimum value of the map + * is 0 (for the 0th channel) and the maximum number is N-1 where N + * is the number of channels. + * + * We specify M as the number of output connections made where M <= + * N, so only M out of N channels are driven to an output + * stream. The number of items in the channel map should be at least + * M long. If there are more channels specified, any value in the + * map over M-1 will be ignored. If the size of the map is less than + * M the behavior is unknown (we don't wish to check every entry + * into the work function). + * + * This means that if the channelizer is splitting the signal up + * into N channels but only M channels are specified in the map + * (where M <= N), then M output streams must be connected and the + * map and the channel numbers used must be less than N-1. Output + * channel number can be reused, too. By default, the map is + * [0...M-1] with M = N. + */ + void set_channel_map(const std::vector<int> &map); + + /*! + * Gets the current channel map. + */ + std::vector<int> channel_map() const; int general_work (int noutput_items, gr_vector_int &ninput_items, diff --git a/gnuradio-core/src/lib/filter/gr_pfb_channelizer_ccf.i b/gnuradio-core/src/lib/filter/gr_pfb_channelizer_ccf.i index 63e3e0fe6..f5edba5b7 100644 --- a/gnuradio-core/src/lib/filter/gr_pfb_channelizer_ccf.i +++ b/gnuradio-core/src/lib/filter/gr_pfb_channelizer_ccf.i @@ -37,4 +37,9 @@ class gr_pfb_channelizer_ccf : public gr_block ~gr_pfb_channelizer_ccf (); void set_taps (const std::vector<float> &taps); + void print_taps(); + std::vector<std::vector<float> > taps() const; + + void set_channel_map(const std::vector<int> &map); + std::vector<int> channel_map() const; }; diff --git a/gnuradio-core/src/lib/filter/gr_pfb_synthesis_filterbank_ccf.cc b/gnuradio-core/src/lib/filter/gr_pfb_synthesis_filterbank_ccf.cc deleted file mode 100644 index 9fad1bd0d..000000000 --- a/gnuradio-core/src/lib/filter/gr_pfb_synthesis_filterbank_ccf.cc +++ /dev/null @@ -1,169 +0,0 @@ -/* -*- c++ -*- */ -/* - * Copyright 2010 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_pfb_synthesis_filterbank_ccf.h> -#include <gri_fft.h> -#include <gr_io_signature.h> -#include <cstdio> -#include <cstring> - -gr_pfb_synthesis_filterbank_ccf_sptr gr_make_pfb_synthesis_filterbank_ccf - (unsigned int numchans, const std::vector<float> &taps) -{ - return gr_pfb_synthesis_filterbank_ccf_sptr - (new gr_pfb_synthesis_filterbank_ccf (numchans, taps)); -} - - -gr_pfb_synthesis_filterbank_ccf::gr_pfb_synthesis_filterbank_ccf - (unsigned int numchans, const std::vector<float> &taps) - : gr_sync_interpolator ("pfb_synthesis_filterbank_ccf", - gr_make_io_signature (1, numchans, sizeof(gr_complex)), - gr_make_io_signature (1, 1, sizeof(gr_complex)), - numchans), - d_updated (false), d_numchans(numchans) -{ - d_filters = std::vector<gri_fir_filter_with_buffer_ccf*>(d_numchans); - - // Create an FIR filter for each channel and zero out the taps - std::vector<float> vtaps(0, d_numchans); - for(unsigned int i = 0; i < d_numchans; i++) { - d_filters[i] = new gri_fir_filter_with_buffer_ccf(vtaps); - } - - // Now, actually set the filters' taps - set_taps(taps); - - // Create the IFFT to handle the input channel rotations - d_fft = new gri_fft_complex (d_numchans, true); -} - -gr_pfb_synthesis_filterbank_ccf::~gr_pfb_synthesis_filterbank_ccf () -{ - for(unsigned int i = 0; i < d_numchans; i++) { - delete d_filters[i]; - } -} - -void -gr_pfb_synthesis_filterbank_ccf::set_taps (const std::vector<float> &taps) -{ - unsigned int i,j; - - unsigned int ntaps = taps.size(); - d_taps_per_filter = (unsigned int)ceil((double)ntaps/(double)d_numchans); - - // Create d_numchan vectors to store each channel's taps - d_taps.resize(d_numchans); - - // Make a vector of the taps plus fill it out with 0's to fill - // each polyphase filter with exactly d_taps_per_filter - std::vector<float> tmp_taps; - tmp_taps = taps; - while((float)(tmp_taps.size()) < d_numchans*d_taps_per_filter) { - tmp_taps.push_back(0.0); - } - - // Partition the filter - for(i = 0; i < d_numchans; i++) { - // Each channel uses all d_taps_per_filter with 0's if not enough taps to fill out - d_taps[i] = std::vector<float>(d_taps_per_filter, 0); - for(j = 0; j < d_taps_per_filter; j++) { - d_taps[i][j] = tmp_taps[i + j*d_numchans]; // add taps to channels in reverse order - } - - // Build a filter for each channel and add it's taps to it - d_filters[i]->set_taps(d_taps[i]); - } - - // Set the history to ensure enough input items for each filter - set_history (d_taps_per_filter+1); - - d_updated = true; -} - -void -gr_pfb_synthesis_filterbank_ccf::print_taps() -{ - unsigned int i, j; - for(i = 0; i < d_numchans; i++) { - printf("filter[%d]: [", i); - for(j = 0; j < d_taps_per_filter; j++) { - printf(" %.4e", d_taps[i][j]); - } - printf("]\n\n"); - } -} - - -int -gr_pfb_synthesis_filterbank_ccf::work (int noutput_items, - gr_vector_const_void_star &input_items, - gr_vector_void_star &output_items) -{ - gr_complex *in = (gr_complex*) input_items[0]; - gr_complex *out = (gr_complex *) output_items[0]; - int numsigs = input_items.size(); - int ndiff = d_numchans - numsigs; - unsigned int nhalf = (unsigned int)ceil((float)numsigs/2.0f); - - if (d_updated) { - d_updated = false; - return 0; // history requirements may have changed. - } - - unsigned int n, i; - for(n = 0; n < noutput_items/d_numchans; n++) { - // fill up the populated channels based on the - // number of real input streams - for(i = 0; i < nhalf; i++) { - in = (gr_complex*)input_items[i]; - d_fft->get_inbuf()[i] = (in+i)[n]; - } - - // Make the ndiff channels around N/2 0 - for(; i < nhalf+ndiff; i++) { - d_fft->get_inbuf()[i] = gr_complex(0,0); - } - - // Finish off channels with data - for(; i < d_numchans; i++) { - in = (gr_complex*)input_items[i-ndiff]; - d_fft->get_inbuf()[i] = (in+i)[n]; - } - - // spin through IFFT - d_fft->execute(); - - for(i = 0; i < d_numchans; i++) { - out[d_numchans-i-1] = d_filters[d_numchans-i-1]->filter(d_fft->get_outbuf()[i]); - } - - out += d_numchans; - } - - return noutput_items; -} diff --git a/gnuradio-core/src/lib/filter/gr_pfb_synthesis_filterbank_ccf.h b/gnuradio-core/src/lib/filter/gr_pfb_synthesis_filterbank_ccf.h deleted file mode 100644 index 1f772b1dd..000000000 --- a/gnuradio-core/src/lib/filter/gr_pfb_synthesis_filterbank_ccf.h +++ /dev/null @@ -1,100 +0,0 @@ -/* -*- c++ -*- */ -/* - * Copyright 2010 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. - */ - - -#ifndef INCLUDED_GR_PFB_SYNTHESIS_FILTERBANK_CCF_H -#define INCLUDED_GR_PFB_SYNTHESIS_FILTERBANK_CCF_H - -#include <gr_core_api.h> -#include <gr_sync_interpolator.h> -#include <gri_fir_filter_with_buffer_ccf.h> - -class gr_pfb_synthesis_filterbank_ccf; -typedef boost::shared_ptr<gr_pfb_synthesis_filterbank_ccf> gr_pfb_synthesis_filterbank_ccf_sptr; -GR_CORE_API gr_pfb_synthesis_filterbank_ccf_sptr gr_make_pfb_synthesis_filterbank_ccf - (unsigned int numchans, const std::vector<float> &taps); - -class gri_fft_complex; - - -/*! - * \class gr_pfb_synthesis_filterbank_ccf - * - * \brief Polyphase synthesis filterbank with - * gr_complex input, gr_complex output and float taps - * - * \ingroup filter_blk - * \ingroup pfb_blk - */ - -class GR_CORE_API gr_pfb_synthesis_filterbank_ccf : public gr_sync_interpolator -{ - private: - /*! - * Build the polyphase synthesis filterbank. - * \param numchans (unsigned integer) Specifies the number of - channels <EM>M</EM> - * \param taps (vector/list of floats) The prototype filter to - populate the filterbank. - */ - friend GR_CORE_API gr_pfb_synthesis_filterbank_ccf_sptr gr_make_pfb_synthesis_filterbank_ccf - (unsigned int numchans, const std::vector<float> &taps); - - bool d_updated; - unsigned int d_numchans; - unsigned int d_taps_per_filter; - gri_fft_complex *d_fft; - std::vector< gri_fir_filter_with_buffer_ccf*> d_filters; - std::vector< std::vector<float> > d_taps; - - - /*! - * Build the polyphase synthesis filterbank. - * \param numchans (unsigned integer) Specifies the number of - channels <EM>M</EM> - * \param taps (vector/list of floats) The prototype filter - to populate the filterbank. - */ - gr_pfb_synthesis_filterbank_ccf (unsigned int numchans, - const std::vector<float> &taps); - -public: - ~gr_pfb_synthesis_filterbank_ccf (); - - /*! - * Resets the filterbank's filter taps with the new prototype filter - * \param taps (vector/list of floats) The prototype filter to - populate the filterbank. - */ - void set_taps (const std::vector<float> &taps); - - /*! - * Print all of the filterbank taps to screen. - */ - void print_taps(); - - int work (int noutput_items, - gr_vector_const_void_star &input_items, - gr_vector_void_star &output_items); -}; - -#endif diff --git a/gnuradio-core/src/lib/filter/gr_pfb_synthesizer_ccf.cc b/gnuradio-core/src/lib/filter/gr_pfb_synthesizer_ccf.cc new file mode 100644 index 000000000..08fbd3df7 --- /dev/null +++ b/gnuradio-core/src/lib/filter/gr_pfb_synthesizer_ccf.cc @@ -0,0 +1,286 @@ +/* -*- c++ -*- */ +/* + * Copyright 2010,2012 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_pfb_synthesizer_ccf.h> +#include <gri_fft.h> +#include <gr_io_signature.h> +#include <cstdio> +#include <cstring> + +gr_pfb_synthesizer_ccf_sptr gr_make_pfb_synthesizer_ccf + (unsigned int numchans, const std::vector<float> &taps, bool twox) +{ + return gr_pfb_synthesizer_ccf_sptr + (new gr_pfb_synthesizer_ccf (numchans, taps, twox)); +} + + +gr_pfb_synthesizer_ccf::gr_pfb_synthesizer_ccf + (unsigned int numchans, const std::vector<float> &taps, bool twox) + : gr_sync_interpolator ("pfb_synthesizer_ccf", + gr_make_io_signature (1, numchans, sizeof(gr_complex)), + gr_make_io_signature (1, 1, sizeof(gr_complex)), + numchans), + d_updated (false), d_numchans(numchans), d_state(0) +{ + // set up 2x multiplier; if twox==True, set to 2, otherwise to 1 + d_twox = (twox ? 2 : 1); + if(d_numchans % d_twox != 0) { + throw std::invalid_argument("gr_pfb_synthesizer_ccf: number of channels must be even for 2x oversampling.\n"); + } + + d_filters = std::vector<gri_fir_filter_with_buffer_ccf*>(d_twox*d_numchans); + d_channel_map.resize(d_twox*d_numchans); + + // Create an FIR filter for each channel and zero out the taps + std::vector<float> vtaps(0, d_twox*d_numchans); + for(unsigned int i = 0; i < d_twox*d_numchans; i++) { + d_filters[i] = new gri_fir_filter_with_buffer_ccf(vtaps); + d_channel_map[i] = i; + } + + // Now, actually set the filters' taps + set_taps(taps); + + // Create the IFFT to handle the input channel rotations + d_fft = new gri_fft_complex (d_twox*d_numchans, false); + memset(d_fft->get_inbuf(), 0, d_twox*d_numchans*sizeof(gr_complex)); + + set_output_multiple(d_numchans); +} + +gr_pfb_synthesizer_ccf::~gr_pfb_synthesizer_ccf () +{ + for(unsigned int i = 0; i < d_twox*d_numchans; i++) { + delete d_filters[i]; + } +} + +void +gr_pfb_synthesizer_ccf::set_taps(const std::vector<float> &taps) +{ + gruel::scoped_lock guard(d_mutex); + if(d_twox == 1) + set_taps1(taps); + else + set_taps2(taps); +} + +void +gr_pfb_synthesizer_ccf::set_taps1(const std::vector<float> &taps) +{ + unsigned int i,j; + + unsigned int ntaps = taps.size(); + d_taps_per_filter = (unsigned int)ceil((double)ntaps/(double)d_numchans); + + // Create d_numchan vectors to store each channel's taps + d_taps.resize(d_numchans); + + // Make a vector of the taps plus fill it out with 0's to fill + // each polyphase filter with exactly d_taps_per_filter + std::vector<float> tmp_taps; + tmp_taps = taps; + while((float)(tmp_taps.size()) < d_numchans*d_taps_per_filter) { + tmp_taps.push_back(0.0); + } + + // Partition the filter + for(i = 0; i < d_numchans; i++) { + // Each channel uses all d_taps_per_filter with 0's if not enough taps to fill out + d_taps[i] = std::vector<float>(d_taps_per_filter, 0); + for(j = 0; j < d_taps_per_filter; j++) { + d_taps[i][j] = tmp_taps[i + j*d_numchans]; // add taps to channels in reverse order + } + + // Build a filter for each channel and add it's taps to it + d_filters[i]->set_taps(d_taps[i]); + } + + // Set the history to ensure enough input items for each filter + set_history (d_taps_per_filter+1); + + d_updated = true; +} + +void +gr_pfb_synthesizer_ccf::set_taps2 (const std::vector<float> &taps) +{ + unsigned int i,j; + int state = 0; + + unsigned int ntaps = taps.size(); + d_taps_per_filter = (unsigned int)ceil((double)ntaps/(double)d_numchans); + + // Create d_numchan vectors to store each channel's taps + d_taps.resize(d_twox*d_numchans); + + // Make a vector of the taps plus fill it out with 0's to fill + // each polyphase filter with exactly d_taps_per_filter + std::vector<float> tmp_taps; + tmp_taps = taps; + while((float)(tmp_taps.size()) < d_numchans*d_taps_per_filter) { + tmp_taps.push_back(0.0); + } + + // Partition the filter + for(i = 0; i < d_numchans; i++) { + // Each channel uses all d_taps_per_filter with 0's if not enough taps to fill out + d_taps[i] = std::vector<float>(d_taps_per_filter, 0); + d_taps[d_numchans+i] = std::vector<float>(d_taps_per_filter, 0); + state = 0; + for(j = 0; j < d_taps_per_filter; j++) { + // add taps to channels in reverse order + // Zero out every other tap + if(state == 0) { + d_taps[i][j] = tmp_taps[i + j*d_numchans]; + d_taps[d_numchans + i][j] = 0; + state = 1; + } + else { + d_taps[i][j] = 0; + d_taps[d_numchans + i][j] = tmp_taps[i + j*d_numchans]; + state = 0; + } + } + + // Build a filter for each channel and add it's taps to it + d_filters[i]->set_taps(d_taps[i]); + d_filters[d_numchans + i]->set_taps(d_taps[d_numchans + i]); + } + + // Set the history to ensure enough input items for each filter + set_history (d_taps_per_filter+1); + + d_updated = true; +} + +void +gr_pfb_synthesizer_ccf::print_taps() +{ + unsigned int i, j; + for(i = 0; i < d_twox*d_numchans; i++) { + printf("filter[%d]: [", i); + for(j = 0; j < d_taps_per_filter; j++) { + printf(" %.4e", d_taps[i][j]); + } + printf("]\n\n"); + } +} + + +std::vector< std::vector<float> > +gr_pfb_synthesizer_ccf::taps() const +{ + return d_taps; +} + +void +gr_pfb_synthesizer_ccf::set_channel_map(const std::vector<int> &map) +{ + gruel::scoped_lock guard(d_mutex); + + if(map.size() > 0) { + unsigned int max = (unsigned int)*std::max_element(map.begin(), map.end()); + unsigned int min = (unsigned int)*std::min_element(map.begin(), map.end()); + if((max >= d_twox*d_numchans) || (min < 0)) { + throw std::invalid_argument("gr_pfb_synthesizer_ccf::set_channel_map: map range out of bounds.\n"); + } + d_channel_map = map; + + // Zero out fft buffer so that unused channels are always 0 + memset(d_fft->get_inbuf(), 0,d_twox*d_numchans*sizeof(gr_complex)); + } +} + +std::vector<int> +gr_pfb_synthesizer_ccf::channel_map() const +{ + return d_channel_map; +} + +int +gr_pfb_synthesizer_ccf::work (int noutput_items, + gr_vector_const_void_star &input_items, + gr_vector_void_star &output_items) +{ + gruel::scoped_lock guard(d_mutex); + + gr_complex *in = (gr_complex*) input_items[0]; + gr_complex *out = (gr_complex *) output_items[0]; + + if (d_updated) { + d_updated = false; + return 0; // history requirements may have changed. + } + + unsigned int n, i; + size_t ninputs = input_items.size(); + + // Algoritm for critically sampled channels + if(d_twox == 1) { + for(n = 0; n < noutput_items/d_numchans; n++) { + for(i = 0; i < ninputs; i++) { + in = (gr_complex*)input_items[i]; + d_fft->get_inbuf()[d_channel_map[i]] = in[n]; + } + + // spin through IFFT + d_fft->execute(); + + for(i = 0; i < d_numchans; i++) { + out[i] = d_filters[i]->filter(d_fft->get_outbuf()[i]); + } + out += d_numchans; + } + } + + // Algorithm for oversampling by 2x + else { + for(n = 0; n < noutput_items/d_numchans; n++) { + for(i = 0; i < ninputs; i++) { + in = (gr_complex*)input_items[i]; + d_fft->get_inbuf()[d_channel_map[i]] = in[n]; + } + + // spin through IFFT + d_fft->execute(); + + // Output is sum of two filters, but the input buffer to the filters must be circularly + // shifted by numchans every time through, done by using d_state to determine which IFFT + // buffer position to pull from. + for(i = 0; i < d_numchans; i++) { + out[i] = d_filters[i]->filter(d_fft->get_outbuf()[d_state*d_numchans+i]); + out[i] += d_filters[d_numchans+i]->filter(d_fft->get_outbuf()[(d_state^1)*d_numchans+i]); + } + d_state ^= 1; + + out += d_numchans; + } + } + + return noutput_items; +} diff --git a/gnuradio-core/src/lib/filter/gr_pfb_synthesizer_ccf.h b/gnuradio-core/src/lib/filter/gr_pfb_synthesizer_ccf.h new file mode 100644 index 000000000..4c127b22f --- /dev/null +++ b/gnuradio-core/src/lib/filter/gr_pfb_synthesizer_ccf.h @@ -0,0 +1,147 @@ +/* -*- c++ -*- */ +/* + * Copyright 2010,2012 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. + */ + + +#ifndef INCLUDED_GR_PFB_SYNTHESIZER_CCF_H +#define INCLUDED_GR_PFB_SYNTHESIZER_CCF_H + +#include <gr_core_api.h> +#include <gr_sync_interpolator.h> +#include <gri_fir_filter_with_buffer_ccf.h> +#include <gruel/thread.h> + +class gr_pfb_synthesizer_ccf; +typedef boost::shared_ptr<gr_pfb_synthesizer_ccf> gr_pfb_synthesizer_ccf_sptr; +GR_CORE_API gr_pfb_synthesizer_ccf_sptr gr_make_pfb_synthesizer_ccf + (unsigned int numchans, const std::vector<float> &taps, bool twox=false); + +class gri_fft_complex; + + +/*! + * \class gr_pfb_synthesizer_ccf + * + * \brief Polyphase synthesis filterbank with + * gr_complex input, gr_complex output and float taps + * + * \ingroup filter_blk + * \ingroup pfb_blk + */ + +class GR_CORE_API gr_pfb_synthesizer_ccf : public gr_sync_interpolator +{ + private: + /*! + * Build the polyphase synthesis filterbank. + * \param numchans (unsigned integer) Specifies the number of + channels <EM>M</EM> + * \param taps (vector/list of floats) The prototype filter to + populate the filterbank. + * \param twox (bool) use 2x oversampling or not (default is no) + */ + friend GR_CORE_API gr_pfb_synthesizer_ccf_sptr gr_make_pfb_synthesizer_ccf + (unsigned int numchans, const std::vector<float> &taps, bool twox); + + bool d_updated; + unsigned int d_numchans; + unsigned int d_taps_per_filter; + gri_fft_complex *d_fft; + std::vector< gri_fir_filter_with_buffer_ccf*> d_filters; + std::vector< std::vector<float> > d_taps; + int d_state; + std::vector<int> d_channel_map; + unsigned int d_twox; + gruel::mutex d_mutex; // mutex to protect set/work access + + /*! + * \brief Tap setting algorithm for critically sampled channels + */ + void set_taps1(const std::vector<float> &taps); + + /*! + * \brief Tap setting algorithm for 2x over-sampled channels + */ + void set_taps2(const std::vector<float> &taps); + + /*! + * Build the polyphase synthesis filterbank. + * \param numchans (unsigned integer) Specifies the number of + channels <EM>M</EM> + * \param taps (vector/list of floats) The prototype filter + to populate the filterbank. + * \param twox (bool) use 2x oversampling or not (default is no) + */ + gr_pfb_synthesizer_ccf (unsigned int numchans, + const std::vector<float> &taps, + bool twox); + +public: + ~gr_pfb_synthesizer_ccf (); + + /*! + * Resets the filterbank's filter taps with the new prototype filter + * \param taps (vector/list of floats) The prototype filter to + populate the filterbank. + */ + void set_taps (const std::vector<float> &taps); + + /*! + * Print all of the filterbank taps to screen. + */ + void print_taps(); + + /*! + * Return a vector<vector<>> of the filterbank taps + */ + std::vector<std::vector<float> > taps() const; + + /*! + * Set the channel map. Channels are numbers as: + * N/2+1 | ... | N-1 | 0 | 1 | 2 | ... | N/2 + * <------------------- 0 --------------------> + * freq + * + * So input stream 0 goes to channel 0, etc. Setting a new channel + * map allows the user to specify where in frequency he/she wants + * the input stream to go. This is especially useful to avoid + * putting signals into the channels on the edge of the spectrum + * which can either wrap around (in the case of odd number of + * channels) and be affected by filter rolloff in the transmitter. + * + * The map must be at least the number of streams being sent to the + * block. Less and the algorithm will not have enough data to + * properly setup the buffers. Any more channels specified will be + * ignored. + */ + void set_channel_map(const std::vector<int> &map); + + /*! + * Gets the current channel map. + */ + std::vector<int> channel_map() const; + + int work (int noutput_items, + gr_vector_const_void_star &input_items, + gr_vector_void_star &output_items); +}; + +#endif diff --git a/gnuradio-core/src/lib/filter/gr_pfb_synthesis_filterbank_ccf.i b/gnuradio-core/src/lib/filter/gr_pfb_synthesizer_ccf.i index 02a9f0255..1e2c057ba 100644 --- a/gnuradio-core/src/lib/filter/gr_pfb_synthesis_filterbank_ccf.i +++ b/gnuradio-core/src/lib/filter/gr_pfb_synthesizer_ccf.i @@ -1,6 +1,6 @@ /* -*- c++ -*- */ /* - * Copyright 2010 Free Software Foundation, Inc. + * Copyright 2010,2012 Free Software Foundation, Inc. * * This file is part of GNU Radio * @@ -20,19 +20,25 @@ * Boston, MA 02110-1301, USA. */ -GR_SWIG_BLOCK_MAGIC(gr,pfb_synthesis_filterbank_ccf); +GR_SWIG_BLOCK_MAGIC(gr,pfb_synthesizer_ccf); -gr_pfb_synthesis_filterbank_ccf_sptr gr_make_pfb_synthesis_filterbank_ccf - (unsigned int numchans, const std::vector<float> &taps); +gr_pfb_synthesizer_ccf_sptr gr_make_pfb_synthesizer_ccf + (unsigned int numchans, const std::vector<float> &taps, bool twox=false); -class gr_pfb_synthesis_filterbank_ccf : public gr_sync_interpolator +class gr_pfb_synthesizer_ccf : public gr_sync_interpolator { private: - gr_pfb_synthesis_filterbank_ccf (unsigned int numchans, - const std::vector<float> &taps); - + gr_pfb_synthesizer_ccf (unsigned int numchans, + const std::vector<float> &taps, + bool twox=false); + public: - ~gr_pfb_synthesis_filterbank_ccf (); + ~gr_pfb_synthesizer_ccf (); void set_taps (const std::vector<float> &taps); + void print_taps(); + std::vector< std::vector<float> > taps() const; + + void set_channel_map(const std::vector<int> &map); + std::vector<int> channel_map() const; }; diff --git a/gnuradio-core/src/lib/general/.gitignore b/gnuradio-core/src/lib/general/.gitignore deleted file mode 100644 index 795dc793c..000000000 --- a/gnuradio-core/src/lib/general/.gitignore +++ /dev/null @@ -1,308 +0,0 @@ -/Makefile -/Makefile.in -/.la -/.lo -/.deps -/.libs -/*.la -/*.lo -/*.pyc -/generate-stamp -/gr_constants.cc -/GrFIRfilterCCC.cc -/GrFIRfilterCCC.h -/GrFIRfilterCCF.cc -/GrFIRfilterCCF.h -/GrFIRfilterFCC.cc -/GrFIRfilterFCC.h -/GrFIRfilterFFF.cc -/GrFIRfilterFFF.h -/GrFIRfilterFSF.cc -/GrFIRfilterFSF.h -/GrFIRfilterSCC.cc -/GrFIRfilterSCC.h -/GrFIRfilterSIS.cc -/GrFIRfilterSIS.h -/GrFreqXlatingFIRfilterCCC.cc -/GrFreqXlatingFIRfilterCCC.h -/GrFreqXlatingFIRfilterCCF.cc -/GrFreqXlatingFIRfilterCCF.h -/GrFreqXlatingFIRfilterFCC.cc -/GrFreqXlatingFIRfilterFCC.h -/GrFreqXlatingFIRfilterFCF.cc -/GrFreqXlatingFIRfilterFCF.h -/GrFreqXlatingFIRfilterSCC.cc -/GrFreqXlatingFIRfilterSCC.h -/GrFreqXlatingFIRfilterSCF.cc -/GrFreqXlatingFIRfilterSCF.h -/gr_fir_CCC.cc -/gr_fir_CCC.h -/gr_fir_CCC_generic.cc -/gr_fir_CCC_generic.h -/gr_fir_CCF.cc -/gr_fir_CCF.h -/gr_fir_CCF_generic.cc -/gr_fir_CCF_generic.h -/gr_fir_FCC.cc -/gr_fir_FCC.h -/gr_fir_FCC_generic.cc -/gr_fir_FCC_generic.h -/gr_fir_FFF.cc -/gr_fir_FFF.h -/gr_fir_FFF_generic.cc -/gr_fir_FFF_generic.h -/gr_fir_FSF.cc -/gr_fir_FSF.h -/gr_fir_FSF_generic.cc -/gr_fir_FSF_generic.h -/gr_fir_SCC.cc -/gr_fir_SCC.h -/gr_fir_SCC_generic.cc -/gr_fir_SCC_generic.h -/gr_fir_SIS.cc -/gr_fir_SIS.h -/gr_fir_SIS_generic.cc -/gr_fir_SIS_generic.h -/gr_fir_sysconfig.cc -/gr_fir_sysconfig.h -/gr_fir_sysconfig_generic.cc -/gr_fir_sysconfig_generic.h -/gr_fir_util.cc -/gr_fir_util.h -/GrFIRfilterCCC.i -/GrFIRfilterCCF.i -/GrFIRfilterFCC.i -/GrFIRfilterFFF.i -/GrFIRfilterFSF.i -/GrFIRfilterSCC.i -/GrFIRfilterSIS.i -/GrFreqXlatingFIRfilterCCC.i -/GrFreqXlatingFIRfilterCCF.i -/GrFreqXlatingFIRfilterFCC.i -/GrFreqXlatingFIRfilterFCF.i -/GrFreqXlatingFIRfilterSCC.i -/GrFreqXlatingFIRfilterSCF.i -/# --- generated files --- -/gr_add_cc.cc -/gr_add_cc.h -/gr_add_cc.i -/gr_add_const_c.cc -/gr_add_const_c.h -/gr_add_const_c.i -/gr_add_const_cc.cc -/gr_add_const_cc.h -/gr_add_const_cc.i -/gr_add_const_f.cc -/gr_add_const_f.h -/gr_add_const_f.i -/gr_add_const_ff.cc -/gr_add_const_ff.h -/gr_add_const_ff.i -/gr_add_const_i.cc -/gr_add_const_i.h -/gr_add_const_i.i -/gr_add_const_ii.cc -/gr_add_const_ii.h -/gr_add_const_ii.i -/gr_add_const_s.cc -/gr_add_const_s.h -/gr_add_const_s.i -/gr_add_const_sf.cc -/gr_add_const_sf.h -/gr_add_const_sf.i -/gr_add_const_ss.cc -/gr_add_const_ss.h -/gr_add_const_ss.i -/gr_add_const_vcc.cc -/gr_add_const_vcc.h -/gr_add_const_vcc.i -/gr_add_const_vff.cc -/gr_add_const_vff.h -/gr_add_const_vff.i -/gr_add_const_vii.cc -/gr_add_const_vii.h -/gr_add_const_vii.i -/gr_add_const_vss.cc -/gr_add_const_vss.h -/gr_add_const_vss.i -/gr_add_ii.cc -/gr_add_ii.h -/gr_add_ii.i -/gr_add_ss.cc -/gr_add_ss.h -/gr_add_ss.i -/gr_add_vcc.cc -/gr_add_vcc.h -/gr_add_vcc.i -/gr_add_vff.cc -/gr_add_vff.h -/gr_add_vff.i -/gr_add_vii.cc -/gr_add_vii.h -/gr_add_vii.i -/gr_add_vss.cc -/gr_add_vss.h -/gr_add_vss.i -/gr_divide_cc.cc -/gr_divide_cc.h -/gr_divide_cc.i -/gr_divide_ff.cc -/gr_divide_ff.h -/gr_divide_ff.i -/gr_divide_ii.cc -/gr_divide_ii.h -/gr_divide_ii.i -/gr_divide_ss.cc -/gr_divide_ss.h -/gr_divide_ss.i -/gr_multiply_const_ii.cc -/gr_multiply_const_ii.h -/gr_multiply_const_ii.i -/gr_multiply_const_ss.cc -/gr_multiply_const_ss.h -/gr_multiply_const_ss.i -/gr_multiply_ii.cc -/gr_multiply_ii.h -/gr_multiply_ii.i -/gr_multiply_ss.cc -/gr_multiply_ss.h -/gr_multiply_ss.i -/gr_multiply_vcc.cc -/gr_multiply_vcc.h -/gr_multiply_vcc.i -/gr_multiply_vff.cc -/gr_multiply_vff.h -/gr_multiply_vff.i -/gr_multiply_vii.cc -/gr_multiply_vii.h -/gr_multiply_vii.i -/gr_multiply_vss.cc -/gr_multiply_vss.h -/gr_multiply_vss.i -/gr_multiply_const_vcc.cc -/gr_multiply_const_vcc.h -/gr_multiply_const_vcc.i -/gr_multiply_const_vff.cc -/gr_multiply_const_vff.h -/gr_multiply_const_vff.i -/gr_multiply_const_vii.cc -/gr_multiply_const_vii.h -/gr_multiply_const_vii.i -/gr_multiply_const_vss.cc -/gr_multiply_const_vss.h -/gr_multiply_const_vss.i -/gr_noise_source_c.cc -/gr_noise_source_c.h -/gr_noise_source_c.i -/gr_noise_source_f.cc -/gr_noise_source_f.h -/gr_noise_source_f.i -/gr_noise_source_i.cc -/gr_noise_source_i.h -/gr_noise_source_i.i -/gr_noise_source_s.cc -/gr_noise_source_s.h -/gr_noise_source_s.i -/gr_sig_source_c.cc -/gr_sig_source_c.h -/gr_sig_source_c.i -/gr_sig_source_f.cc -/gr_sig_source_f.h -/gr_sig_source_f.i -/gr_sig_source_i.cc -/gr_sig_source_i.h -/gr_sig_source_i.i -/gr_sig_source_s.cc -/gr_sig_source_s.h -/gr_sig_source_s.i -/gr_sub_cc.cc -/gr_sub_cc.h -/gr_sub_cc.i -/gr_sub_ff.cc -/gr_sub_ff.h -/gr_sub_ff.i -/gr_sub_ii.cc -/gr_sub_ii.h -/gr_sub_ii.i -/gr_sub_ss.cc -/gr_sub_ss.h -/gr_sub_ss.i -/gr_vector_sink_b.cc -/gr_vector_sink_b.h -/gr_vector_sink_b.i -/gr_vector_sink_c.cc -/gr_vector_sink_c.h -/gr_vector_sink_c.i -/gr_vector_sink_f.cc -/gr_vector_sink_f.h -/gr_vector_sink_f.i -/gr_vector_sink_i.cc -/gr_vector_sink_i.h -/gr_vector_sink_i.i -/gr_vector_sink_s.cc -/gr_vector_sink_s.h -/gr_vector_sink_s.i -/gr_vector_source_b.cc -/gr_vector_source_b.h -/gr_vector_source_b.i -/gr_vector_source_c.cc -/gr_vector_source_c.h -/gr_vector_source_c.i -/gr_vector_source_f.cc -/gr_vector_source_f.h -/gr_vector_source_f.i -/gr_vector_source_i.cc -/gr_vector_source_i.h -/gr_vector_source_i.i -/gr_vector_source_s.cc -/gr_vector_source_s.h -/gr_vector_source_s.i -/gr_mute_cc.cc -/gr_mute_cc.h -/gr_mute_cc.i -/gr_mute_ff.cc -/gr_mute_ff.h -/gr_mute_ff.i -/gr_mute_ii.cc -/gr_mute_ii.h -/gr_mute_ii.i -/gr_mute_ss.cc -/gr_mute_ss.h -/gr_mute_ss.i -/gr_chunks_to_symbols_bc.cc -/gr_chunks_to_symbols_bc.h -/gr_chunks_to_symbols_bc.i -/gr_chunks_to_symbols_bf.cc -/gr_chunks_to_symbols_bf.h -/gr_chunks_to_symbols_bf.i -/gr_chunks_to_symbols_ic.cc -/gr_chunks_to_symbols_ic.h -/gr_chunks_to_symbols_ic.i -/gr_chunks_to_symbols_if.cc -/gr_chunks_to_symbols_if.h -/gr_chunks_to_symbols_if.i -/gr_chunks_to_symbols_sc.cc -/gr_chunks_to_symbols_sc.h -/gr_chunks_to_symbols_sc.i -/gr_chunks_to_symbols_sf.cc -/gr_chunks_to_symbols_sf.h -/gr_chunks_to_symbols_sf.i -/gr_packed_to_unpacked_bb.cc -/gr_packed_to_unpacked_bb.h -/gr_packed_to_unpacked_bb.i -/gr_packed_to_unpacked_ii.cc -/gr_packed_to_unpacked_ii.h -/gr_packed_to_unpacked_ii.i -/gr_packed_to_unpacked_ss.cc -/gr_packed_to_unpacked_ss.h -/gr_packed_to_unpacked_ss.i -/gr_unpacked_to_packed_bb.cc -/gr_unpacked_to_packed_bb.h -/gr_unpacked_to_packed_bb.i -/gr_unpacked_to_packed_ii.cc -/gr_unpacked_to_packed_ii.h -/gr_unpacked_to_packed_ii.i -/gr_unpacked_to_packed_ss.cc -/gr_unpacked_to_packed_ss.h -/gr_unpacked_to_packed_ss.i -/# --- end generated files --- diff --git a/gnuradio-core/src/lib/general/Makefile.am b/gnuradio-core/src/lib/general/Makefile.am deleted file mode 100644 index ba1f686ab..000000000 --- a/gnuradio-core/src/lib/general/Makefile.am +++ /dev/null @@ -1,491 +0,0 @@ -# -# Copyright 2001,2002,2004,2006-2012 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. -# - -include $(top_srcdir)/Makefile.common - -# $(WITH_INCLUDES) must _always_ be last -AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES) $(CPPUNIT_INCLUDES) \ - $(FFTW3F_CPPFLAGS) $(GSL_CPPFLAGS) $(WITH_INCLUDES) - -noinst_LTLIBRARIES = libgeneral.la libgeneral-qa.la - -BUILT_SOURCES = - -# ---------------------------------------------------------------- - -EXTRA_DIST += \ - gen_sine_table.py \ - gr_constants.cc.in - -libgeneral_la_SOURCES = \ - complex_vec_test.cc \ - gr_add_ff.cc \ - gr_additive_scrambler_bb.cc \ - gr_agc_cc.cc \ - gr_agc_ff.cc \ - gr_agc2_cc.cc \ - gr_agc2_ff.cc \ - gr_align_on_samplenumbers_ss.cc \ - gr_bin_statistics_f.cc \ - gr_bytes_to_syms.cc \ - gr_char_to_float.cc \ - gr_char_to_short.cc \ - gr_check_counting_s.cc \ - gr_check_lfsr_32k_s.cc \ - gr_circular_file.cc \ - gr_complex_to_interleaved_short.cc \ - gr_complex_to_xxx.cc \ - gr_conjugate_cc.cc \ - gr_copy.cc \ - gr_count_bits.cc \ - gr_cpfsk_bc.cc \ - gr_cpm.cc \ - gr_ctcss_squelch_ff.cc \ - gr_decode_ccsds_27_fb.cc \ - gr_deinterleave.cc \ - gr_delay.cc \ - gr_diff_decoder_bb.cc \ - gr_diff_encoder_bb.cc \ - gr_diff_phasor_cc.cc \ - gr_dpll_bb.cc \ - gr_encode_ccsds_27_bb.cc \ - gr_fake_channel_coder_pp.cc \ - gr_fast_atan2f.cc \ - gr_feedforward_agc_cc.cc \ - gr_feval.cc \ - gr_fft_vcc.cc \ - gr_fft_vcc_fftw.cc \ - gr_fft_vfc.cc \ - gr_firdes.cc \ - gr_float_to_char.cc \ - gr_float_to_complex.cc \ - gr_float_to_int.cc \ - gr_float_to_short.cc \ - gr_float_to_uchar.cc \ - gr_fmdet_cf.cc \ - gr_frequency_modulator_fc.cc \ - gr_fxpt.cc \ - gr_framer_sink_1.cc \ - gr_glfsr_source_b.cc \ - gr_glfsr_source_f.cc \ - gr_head.cc \ - gr_interleave.cc \ - gr_interleaved_short_to_complex.cc \ - gr_iqcomp_cc.cc \ - gr_keep_one_in_n.cc \ - gr_kludge_copy.cc \ - gr_lfsr_32k_source_s.cc \ - gr_map_bb.cc \ - gr_misc.cc \ - gr_multiply_cc.cc \ - gr_multiply_ff.cc \ - gr_multiply_const_cc.cc \ - gr_multiply_const_ff.cc \ - gr_multiply_conjugate_cc.cc \ - gr_nlog10_ff.cc \ - gr_nop.cc \ - gr_null_sink.cc \ - gr_null_source.cc \ - gr_pa_2x2_phase_combiner.cc \ - gr_packet_sink.cc \ - gr_peak_detector2_fb.cc \ - gr_phase_modulator_fc.cc \ - gr_pll_carriertracking_cc.cc \ - gr_pll_freqdet_cf.cc \ - gr_pll_refout_cc.cc \ - gr_pn_correlator_cc.cc \ - gr_constants.cc \ - gr_prefs.cc \ - gr_probe_avg_mag_sqrd_c.cc \ - gr_probe_avg_mag_sqrd_cf.cc \ - gr_probe_avg_mag_sqrd_f.cc \ - gr_pwr_squelch_cc.cc \ - gr_pwr_squelch_ff.cc \ - gr_quadrature_demod_cf.cc \ - gr_rail_ff.cc \ - gr_random.cc \ - gr_regenerate_bb.cc \ - gr_remez.cc \ - gr_repeat.cc \ - gr_reverse.cc \ - gr_rms_cf.cc \ - gr_rms_ff.cc \ - gr_short_to_char.cc \ - gr_short_to_float.cc \ - gr_int_to_float.cc \ - gr_simple_correlator.cc \ - gr_simple_framer.cc \ - gr_simple_squelch_cc.cc \ - gr_skiphead.cc \ - gr_squash_ff.cc \ - gr_squelch_base_cc.cc \ - gr_squelch_base_ff.cc \ - gr_stream_mux.cc \ - gr_stream_to_streams.cc \ - gr_stream_to_vector.cc \ - gr_streams_to_stream.cc \ - gr_streams_to_vector.cc \ - gr_stretch_ff.cc \ - gr_test.cc \ - gr_threshold_ff.cc \ - gr_throttle.cc \ - gr_transcendental.cc \ - gr_uchar_to_float.cc \ - gr_vco_f.cc \ - gr_vector_to_stream.cc \ - gr_vector_to_streams.cc \ - gr_wavelet_ff.cc \ - gr_wvps_ff.cc \ - gri_add_const_ss_generic.cc \ - gri_char_to_float.cc \ - gri_control_loop.cc \ - gri_debugger_hook.cc \ - gri_fft.cc \ - gri_float_to_char.cc \ - gri_float_to_int.cc \ - gri_float_to_short.cc \ - gri_float_to_uchar.cc \ - gri_glfsr.cc \ - gri_interleaved_short_to_complex.cc \ - gri_int_to_float.cc \ - gri_short_to_float.cc \ - gri_uchar_to_float.cc \ - malloc16.c \ - gr_unpack_k_bits_bb.cc \ - gr_descrambler_bb.cc \ - gr_scrambler_bb.cc \ - gr_probe_mpsk_snr_c.cc \ - gr_probe_density_b.cc \ - gr_annotator_alltoall.cc \ - gr_annotator_1to1.cc \ - gr_burst_tagger.cc \ - gr_correlate_access_code_tag_bb.cc - -libgeneral_qa_la_SOURCES = \ - qa_general.cc \ - qa_gr_circular_file.cc \ - qa_gr_cpm.cc \ - qa_gr_firdes.cc \ - qa_gr_fxpt.cc \ - qa_gr_fxpt_nco.cc \ - qa_gr_fxpt_vco.cc \ - qa_gr_math.cc \ - qa_gri_lfsr.cc - -grinclude_HEADERS = \ - gr_core_api.h \ - complex_vec_test.h \ - gr_additive_scrambler_bb.h \ - gr_add_ff.h \ - gr_agc_cc.h \ - gr_agc_ff.h \ - gr_agc2_cc.h \ - gr_agc2_ff.h \ - gr_align_on_samplenumbers_ss.h \ - gr_bin_statistics_f.h \ - gr_bytes_to_syms.h \ - gr_char_to_float.h \ - gr_char_to_short.h \ - gr_check_counting_s.h \ - gr_check_lfsr_32k_s.h \ - gr_circular_file.h \ - gr_complex_to_interleaved_short.h \ - gr_complex_to_xxx.h \ - gr_conjugate_cc.h \ - gr_copy.h \ - gr_count_bits.h \ - gr_cpfsk_bc.h \ - gr_cpm.h \ - gr_ctcss_squelch_ff.h \ - gr_decode_ccsds_27_fb.h \ - gr_diff_decoder_bb.h \ - gr_diff_encoder_bb.h \ - gr_deinterleave.h \ - gr_delay.h \ - gr_diff_phasor_cc.h \ - gr_dpll_bb.h \ - gr_encode_ccsds_27_bb.h \ - gr_expj.h \ - gr_fake_channel_coder_pp.h \ - gr_feedforward_agc_cc.h \ - gr_feval.h \ - gr_fft_vcc.h \ - gr_fft_vcc_fftw.h \ - gr_fft_vfc.h \ - gr_firdes.h \ - gr_float_to_char.h \ - gr_float_to_complex.h \ - gr_float_to_int.h \ - gr_float_to_short.h \ - gr_float_to_uchar.h \ - gr_fmdet_cf.h \ - gr_framer_sink_1.h \ - gr_frequency_modulator_fc.h \ - gr_fxpt.h \ - gr_fxpt_nco.h \ - gr_fxpt_vco.h \ - gr_glfsr_source_b.h \ - gr_glfsr_source_f.h \ - gr_head.h \ - gr_interleave.h \ - gr_interleaved_short_to_complex.h \ - gr_iqcomp_cc.h \ - gr_keep_one_in_n.h \ - gr_kludge_copy.h \ - gr_lfsr_32k_source_s.h \ - gr_log2_const.h \ - gr_map_bb.h \ - gr_math.h \ - gr_misc.h \ - gr_multiply_cc.h \ - gr_multiply_ff.h \ - gr_multiply_const_cc.h \ - gr_multiply_const_ff.h \ - gr_multiply_conjugate_cc.h \ - gr_nco.h \ - gr_nlog10_ff.h \ - gr_nop.h \ - gr_null_sink.h \ - gr_null_source.h \ - gr_pa_2x2_phase_combiner.h \ - gr_packet_sink.h \ - gr_peak_detector2_fb.h \ - gr_phase_modulator_fc.h \ - gr_pll_carriertracking_cc.h \ - gr_pll_freqdet_cf.h \ - gr_pll_refout_cc.h \ - gr_pn_correlator_cc.h \ - gr_constants.h \ - gr_prefs.h \ - gr_probe_avg_mag_sqrd_c.h \ - gr_probe_avg_mag_sqrd_cf.h \ - gr_probe_avg_mag_sqrd_f.h \ - gr_pwr_squelch_cc.h \ - gr_pwr_squelch_ff.h \ - gr_quadrature_demod_cf.h \ - gr_rail_ff.h \ - gr_random.h \ - gr_regenerate_bb.h \ - gr_remez.h \ - gr_repeat.h \ - gr_reverse.h \ - gr_rms_cf.h \ - gr_rms_ff.h \ - gr_short_to_char.h \ - gr_short_to_float.h \ - gr_int_to_float.h \ - gr_simple_correlator.h \ - gr_simple_framer.h \ - gr_simple_framer_sync.h \ - gr_simple_squelch_cc.h \ - gr_squash_ff.h \ - gr_skiphead.h \ - gr_squelch_base_cc.h \ - gr_squelch_base_ff.h \ - gr_stream_mux.h \ - gr_stream_to_streams.h \ - gr_stream_to_vector.h \ - gr_streams_to_stream.h \ - gr_streams_to_vector.h \ - gr_stretch_ff.h \ - gr_test_types.h \ - gr_test.h \ - gr_threshold_ff.h \ - gr_throttle.h \ - gr_transcendental.h \ - gr_uchar_to_float.h \ - gr_vco.h \ - gr_vco_f.h \ - gr_vector_to_stream.h \ - gr_vector_to_streams.h \ - gr_wavelet_ff.h \ - gr_wvps_ff.h \ - gri_add_const_ss.h \ - gri_agc_cc.h \ - gri_agc_ff.h \ - gri_agc2_cc.h \ - gri_agc2_ff.h \ - gri_char_to_float.h \ - gri_control_loop.h \ - gri_debugger_hook.h \ - gri_fft.h \ - gri_float_to_char.h \ - gri_float_to_int.h \ - gri_float_to_short.h \ - gri_float_to_uchar.h \ - gri_lfsr.h \ - gri_glfsr.h \ - gri_interleaved_short_to_complex.h \ - gri_int_to_float.h \ - gri_lfsr_15_1_0.h \ - gri_lfsr_32k.h \ - gri_short_to_float.h \ - gri_uchar_to_float.h \ - malloc16.h \ - random.h \ - gr_unpack_k_bits_bb.h \ - gr_descrambler_bb.h \ - gr_scrambler_bb.h \ - gr_probe_mpsk_snr_c.h \ - gr_probe_density_b.h \ - gr_annotator_alltoall.h \ - gr_annotator_1to1.h \ - gr_burst_tagger.h \ - gr_correlate_access_code_tag_bb.h - -noinst_HEADERS = \ - qa_general.h \ - qa_gr_circular_file.h \ - qa_gr_cpm.h \ - qa_gr_firdes.h \ - qa_gr_fxpt.h \ - qa_gr_fxpt_nco.h \ - qa_gr_fxpt_vco.h \ - qa_gri_lfsr.h \ - sine_table.h \ - qa_gr_math.h - -swiginclude_HEADERS = \ - complex_vec_test.i \ - general.i \ - gr_additive_scrambler_bb.i \ - gr_add_ff.i \ - gr_agc_cc.i \ - gr_agc_ff.i \ - gr_agc2_cc.i \ - gr_agc2_ff.i \ - gr_align_on_samplenumbers_ss.i \ - gr_bin_statistics_f.i \ - gr_bytes_to_syms.i \ - gr_char_to_float.i \ - gr_char_to_short.i \ - gr_check_counting_s.i \ - gr_check_lfsr_32k_s.i \ - gr_complex_to_interleaved_short.i \ - gr_complex_to_xxx.i \ - gr_conjugate_cc.i \ - gr_copy.i \ - gr_cpfsk_bc.i \ - gr_cpm.i \ - gr_ctcss_squelch_ff.i \ - gr_decode_ccsds_27_fb.i \ - gr_diff_decoder_bb.i \ - gr_diff_encoder_bb.i \ - gr_diff_phasor_cc.i \ - gr_dpll_bb.i \ - gr_deinterleave.i \ - gr_delay.i \ - gr_encode_ccsds_27_bb.i \ - gr_fake_channel_coder_pp.i \ - gr_feedforward_agc_cc.i \ - gr_feval.i \ - gr_fft_vcc.i \ - gr_fft_vfc.i \ - gr_firdes.i \ - gr_float_to_char.i \ - gr_float_to_complex.i \ - gr_float_to_int.i \ - gr_float_to_short.i \ - gr_float_to_uchar.i \ - gr_fmdet_cf.i \ - gr_frequency_modulator_fc.i \ - gr_framer_sink_1.i \ - gr_glfsr_source_b.i \ - gr_glfsr_source_f.i \ - gr_head.i \ - gr_int_to_float.i \ - gr_interleave.i \ - gr_interleaved_short_to_complex.i \ - gr_iqcomp_cc.i \ - gr_keep_one_in_n.i \ - gr_kludge_copy.i \ - gr_lfsr_32k_source_s.i \ - gr_map_bb.i \ - gr_multiply_cc.i \ - gr_multiply_ff.i \ - gr_multiply_const_cc.i \ - gr_multiply_const_ff.i \ - gr_multiply_conjugate_cc.i \ - gr_nlog10_ff.i \ - gr_nop.i \ - gr_null_sink.i \ - gr_null_source.i \ - gr_pa_2x2_phase_combiner.i \ - gr_packet_sink.i \ - gr_peak_detector2_fb.i \ - gr_phase_modulator_fc.i \ - gr_pll_carriertracking_cc.i \ - gr_pll_freqdet_cf.i \ - gr_pll_refout_cc.i \ - gr_pn_correlator_cc.i \ - gr_constants.i \ - gr_prefs.i \ - gr_probe_avg_mag_sqrd_c.i \ - gr_probe_avg_mag_sqrd_cf.i \ - gr_probe_avg_mag_sqrd_f.i \ - gr_pwr_squelch_cc.i \ - gr_pwr_squelch_ff.i \ - gr_quadrature_demod_cf.i \ - gr_rail_ff.i \ - gr_regenerate_bb.i \ - gr_remez.i \ - gr_rms_cf.i \ - gr_rms_ff.i \ - gr_repeat.i \ - gr_short_to_char.i \ - gr_short_to_float.i \ - gr_simple_correlator.i \ - gr_simple_framer.i \ - gr_simple_squelch_cc.i \ - gr_skiphead.i \ - gr_squash_ff.i \ - gr_squelch_base_cc.i \ - gr_squelch_base_ff.i \ - gr_stream_mux.i \ - gr_stream_to_streams.i \ - gr_stream_to_vector.i \ - gr_streams_to_stream.i \ - gr_streams_to_vector.i \ - gr_stretch_ff.i \ - gr_test.i \ - gr_threshold_ff.i \ - gr_throttle.i \ - gr_transcendental.i \ - gr_uchar_to_float.i \ - gr_vco_f.i \ - gr_vector_to_stream.i \ - gr_vector_to_streams.i \ - gr_unpack_k_bits_bb.i \ - gr_wavelet_ff.i \ - gr_wvps_ff.i \ - gri_agc_cc.i \ - gri_agc_ff.i \ - gri_agc2_cc.i \ - gri_agc2_ff.i \ - gri_control_loop.i \ - gr_descrambler_bb.i \ - gr_scrambler_bb.i \ - gr_probe_mpsk_snr_c.i \ - gr_probe_density_b.i \ - gr_annotator_alltoall.i \ - gr_annotator_1to1.i \ - gr_burst_tagger.i \ - gr_correlate_access_code_tag_bb.i diff --git a/gnuradio-core/src/lib/gengen/.gitignore b/gnuradio-core/src/lib/gengen/.gitignore deleted file mode 100644 index 2f53eba9a..000000000 --- a/gnuradio-core/src/lib/gengen/.gitignore +++ /dev/null @@ -1,433 +0,0 @@ -/Makefile -/Makefile.in -/.la -/.lo -/.deps -/.libs -/*.la -/*.lo -/*.pyc -/generate-stamp -/GrFIRfilterCCC.cc -/GrFIRfilterCCC.h -/GrFIRfilterCCF.cc -/GrFIRfilterCCF.h -/GrFIRfilterFCC.cc -/GrFIRfilterFCC.h -/GrFIRfilterFFF.cc -/GrFIRfilterFFF.h -/GrFIRfilterFSF.cc -/GrFIRfilterFSF.h -/GrFIRfilterSCC.cc -/GrFIRfilterSCC.h -/GrFIRfilterSIS.cc -/GrFIRfilterSIS.h -/GrFreqXlatingFIRfilterCCC.cc -/GrFreqXlatingFIRfilterCCC.h -/GrFreqXlatingFIRfilterCCF.cc -/GrFreqXlatingFIRfilterCCF.h -/GrFreqXlatingFIRfilterFCC.cc -/GrFreqXlatingFIRfilterFCC.h -/GrFreqXlatingFIRfilterFCF.cc -/GrFreqXlatingFIRfilterFCF.h -/GrFreqXlatingFIRfilterSCC.cc -/GrFreqXlatingFIRfilterSCC.h -/GrFreqXlatingFIRfilterSCF.cc -/GrFreqXlatingFIRfilterSCF.h -/gr_fir_CCC.cc -/gr_fir_CCC.h -/gr_fir_CCC_generic.cc -/gr_fir_CCC_generic.h -/gr_fir_CCF.cc -/gr_fir_CCF.h -/gr_fir_CCF_generic.cc -/gr_fir_CCF_generic.h -/gr_fir_FCC.cc -/gr_fir_FCC.h -/gr_fir_FCC_generic.cc -/gr_fir_FCC_generic.h -/gr_fir_FFF.cc -/gr_fir_FFF.h -/gr_fir_FFF_generic.cc -/gr_fir_FFF_generic.h -/gr_fir_FSF.cc -/gr_fir_FSF.h -/gr_fir_FSF_generic.cc -/gr_fir_FSF_generic.h -/gr_fir_SCC.cc -/gr_fir_SCC.h -/gr_fir_SCC_generic.cc -/gr_fir_SCC_generic.h -/gr_fir_SIS.cc -/gr_fir_SIS.h -/gr_fir_SIS_generic.cc -/gr_fir_SIS_generic.h -/gr_fir_sysconfig.cc -/gr_fir_sysconfig.h -/gr_fir_sysconfig_generic.cc -/gr_fir_sysconfig_generic.h -/gr_fir_util.cc -/gr_fir_util.h -/GrFIRfilterCCC.i -/GrFIRfilterCCF.i -/GrFIRfilterFCC.i -/GrFIRfilterFFF.i -/GrFIRfilterFSF.i -/GrFIRfilterSCC.i -/GrFIRfilterSIS.i -/GrFreqXlatingFIRfilterCCC.i -/GrFreqXlatingFIRfilterCCF.i -/GrFreqXlatingFIRfilterFCC.i -/GrFreqXlatingFIRfilterFCF.i -/GrFreqXlatingFIRfilterSCC.i -/GrFreqXlatingFIRfilterSCF.i -/# --- generated files --- -/gr_add_cc.cc -/gr_add_cc.h -/gr_add_cc.i -/gr_add_const_c.cc -/gr_add_const_cc.cc -/gr_add_const_cc.h -/gr_add_const_cc.i -/gr_add_const_c.h -/gr_add_const_c.i -/gr_add_const_f.cc -/gr_add_const_ff.cc -/gr_add_const_ff.h -/gr_add_const_ff.i -/gr_add_const_f.h -/gr_add_const_f.i -/gr_add_const_i.cc -/gr_add_const_i.h -/gr_add_const_i.i -/gr_add_const_ii.cc -/gr_add_const_ii.h -/gr_add_const_ii.i -/gr_add_const_s.cc -/gr_add_const_sf.cc -/gr_add_const_sf.h -/gr_add_const_sf.i -/gr_add_const_s.h -/gr_add_const_s.i -/gr_add_const_ss.cc -/gr_add_const_ss.h -/gr_add_const_ss.i -/gr_add_const_vcc.cc -/gr_add_const_vcc.h -/gr_add_const_vcc.i -/gr_add_const_vff.cc -/gr_add_const_vff.h -/gr_add_const_vff.i -/gr_add_const_vii.cc -/gr_add_const_vii.h -/gr_add_const_vii.i -/gr_add_const_vss.cc -/gr_add_const_vss.h -/gr_add_const_vss.i -/gr_add_ii.cc -/gr_add_ii.h -/gr_add_ii.i -/gr_add_ss.cc -/gr_add_ss.h -/gr_add_ss.i -/gr_and_bb.cc -/gr_and_bb.h -/gr_and_bb.i -/gr_and_ii.cc -/gr_and_ii.h -/gr_and_ii.i -/gr_and_ss.cc -/gr_and_ss.h -/gr_and_ss.i -/gr_argmax_fs.cc -/gr_argmax_fs.h -/gr_argmax_fs.i -/gr_argmax_is.cc -/gr_argmax_is.h -/gr_argmax_is.i -/gr_argmax_ss.cc -/gr_argmax_ss.h -/gr_argmax_ss.i -/gr_chunks_to_symbols_bc.cc -/gr_chunks_to_symbols_bc.h -/gr_chunks_to_symbols_bc.i -/gr_chunks_to_symbols_bf.cc -/gr_chunks_to_symbols_bf.h -/gr_chunks_to_symbols_bf.i -/gr_chunks_to_symbols_ic.cc -/gr_chunks_to_symbols_ic.h -/gr_chunks_to_symbols_ic.i -/gr_chunks_to_symbols_if.cc -/gr_chunks_to_symbols_if.h -/gr_chunks_to_symbols_if.i -/gr_chunks_to_symbols_sc.cc -/gr_chunks_to_symbols_sc.h -/gr_chunks_to_symbols_sc.i -/gr_chunks_to_symbols_sf.cc -/gr_chunks_to_symbols_sf.h -/gr_chunks_to_symbols_sf.i -/gr_divide_cc.cc -/gr_divide_cc.h -/gr_divide_cc.i -/gr_divide_ff.cc -/gr_divide_ff.h -/gr_divide_ff.i -/gr_divide_ii.cc -/gr_divide_ii.h -/gr_divide_ii.i -/gr_divide_ss.cc -/gr_divide_ss.h -/gr_divide_ss.i -/gr_integrate_cc.cc -/gr_integrate_cc.h -/gr_integrate_cc.i -/gr_integrate_ff.cc -/gr_integrate_ff.h -/gr_integrate_ff.i -/gr_integrate_ii.cc -/gr_integrate_ii.h -/gr_integrate_ii.i -/gr_integrate_ss.cc -/gr_integrate_ss.h -/gr_integrate_ss.i -/gr_max_ff.cc -/gr_max_ff.h -/gr_max_ff.i -/gr_max_ii.cc -/gr_max_ii.h -/gr_max_ii.i -/gr_max_ss.cc -/gr_max_ss.h -/gr_max_ss.i -/gr_multiply_const_ii.cc -/gr_multiply_const_ii.h -/gr_multiply_const_ii.i -/gr_multiply_const_ss.cc -/gr_multiply_const_ss.h -/gr_multiply_const_ss.i -/gr_multiply_const_vcc.cc -/gr_multiply_const_vcc.h -/gr_multiply_const_vcc.i -/gr_multiply_const_vff.cc -/gr_multiply_const_vff.h -/gr_multiply_const_vff.i -/gr_multiply_const_vii.cc -/gr_multiply_const_vii.h -/gr_multiply_const_vii.i -/gr_multiply_const_vss.cc -/gr_multiply_const_vss.h -/gr_multiply_const_vss.i -/gr_multiply_ii.cc -/gr_multiply_ii.h -/gr_multiply_ii.i -/gr_multiply_ss.cc -/gr_multiply_ss.h -/gr_multiply_ss.i -/gr_mute_cc.cc -/gr_mute_cc.h -/gr_mute_cc.i -/gr_mute_ff.cc -/gr_mute_ff.h -/gr_mute_ff.i -/gr_mute_ii.cc -/gr_mute_ii.h -/gr_mute_ii.i -/gr_mute_ss.cc -/gr_mute_ss.h -/gr_mute_ss.i -/gr_noise_source_c.cc -/gr_noise_source_c.h -/gr_noise_source_c.i -/gr_noise_source_f.cc -/gr_noise_source_f.h -/gr_noise_source_f.i -/gr_noise_source_i.cc -/gr_noise_source_i.h -/gr_noise_source_i.i -/gr_noise_source_s.cc -/gr_noise_source_s.h -/gr_noise_source_s.i -/gr_not_bb.cc -/gr_not_bb.h -/gr_not_bb.i -/gr_not_ii.cc -/gr_not_ii.h -/gr_not_ii.i -/gr_not_ss.cc -/gr_not_ss.h -/gr_not_ss.i -/gr_or_bb.cc -/gr_or_bb.h -/gr_or_bb.i -/gr_or_ii.cc -/gr_or_ii.h -/gr_or_ii.i -/gr_or_ss.cc -/gr_or_ss.h -/gr_or_ss.i -/gr_packed_to_unpacked_bb.cc -/gr_packed_to_unpacked_bb.h -/gr_packed_to_unpacked_bb.i -/gr_packed_to_unpacked_ii.cc -/gr_packed_to_unpacked_ii.h -/gr_packed_to_unpacked_ii.i -/gr_packed_to_unpacked_ss.cc -/gr_packed_to_unpacked_ss.h -/gr_packed_to_unpacked_ss.i -/gr_peak_detector_fb.cc -/gr_peak_detector_fb.h -/gr_peak_detector_fb.i -/gr_peak_detector_ff.cc -/gr_peak_detector_ff.h -/gr_peak_detector_ff.i -/gr_peak_detector_ib.cc -/gr_peak_detector_ib.h -/gr_peak_detector_ib.i -/gr_peak_detector_ii.cc -/gr_peak_detector_ii.h -/gr_peak_detector_ii.i -/gr_peak_detector_sb.cc -/gr_peak_detector_sb.h -/gr_peak_detector_sb.i -/gr_peak_detector_ss.cc -/gr_peak_detector_ss.h -/gr_peak_detector_ss.i -/gr_prefix.cc -/gr_probe_signal_b.cc -/gr_probe_signal_b.h -/gr_probe_signal_b.i -/gr_probe_signal_s.cc -/gr_probe_signal_s.h -/gr_probe_signal_s.i -/gr_probe_signal_i.cc -/gr_probe_signal_i.h -/gr_probe_signal_i.i -/gr_probe_signal_f.cc -/gr_probe_signal_f.h -/gr_probe_signal_f.i -/gr_probe_signal_c.cc -/gr_probe_signal_c.h -/gr_probe_signal_c.i -/gr_probe_signal_vb.cc -/gr_probe_signal_vb.h -/gr_probe_signal_vb.i -/gr_probe_signal_vs.cc -/gr_probe_signal_vs.h -/gr_probe_signal_vs.i -/gr_probe_signal_vi.cc -/gr_probe_signal_vi.h -/gr_probe_signal_vi.i -/gr_probe_signal_vf.cc -/gr_probe_signal_vf.h -/gr_probe_signal_vf.i -/gr_probe_signal_vc.cc -/gr_probe_signal_vc.h -/gr_probe_signal_vc.i -/gr_sample_and_hold_bb.cc -/gr_sample_and_hold_bb.h -/gr_sample_and_hold_bb.i -/gr_sample_and_hold_ff.cc -/gr_sample_and_hold_ff.h -/gr_sample_and_hold_ff.i -/gr_sample_and_hold_ii.cc -/gr_sample_and_hold_ii.h -/gr_sample_and_hold_ii.i -/gr_sample_and_hold_ss.cc -/gr_sample_and_hold_ss.h -/gr_sample_and_hold_ss.i -/gr_sig_source_c.cc -/gr_sig_source_c.h -/gr_sig_source_c.i -/gr_sig_source_f.cc -/gr_sig_source_f.h -/gr_sig_source_f.i -/gr_sig_source_i.cc -/gr_sig_source_i.h -/gr_sig_source_i.i -/gr_sig_source_s.cc -/gr_sig_source_s.h -/gr_sig_source_s.i -/gr_sub_cc.cc -/gr_sub_cc.h -/gr_sub_cc.i -/gr_sub_ff.cc -/gr_sub_ff.h -/gr_sub_ff.i -/gr_sub_ii.cc -/gr_sub_ii.h -/gr_sub_ii.i -/gr_sub_ss.cc -/gr_sub_ss.h -/gr_sub_ss.i -/gr_unpacked_to_packed_bb.cc -/gr_unpacked_to_packed_bb.h -/gr_unpacked_to_packed_bb.i -/gr_unpacked_to_packed_ii.cc -/gr_unpacked_to_packed_ii.h -/gr_unpacked_to_packed_ii.i -/gr_unpacked_to_packed_ss.cc -/gr_unpacked_to_packed_ss.h -/gr_unpacked_to_packed_ss.i -/gr_vector_sink_b.cc -/gr_vector_sink_b.h -/gr_vector_sink_b.i -/gr_vector_sink_c.cc -/gr_vector_sink_c.h -/gr_vector_sink_c.i -/gr_vector_sink_f.cc -/gr_vector_sink_f.h -/gr_vector_sink_f.i -/gr_vector_sink_i.cc -/gr_vector_sink_i.h -/gr_vector_sink_i.i -/gr_vector_sink_s.cc -/gr_vector_sink_s.h -/gr_vector_sink_s.i -/gr_vector_source_b.cc -/gr_vector_source_b.h -/gr_vector_source_b.i -/gr_vector_source_c.cc -/gr_vector_source_c.h -/gr_vector_source_c.i -/gr_vector_source_f.cc -/gr_vector_source_f.h -/gr_vector_source_f.i -/gr_vector_source_i.cc -/gr_vector_source_i.h -/gr_vector_source_i.i -/gr_vector_source_s.cc -/gr_vector_source_s.h -/gr_vector_source_s.i -/gr_xor_bb.cc -/gr_xor_bb.h -/gr_xor_bb.i -/gr_xor_ii.cc -/gr_xor_ii.h -/gr_xor_ii.i -/gr_xor_ss.cc -/gr_xor_ss.h -/gr_xor_ss.i -/gr_moving_average_cc.cc -/gr_moving_average_cc.h -/gr_moving_average_cc.i -/gr_moving_average_ff.cc -/gr_moving_average_ff.h -/gr_moving_average_ff.i -/gr_moving_average_ss.cc -/gr_moving_average_ss.h -/gr_moving_average_ss.i -/gr_moving_average_ii.cc -/gr_moving_average_ii.h -/gr_moving_average_ii.i -/gr_and_const_bb.cc -/gr_and_const_ss.h -/gr_and_const_ss.i -/gr_and_const_ii.cc -/gr_and_const_bb.h -/gr_and_const_ss.cc -/gr_and_const_bb.i -/gr_and_const_ii.h -/gr_and_const_ii.i -/# --- end generated files --- -/stamp-* -/gengen_generated.i diff --git a/gnuradio-core/src/lib/gengen/Makefile.am b/gnuradio-core/src/lib/gengen/Makefile.am deleted file mode 100644 index e2f65c5da..000000000 --- a/gnuradio-core/src/lib/gengen/Makefile.am +++ /dev/null @@ -1,165 +0,0 @@ -# -# Copyright 2001,2002,2004,2006,2007,2008,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. -# - -include $(top_srcdir)/Makefile.common - -AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES) $(CPPUNIT_INCLUDES) $(WITH_INCLUDES) - -#noinst_LTLIBRARIES = libgengen.la libgengen-qa.la -noinst_LTLIBRARIES = libgengen.la - -# ---------------------------------------------------------------- -# these scripts generate code - -core_generator = \ - generate_all.py \ - generate_common.py \ - gr_add_XX.cc.t \ - gr_add_XX.h.t \ - gr_add_XX.i.t \ - gr_add_const_XX.cc.t \ - gr_add_const_XX.h.t \ - gr_add_const_XX.i.t \ - gr_add_const_vXX.cc.t \ - gr_add_const_vXX.h.t \ - gr_add_const_vXX.i.t \ - gr_argmax_XX.cc.t \ - gr_argmax_XX.h.t \ - gr_argmax_XX.i.t \ - gr_chunks_to_symbols_XX.cc.t \ - gr_chunks_to_symbols_XX.h.t \ - gr_chunks_to_symbols_XX.i.t \ - gr_divide_XX.cc.t \ - gr_divide_XX.h.t \ - gr_divide_XX.i.t \ - gr_integrate_XX.cc.t \ - gr_integrate_XX.h.t \ - gr_integrate_XX.i.t \ - gr_max_XX.cc.t \ - gr_max_XX.h.t \ - gr_max_XX.i.t \ - gr_multiply_XX.cc.t \ - gr_multiply_XX.h.t \ - gr_multiply_XX.i.t \ - gr_multiply_const_XX.cc.t \ - gr_multiply_const_XX.h.t \ - gr_multiply_const_XX.i.t \ - gr_multiply_const_vXX.cc.t \ - gr_multiply_const_vXX.h.t \ - gr_multiply_const_vXX.i.t \ - gr_mute_XX.cc.t \ - gr_mute_XX.h.t \ - gr_mute_XX.i.t \ - gr_noise_source_X.cc.t \ - gr_noise_source_X.h.t \ - gr_noise_source_X.i.t \ - gr_packed_to_unpacked_XX.cc.t \ - gr_packed_to_unpacked_XX.h.t \ - gr_packed_to_unpacked_XX.i.t \ - gr_peak_detector_XX.cc.t \ - gr_peak_detector_XX.h.t \ - gr_peak_detector_XX.i.t \ - gr_probe_signal_X.cc.t \ - gr_probe_signal_X.h.t \ - gr_probe_signal_X.i.t \ - gr_probe_signal_vX.cc.t \ - gr_probe_signal_vX.h.t \ - gr_probe_signal_vX.i.t \ - gr_sample_and_hold_XX.cc.t \ - gr_sample_and_hold_XX.h.t \ - gr_sample_and_hold_XX.i.t \ - gr_sig_source_X.cc.t \ - gr_sig_source_X.h.t \ - gr_sig_source_X.i.t \ - gr_sub_XX.cc.t \ - gr_sub_XX.h.t \ - gr_sub_XX.i.t \ - gr_unpacked_to_packed_XX.cc.t \ - gr_unpacked_to_packed_XX.h.t \ - gr_unpacked_to_packed_XX.i.t \ - gr_vector_source_X.cc.t \ - gr_vector_source_X.h.t \ - gr_vector_source_X.i.t \ - gr_vector_sink_X.cc.t \ - gr_vector_sink_X.h.t \ - gr_vector_sink_X.i.t \ - gr_xor_XX.cc.t \ - gr_xor_XX.h.t \ - gr_xor_XX.i.t \ - gr_and_XX.cc.t \ - gr_and_XX.h.t \ - gr_and_XX.i.t \ - gr_and_const_XX.cc.t \ - gr_and_const_XX.h.t \ - gr_and_const_XX.i.t \ - gr_or_XX.cc.t \ - gr_or_XX.h.t \ - gr_or_XX.i.t \ - gr_not_XX.cc.t \ - gr_not_XX.h.t \ - gr_not_XX.i.t \ - gr_moving_average_XX.cc.t \ - gr_moving_average_XX.h.t \ - gr_moving_average_XX.i.t - -# Source built by Python into $(builddir) -BUILT_SOURCES += \ - $(GENERATED_H) \ - $(GENERATED_I) \ - $(GENERATED_CC) \ - gengen_generated.i - -# ---------------------------------------------------------------- - -EXTRA_DIST += \ - $(core_generator) - -libgengen_la_SOURCES = \ - $(GENERATED_CC) - -grinclude_HEADERS = \ - $(GENERATED_H) \ - gr_endianness.h \ - gr_noise_type.h \ - gr_sig_source_waveform.h - -swiginclude_HEADERS = \ - $(GENERATED_I) \ - gr_endianness.i \ - gengen.i \ - gengen_generated.i - -# Do creation and inclusion of other Makefiles last - -# include the srcdir's Makefile.gen; doing this creates an implicit -# dependency between $(srcdir)/Makefile.in and $(srcdir)/Makefile.gen. -include $(srcdir)/Makefile.gen - -# common way for generating local Makefile.gen -makefile_gen_gen_command = PYTHONPATH=$(top_srcdir)/gnuradio-core/src/python srcdir=$(srcdir) do_makefile=1 do_sources=0 $(PYTHON) $(srcdir)/generate_all.py -include $(top_srcdir)/Makefile.gen.gen - -# common way for generating sources from templates when using -# BUILT_SOURCES, using parallel build protection. -gen_sources = $(BUILT_SOURCES) -gen_sources_deps = $(core_generator) -par_gen_command = PYTHONPATH=$(top_srcdir)/gnuradio-core/src/python srcdir=$(srcdir) $(PYTHON) $(srcdir)/generate_all.py -include $(top_srcdir)/Makefile.par.gen diff --git a/gnuradio-core/src/lib/hier/.gitignore b/gnuradio-core/src/lib/hier/.gitignore deleted file mode 100644 index 89a768d46..000000000 --- a/gnuradio-core/src/lib/hier/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/Makefile -/Makefile.in -/.libs -/.deps diff --git a/gnuradio-core/src/lib/hier/Makefile.am b/gnuradio-core/src/lib/hier/Makefile.am deleted file mode 100644 index 369feef75..000000000 --- a/gnuradio-core/src/lib/hier/Makefile.am +++ /dev/null @@ -1,37 +0,0 @@ -# -# Copyright 2009,2010 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. -# - -include $(top_srcdir)/Makefile.common - - -AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES) $(WITH_INCLUDES) - -noinst_LTLIBRARIES = libhier.la - -libhier_la_SOURCES = \ - gr_channel_model.cc - -grinclude_HEADERS = \ - gr_channel_model.h - -swiginclude_HEADERS = \ - hier.i \ - gr_channel_model.i diff --git a/gnuradio-core/src/lib/io/.gitignore b/gnuradio-core/src/lib/io/.gitignore deleted file mode 100644 index a02b6ff73..000000000 --- a/gnuradio-core/src/lib/io/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -/Makefile -/Makefile.in -/.la -/.lo -/.deps -/.libs -/*.la -/*.lo diff --git a/gnuradio-core/src/lib/io/Makefile.am b/gnuradio-core/src/lib/io/Makefile.am deleted file mode 100644 index 442d5e3a9..000000000 --- a/gnuradio-core/src/lib/io/Makefile.am +++ /dev/null @@ -1,116 +0,0 @@ -# -# Copyright 2001,2003,2004,2006,2007,2008 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. -# - -include $(top_srcdir)/Makefile.common - - -AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES) $(WITH_INCLUDES) - -noinst_LTLIBRARIES = libio.la - - -libio_la_SOURCES = \ - gr_file_sink.cc \ - gr_file_sink_base.cc \ - gr_file_source.cc \ - gr_file_descriptor_sink.cc \ - gr_file_descriptor_source.cc \ - gr_histo_sink_f.cc \ - gr_message_sink.cc \ - gr_message_source.cc \ - gr_oscope_guts.cc \ - gr_oscope_sink_f.cc \ - gr_oscope_sink_x.cc \ - i2c.cc \ - i2c_bitbang.cc \ - i2c_bbio.cc \ - i2c_bbio_pp.cc \ - microtune_4702.cc \ - microtune_4937.cc \ - microtune_4702_eval_board.cc \ - microtune_4937_eval_board.cc \ - microtune_xxxx.cc \ - microtune_xxxx_eval_board.cc \ - ppio.cc \ - ppio_ppdev.cc \ - sdr_1000.cc \ - gr_udp_sink.cc \ - gr_udp_source.cc \ - gr_wavfile_sink.cc \ - gr_wavfile_source.cc \ - gri_wavfile.cc \ - gr_tagged_file_sink.cc - -grinclude_HEADERS = \ - gr_file_sink.h \ - gr_file_sink_base.h \ - gr_file_source.h \ - gr_file_descriptor_sink.h \ - gr_file_descriptor_source.h \ - gr_histo_sink_f.h \ - gr_message_sink.h \ - gr_message_source.h \ - gr_oscope_guts.h \ - gr_oscope_sink_f.h \ - gr_oscope_sink_x.h \ - gr_trigger_mode.h \ - i2c.h \ - i2c_bitbang.h \ - i2c_bbio.h \ - i2c_bbio_pp.h \ - microtune_4702.h \ - microtune_4937.h \ - microtune_4702_eval_board.h \ - microtune_4937_eval_board.h \ - microtune_eval_board_defs.h \ - microtune_xxxx.h \ - microtune_xxxx_eval_board.h \ - ppio.h \ - ppio_ppdev.h \ - sdr_1000.h \ - gr_udp_sink.h \ - gr_udp_source.h \ - gr_wavfile_source.h \ - gr_wavfile_sink.h \ - gri_wavfile.h \ - gr_tagged_file_sink.h - -swiginclude_HEADERS = \ - io.i \ - gr_file_sink.i \ - gr_file_sink_base.i \ - gr_file_source.i \ - gr_file_descriptor_sink.i \ - gr_file_descriptor_source.i \ - gr_histo_sink.i \ - gr_message_sink.i \ - gr_message_source.i \ - gr_oscope_sink.i \ - microtune_xxxx_eval_board.i \ - microtune_4702_eval_board.i \ - microtune_4937_eval_board.i \ - ppio.i \ - sdr_1000.i \ - gr_udp_sink.i \ - gr_udp_source.i \ - gr_wavfile_source.i \ - gr_wavfile_sink.i \ - gr_tagged_file_sink.i diff --git a/gnuradio-core/src/lib/io/gr_wavfile_sink.cc b/gnuradio-core/src/lib/io/gr_wavfile_sink.cc index a96aadc72..88b232343 100644 --- a/gnuradio-core/src/lib/io/gr_wavfile_sink.cc +++ b/gnuradio-core/src/lib/io/gr_wavfile_sink.cc @@ -184,6 +184,7 @@ gr_wavfile_sink::work (int noutput_items, int nwritten; + gruel::scoped_lock guard(d_mutex); // hold mutex for duration of this block do_update(); // update: d_fp is reqd if (!d_fp) // drop output on the floor return noutput_items; @@ -254,7 +255,6 @@ gr_wavfile_sink::do_update() return; } - gruel::scoped_lock guard(d_mutex); // hold mutex for duration of this block if (d_fp) { close_wav(); } diff --git a/gnuradio-core/src/lib/io/gr_wavfile_sink.h b/gnuradio-core/src/lib/io/gr_wavfile_sink.h index 5fd3eaadc..6a6b7ebf0 100644 --- a/gnuradio-core/src/lib/io/gr_wavfile_sink.h +++ b/gnuradio-core/src/lib/io/gr_wavfile_sink.h @@ -86,6 +86,13 @@ private: short convert_to_short(float sample); /*! + * \brief If any file changes have occurred, update now. This is called + * internally by work() and thus doesn't usually need to be called by + * hand. + */ + void do_update(); + + /*! * \brief Writes information to the WAV header which is not available * a-priori (chunk size etc.) and closes the file. Not thread-safe and * assumes d_fp is a valid file pointer, should thus only be called by @@ -108,13 +115,6 @@ public: void close(); /*! - * \brief If any file changes have occurred, update now. This is called - * internally by work() and thus doesn't usually need to be called by - * hand. - */ - void do_update(); - - /*! * \brief Set the sample rate. This will not affect the WAV file * currently opened. Any following open() calls will use this new * sample rate. diff --git a/gnuradio-core/src/lib/missing/.gitignore b/gnuradio-core/src/lib/missing/.gitignore deleted file mode 100644 index a02b6ff73..000000000 --- a/gnuradio-core/src/lib/missing/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -/Makefile -/Makefile.in -/.la -/.lo -/.deps -/.libs -/*.la -/*.lo diff --git a/gnuradio-core/src/lib/missing/Makefile.am b/gnuradio-core/src/lib/missing/Makefile.am deleted file mode 100644 index 1cc6014a1..000000000 --- a/gnuradio-core/src/lib/missing/Makefile.am +++ /dev/null @@ -1,46 +0,0 @@ -# -# Copyright 2003,2004,2008,2009,2011 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. -# - -include $(top_srcdir)/Makefile.common - -AM_CPPFLAGS = $(GRUEL_INCLUDES) $(GNURADIO_INCLUDES) $(WITH_INCLUDES) - -EXTRA_DIST += \ - getopt.h \ - getopt.c \ - gettimeofday.c \ - posix_memalign.cc \ - posix_memalign.h \ - usleep.c - -noinst_LTLIBRARIES = libmissing.la - -libmissing_la_common_SOURCES = \ - bug_work_around_8.cc - -powerpc_CODE = \ - posix_memalign.cc - -if MD_CPU_powerpc -libmissing_la_SOURCES = $(libmissing_la_common_SOURCES) $(powerpc_CODE) -else -libmissing_la_SOURCES = $(libmissing_la_common_SOURCES) -endif diff --git a/gnuradio-core/src/lib/reed-solomon/.gitignore b/gnuradio-core/src/lib/reed-solomon/.gitignore deleted file mode 100644 index f137f5c67..000000000 --- a/gnuradio-core/src/lib/reed-solomon/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -/Makefile -/Makefile.in -/.la -/.lo -/.deps -/.libs -/*.la -/*.lo -/rstest diff --git a/gnuradio-core/src/lib/reed-solomon/Makefile.am b/gnuradio-core/src/lib/reed-solomon/Makefile.am deleted file mode 100644 index 5548f4280..000000000 --- a/gnuradio-core/src/lib/reed-solomon/Makefile.am +++ /dev/null @@ -1,55 +0,0 @@ -# -# Copyright 2002,2008 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. -# - -include $(top_srcdir)/Makefile.common - -# Note, this Makefile.am only builds the char versions of the reed soloman routines. -# If you need the int versions too, please figure out how to add them *cleanly* to -# this Makefile.am. - -AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES) $(CPPUNIT_INCLUDES) $(WITH_INCLUDES) - -TESTS = rstest - -EXTRA_DIST += \ - README.karn - -noinst_LTLIBRARIES = librs.la - -noinst_PROGRAMS = \ - rstest - -librs_la_SOURCES = \ - encode_rs.c \ - decode_rs.c \ - init_rs.c - -grinclude_HEADERS = \ - rs.h - -noinst_HEADERS = \ - ccsds.h \ - char.h \ - int.h \ - fixed.h - -rstest_SOURCES = rstest.c exercise.c -rstest_LDADD = librs.la diff --git a/gnuradio-core/src/lib/runtime/.gitignore b/gnuradio-core/src/lib/runtime/.gitignore deleted file mode 100644 index a02b6ff73..000000000 --- a/gnuradio-core/src/lib/runtime/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -/Makefile -/Makefile.in -/.la -/.lo -/.deps -/.libs -/*.la -/*.lo diff --git a/gnuradio-core/src/lib/runtime/Makefile.am b/gnuradio-core/src/lib/runtime/Makefile.am deleted file mode 100644 index 38da3d5fd..000000000 --- a/gnuradio-core/src/lib/runtime/Makefile.am +++ /dev/null @@ -1,165 +0,0 @@ -# -# Copyright 2003,2004,2007,2008,2009,2010,2011 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. -# - -include $(top_srcdir)/Makefile.common - -AM_CPPFLAGS = $(GRUEL_INCLUDES) $(STD_DEFINES_AND_INCLUDES) $(CPPUNIT_INCLUDES) $(WITH_INCLUDES) - -noinst_LTLIBRARIES = libruntime.la libruntime-qa.la - -libruntime_la_LIBADD = \ - $(SHM_OPEN_LIBS) - - -libruntime_la_SOURCES = \ - gr_basic_block.cc \ - gr_flowgraph.cc \ - gr_flat_flowgraph.cc \ - gr_block.cc \ - gr_block_detail.cc \ - gr_block_executor.cc \ - gr_hier_block2.cc \ - gr_hier_block2_detail.cc \ - gr_buffer.cc \ - gr_dispatcher.cc \ - gr_error_handler.cc \ - gr_io_signature.cc \ - gr_local_sighandler.cc \ - gr_message.cc \ - gr_msg_accepter.cc \ - gr_msg_handler.cc \ - gr_msg_queue.cc \ - gr_pagesize.cc \ - gr_preferences.cc \ - gr_realtime.cc \ - gr_scheduler.cc \ - gr_scheduler_sts.cc \ - gr_scheduler_tpb.cc \ - gr_single_threaded_scheduler.cc \ - gr_sptr_magic.cc \ - gr_sync_block.cc \ - gr_sync_decimator.cc \ - gr_sync_interpolator.cc \ - gr_sys_paths.cc \ - gr_top_block.cc \ - gr_top_block_impl.cc \ - gr_tpb_detail.cc \ - gr_tpb_thread_body.cc \ - gr_vmcircbuf.cc \ - gr_vmcircbuf_mmap_shm_open.cc \ - gr_vmcircbuf_mmap_tmpfile.cc \ - gr_vmcircbuf_createfilemapping.cc \ - gr_vmcircbuf_sysv_shm.cc \ - gr_select_handler.cc - -libruntime_qa_la_SOURCES = \ - qa_gr_block.cc \ - qa_gr_hier_block2.cc \ - qa_gr_hier_block2_derived.cc \ - qa_gr_buffer.cc \ - qa_gr_flowgraph.cc \ - qa_gr_top_block.cc \ - qa_gr_io_signature.cc \ - qa_gr_vmcircbuf.cc \ - qa_block_tags.cc \ - qa_set_msg_handler.cc \ - qa_runtime.cc - -grinclude_HEADERS = \ - gr_basic_block.h \ - gr_flowgraph.h \ - gr_flat_flowgraph.h \ - gr_block.h \ - gr_block_detail.h \ - gr_block_executor.h \ - gr_hier_block2.h \ - gr_hier_block2_detail.h \ - gr_buffer.h \ - gr_complex.h \ - gr_dispatcher.h \ - gr_error_handler.h \ - gr_io_signature.h \ - gr_local_sighandler.h \ - gr_message.h \ - gr_msg_accepter.h \ - gr_msg_handler.h \ - gr_msg_queue.h \ - gr_pagesize.h \ - gr_preferences.h \ - gr_realtime.h \ - gr_runtime_types.h \ - gr_scheduler.h \ - gr_scheduler_sts.h \ - gr_scheduler_tpb.h \ - gr_select_handler.h \ - gr_single_threaded_scheduler.h \ - gr_sptr_magic.h \ - gr_sync_block.h \ - gr_sync_decimator.h \ - gr_sync_interpolator.h \ - gr_top_block.h \ - gr_top_block_impl.h \ - gr_tpb_detail.h \ - gr_tpb_thread_body.h \ - gr_timer.h \ - gr_sys_paths.h \ - gr_types.h \ - gr_unittests.h \ - gr_vmcircbuf.h \ - gr_tags.h - -noinst_HEADERS = \ - gr_vmcircbuf_mmap_shm_open.h \ - gr_vmcircbuf_mmap_tmpfile.h \ - gr_vmcircbuf_sysv_shm.h \ - gr_vmcircbuf_createfilemapping.h \ - qa_gr_block.h \ - qa_gr_flowgraph.h \ - qa_gr_hier_block2.h \ - qa_gr_hier_block2_derived.h \ - qa_gr_buffer.h \ - qa_gr_io_signature.h \ - qa_gr_top_block.h \ - qa_gr_vmcircbuf.h \ - qa_block_tags.h \ - qa_set_msg_handler.h \ - qa_runtime.h - -swiginclude_HEADERS = \ - gr_basic_block.i \ - gr_block.i \ - gr_block_detail.i \ - gr_hier_block2.i \ - gr_buffer.i \ - gr_dispatcher.i \ - gr_error_handler.i \ - gr_io_signature.i \ - gr_message.i \ - gr_msg_handler.i \ - gr_msg_queue.i \ - gr_realtime.i \ - gr_single_threaded_scheduler.i \ - gr_sync_block.i \ - gr_sync_decimator.i \ - gr_sync_interpolator.i \ - gr_tags.i \ - gr_top_block.i \ - runtime.i diff --git a/gnuradio-core/src/lib/swig/.gitignore b/gnuradio-core/src/lib/swig/.gitignore deleted file mode 100644 index a6f145618..000000000 --- a/gnuradio-core/src/lib/swig/.gitignore +++ /dev/null @@ -1,49 +0,0 @@ -/Makefile -/Makefile.in -/.la -/.lo -/.deps -/.libs -/*.la -/*.lo -/*.pyc -/swigrun.py -/swigrun_wrap.c -/Makefile.swigdeps.new -gnuradio_core_filter.cc -gnuradio_core_filter.d -gnuradio_core_filter.h -gnuradio_core_filter.py -gnuradio_core_filter.scm -gnuradio_core_filter-primitive.scm -gnuradio_core_general.cc -gnuradio_core_general.d -gnuradio_core_general.h -gnuradio_core_general.py -gnuradio_core_general.scm -gnuradio_core_general-primitive.scm -gnuradio_core_gengen.cc -gnuradio_core_gengen.d -gnuradio_core_gengen.h -gnuradio_core_gengen.py -gnuradio_core_gengen.scm -gnuradio_core_gengen-primitive.scm -gnuradio_core_hier.cc -gnuradio_core_hier.d -gnuradio_core_hier.h -gnuradio_core_hier.py -gnuradio_core_hier.scm -gnuradio_core_hier-primitive.scm -gnuradio_core_io.cc -gnuradio_core_io.d -gnuradio_core_io.h -gnuradio_core_io.py -gnuradio_core_io.scm -gnuradio_core_io-primitive.scm -gnuradio_core_runtime.cc -gnuradio_core_runtime.d -gnuradio_core_runtime.h -gnuradio_core_runtime.py -gnuradio_core_runtime.scm -gnuradio_core_runtime-primitive.scm - diff --git a/gnuradio-core/src/lib/swig/Makefile.am b/gnuradio-core/src/lib/swig/Makefile.am deleted file mode 100644 index 91c1746e6..000000000 --- a/gnuradio-core/src/lib/swig/Makefile.am +++ /dev/null @@ -1,109 +0,0 @@ -# -# Copyright 2001,2003,2004,2005,2006,2007,2008,2009,2010 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. -# - -include $(top_srcdir)/Makefile.common -include $(top_srcdir)/Makefile.swig - -AM_CPPFLAGS = -I$(srcdir) $(STD_DEFINES_AND_INCLUDES) $(PYTHON_CPPFLAGS) \ - $(WITH_INCLUDES) - -# ---------------------------------------------------------------- -# We've split the previously monstrous gnuradio_core into 6 -# smaller pieces. This reduces compile time coupling and creates -# smaller pieces for the compiler to digest. prior to this change, on -# X86_64, g++'s resident set size was 650MB! -# ---------------------------------------------------------------- - -TOP_SWIG_DOC_IFILES = \ - filter_swig_doc.i \ - general_swig_doc.i \ - gengen_swig_doc.i \ - hier_swig_doc.i \ - io_swig_doc.i \ - runtime_swig_doc.i - -TOP_SWIG_IFILES = \ - $(TOP_SWIG_DOC_IFILES) \ - gnuradio_core_runtime.i \ - gnuradio_core_general.i \ - gnuradio_core_gengen.i \ - gnuradio_core_filter.i \ - gnuradio_core_io.i \ - gnuradio_core_hier.i - -BUILT_SOURCES += \ - $(TOP_SWIG_DOC_IFILES) - -EXTRA_DIST += \ - $(TOP_SWIG_DOC_IFILES) - -$(TOP_SWIG_DOC_IFILES): - `echo "" > $@` - -# SWIG headers get installed in ${prefix}/include/gnuradio/swig -swiginclude_HEADERS = \ - gnuradio.i \ - gr_swig_block_magic.i \ - gr_shared_ptr.i \ - $(TOP_SWIG_DOC_IFILES) - -# SWIG headers that get installed in ${prefix}/include/gnuradio/swig/... -nobase_swiginclude_HEADERS = \ - guile/std_complex.i \ - guile/std_vector.i - - -# special install for this top-level Python script which includes all -# of the split Python libraries. -ourpythondir = $(grpythondir)/gr -ourpython_PYTHON = gnuradio_core.py - -# ---------------------------------------------------------------- -# FIXME As of swig 1.3.31, this still seems to be required... -# gnuradio_swig_bug_workaround.h : gnuradio_core_runtime.py $(srcdir)/gen-swig-bug-fix -# $(PYTHON) $(srcdir)/gen-swig-bug-fix python/gnuradio_core_runtime.cc $@ - -EXTRA_DIST += gen-swig-bug-fix - -# C/C++ headers get installed in ${prefix}/include/gnuradio -grinclude_HEADERS = gnuradio_swig_bug_workaround.h - - -# Install so that they end up available as: -# import gnuradio.gr -# This ends up at: -# ${prefix}/lib/python${python_version}/site-packages/gnuradio/gr -gnuradio_core_runtime_pythondir_category = gnuradio/gr -gnuradio_core_general_pythondir_category = gnuradio/gr -gnuradio_core_gengen_pythondir_category = gnuradio/gr -gnuradio_core_filter_pythondir_category = gnuradio/gr -gnuradio_core_io_pythondir_category = gnuradio/gr -gnuradio_core_hier_pythondir_category = gnuradio/gr - -# additional libraries for linking with each SWIG-generated library -gnuradio_core_runtime_la_swig_libadd = $(GNURADIO_CORE_LA) -gnuradio_core_general_la_swig_libadd = $(GNURADIO_CORE_LA) -gnuradio_core_gengen_la_swig_libadd = $(GNURADIO_CORE_LA) -gnuradio_core_filter_la_swig_libadd = $(GNURADIO_CORE_LA) -gnuradio_core_io_la_swig_libadd = $(GNURADIO_CORE_LA) -gnuradio_core_hier_la_swig_libadd = $(GNURADIO_CORE_LA) - -SWIG_GUILE_FLAGS += -DIN_GNURADIO_CORE diff --git a/gnuradio-core/src/lib/swig/Makefile.swig.gen b/gnuradio-core/src/lib/swig/Makefile.swig.gen deleted file mode 100644 index cede68817..000000000 --- a/gnuradio-core/src/lib/swig/Makefile.swig.gen +++ /dev/null @@ -1,870 +0,0 @@ -# -*- Makefile -*- -# -# Copyright 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. -# - -# Makefile.swig.gen for gnuradio_core_runtime.i - -## Default install locations for these files: -## -## Default location for the Python directory is: -## ${prefix}/lib/python${python_version}/site-packages/[category]/gnuradio_core_runtime -## Default location for the Python exec directory is: -## ${exec_prefix}/lib/python${python_version}/site-packages/[category]/gnuradio_core_runtime -## -## The following can be overloaded to change the install location, but -## this has to be done in the including Makefile.am -before- -## Makefile.swig is included. - -gnuradio_core_runtime_pythondir_category ?= gnuradio/gnuradio_core_runtime -gnuradio_core_runtime_pylibdir_category ?= $(gnuradio_core_runtime_pythondir_category) -gnuradio_core_runtime_pythondir = $(pythondir)/$(gnuradio_core_runtime_pythondir_category) -gnuradio_core_runtime_pylibdir = $(pyexecdir)/$(gnuradio_core_runtime_pylibdir_category) - -# The .so libraries for the guile modules get installed whereever guile -# is installed, usually /usr/lib/guile/gnuradio/ -# FIXME: determince whether these should be installed with gnuradio. -gnuradio_core_runtime_scmlibdir = $(libdir) - -# The scm files for the guile modules get installed where ever guile -# is installed, usually /usr/share/guile/site/gnuradio_core_runtime -# FIXME: determince whether these should be installed with gnuradio. -gnuradio_core_runtime_scmdir = $(guiledir) - -## SWIG headers are always installed into the same directory. - -gnuradio_core_runtime_swigincludedir = $(swigincludedir) - -## This is a template file for a "generated" Makefile addition (in -## this case, "Makefile.swig.gen"). By including the top-level -## Makefile.swig, this file will be used to generate the SWIG -## dependencies. Assign the variable TOP_SWIG_FILES to be the list of -## SWIG .i files to generated wrappings for; there can be more than 1 -## so long as the names are unique (no sorting is done on the -## TOP_SWIG_FILES list). This file explicitly assumes that a SWIG .i -## file will generate .cc, .py, and possibly .h files -- meaning that -## all of these files will have the same base name (that provided for -## the SWIG .i file). -## -## This code is setup to ensure parallel MAKE ("-j" or "-jN") does the -## right thing. For more info, see < -## http://sources.redhat.com/automake/automake.html#Multiple-Outputs > - -## Other cleaned files: dependency files generated by SWIG or this Makefile - -MOSTLYCLEANFILES += $(DEPDIR)/*.S* - -## Various SWIG variables. These can be overloaded in the including -## Makefile.am by setting the variable value there, then including -## Makefile.swig . - -gnuradio_core_runtime_swiginclude_HEADERS = \ - gnuradio_core_runtime.i \ - $(gnuradio_core_runtime_swiginclude_headers) - -if PYTHON -gnuradio_core_runtime_pylib_LTLIBRARIES = \ - _gnuradio_core_runtime.la - -_gnuradio_core_runtime_la_SOURCES = \ - python/gnuradio_core_runtime.cc \ - $(gnuradio_core_runtime_la_swig_sources) - -gnuradio_core_runtime_python_PYTHON = \ - gnuradio_core_runtime.py \ - $(gnuradio_core_runtime_python) - -_gnuradio_core_runtime_la_LIBADD = \ - $(STD_SWIG_LA_LIB_ADD) \ - $(gnuradio_core_runtime_la_swig_libadd) - -_gnuradio_core_runtime_la_LDFLAGS = \ - $(STD_SWIG_LA_LD_FLAGS) \ - $(gnuradio_core_runtime_la_swig_ldflags) - -_gnuradio_core_runtime_la_CXXFLAGS = \ - $(STD_SWIG_CXX_FLAGS) \ - -I$(top_builddir) \ - $(gnuradio_core_runtime_la_swig_cxxflags) - -python/gnuradio_core_runtime.cc: gnuradio_core_runtime.py -gnuradio_core_runtime.py: gnuradio_core_runtime.i - -# Include the python dependencies for this file --include python/gnuradio_core_runtime.d - -endif # end of if python - -if GUILE - -gnuradio_core_runtime_scmlib_LTLIBRARIES = \ - libguile-gnuradio-gnuradio_core_runtime.la -libguile_gnuradio_gnuradio_core_runtime_la_SOURCES = \ - guile/gnuradio_core_runtime.cc \ - $(gnuradio_core_runtime_la_swig_sources) -nobase_gnuradio_core_runtime_scm_DATA = \ - gnuradio/gnuradio_core_runtime.scm \ - gnuradio/gnuradio_core_runtime-primitive.scm -libguile_gnuradio_gnuradio_core_runtime_la_LIBADD = \ - $(STD_SWIG_LA_LIB_ADD) \ - $(gnuradio_core_runtime_la_swig_libadd) -libguile_gnuradio_gnuradio_core_runtime_la_LDFLAGS = \ - $(STD_SWIG_LA_LD_FLAGS) \ - $(gnuradio_core_runtime_la_swig_ldflags) -libguile_gnuradio_gnuradio_core_runtime_la_CXXFLAGS = \ - $(STD_SWIG_CXX_FLAGS) \ - -I$(top_builddir) \ - $(gnuradio_core_runtime_la_swig_cxxflags) - -guile/gnuradio_core_runtime.cc: gnuradio/gnuradio_core_runtime.scm -gnuradio/gnuradio_core_runtime.scm: gnuradio_core_runtime.i -gnuradio/gnuradio_core_runtime-primitive.scm: gnuradio/gnuradio_core_runtime.scm - -# Include the guile dependencies for this file --include guile/gnuradio_core_runtime.d - -endif # end of GUILE - - -# -*- Makefile -*- -# -# Copyright 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. -# - -# Makefile.swig.gen for gnuradio_core_general.i - -## Default install locations for these files: -## -## Default location for the Python directory is: -## ${prefix}/lib/python${python_version}/site-packages/[category]/gnuradio_core_general -## Default location for the Python exec directory is: -## ${exec_prefix}/lib/python${python_version}/site-packages/[category]/gnuradio_core_general -## -## The following can be overloaded to change the install location, but -## this has to be done in the including Makefile.am -before- -## Makefile.swig is included. - -gnuradio_core_general_pythondir_category ?= gnuradio/gnuradio_core_general -gnuradio_core_general_pylibdir_category ?= $(gnuradio_core_general_pythondir_category) -gnuradio_core_general_pythondir = $(pythondir)/$(gnuradio_core_general_pythondir_category) -gnuradio_core_general_pylibdir = $(pyexecdir)/$(gnuradio_core_general_pylibdir_category) - -# The .so libraries for the guile modules get installed whereever guile -# is installed, usually /usr/lib/guile/gnuradio/ -# FIXME: determince whether these should be installed with gnuradio. -gnuradio_core_general_scmlibdir = $(libdir) - -# The scm files for the guile modules get installed where ever guile -# is installed, usually /usr/share/guile/site/gnuradio_core_general -# FIXME: determince whether these should be installed with gnuradio. -gnuradio_core_general_scmdir = $(guiledir) - -## SWIG headers are always installed into the same directory. - -gnuradio_core_general_swigincludedir = $(swigincludedir) - -## This is a template file for a "generated" Makefile addition (in -## this case, "Makefile.swig.gen"). By including the top-level -## Makefile.swig, this file will be used to generate the SWIG -## dependencies. Assign the variable TOP_SWIG_FILES to be the list of -## SWIG .i files to generated wrappings for; there can be more than 1 -## so long as the names are unique (no sorting is done on the -## TOP_SWIG_FILES list). This file explicitly assumes that a SWIG .i -## file will generate .cc, .py, and possibly .h files -- meaning that -## all of these files will have the same base name (that provided for -## the SWIG .i file). -## -## This code is setup to ensure parallel MAKE ("-j" or "-jN") does the -## right thing. For more info, see < -## http://sources.redhat.com/automake/automake.html#Multiple-Outputs > - -## Other cleaned files: dependency files generated by SWIG or this Makefile - -MOSTLYCLEANFILES += $(DEPDIR)/*.S* - -## Various SWIG variables. These can be overloaded in the including -## Makefile.am by setting the variable value there, then including -## Makefile.swig . - -gnuradio_core_general_swiginclude_HEADERS = \ - gnuradio_core_general.i \ - $(gnuradio_core_general_swiginclude_headers) - -if PYTHON -gnuradio_core_general_pylib_LTLIBRARIES = \ - _gnuradio_core_general.la - -_gnuradio_core_general_la_SOURCES = \ - python/gnuradio_core_general.cc \ - $(gnuradio_core_general_la_swig_sources) - -gnuradio_core_general_python_PYTHON = \ - gnuradio_core_general.py \ - $(gnuradio_core_general_python) - -_gnuradio_core_general_la_LIBADD = \ - $(STD_SWIG_LA_LIB_ADD) \ - $(gnuradio_core_general_la_swig_libadd) - -_gnuradio_core_general_la_LDFLAGS = \ - $(STD_SWIG_LA_LD_FLAGS) \ - $(gnuradio_core_general_la_swig_ldflags) - -_gnuradio_core_general_la_CXXFLAGS = \ - $(STD_SWIG_CXX_FLAGS) \ - -I$(top_builddir) \ - $(gnuradio_core_general_la_swig_cxxflags) - -python/gnuradio_core_general.cc: gnuradio_core_general.py -gnuradio_core_general.py: gnuradio_core_general.i - -# Include the python dependencies for this file --include python/gnuradio_core_general.d - -endif # end of if python - -if GUILE - -gnuradio_core_general_scmlib_LTLIBRARIES = \ - libguile-gnuradio-gnuradio_core_general.la -libguile_gnuradio_gnuradio_core_general_la_SOURCES = \ - guile/gnuradio_core_general.cc \ - $(gnuradio_core_general_la_swig_sources) -nobase_gnuradio_core_general_scm_DATA = \ - gnuradio/gnuradio_core_general.scm \ - gnuradio/gnuradio_core_general-primitive.scm -libguile_gnuradio_gnuradio_core_general_la_LIBADD = \ - $(STD_SWIG_LA_LIB_ADD) \ - $(gnuradio_core_general_la_swig_libadd) -libguile_gnuradio_gnuradio_core_general_la_LDFLAGS = \ - $(STD_SWIG_LA_LD_FLAGS) \ - $(gnuradio_core_general_la_swig_ldflags) -libguile_gnuradio_gnuradio_core_general_la_CXXFLAGS = \ - $(STD_SWIG_CXX_FLAGS) \ - -I$(top_builddir) \ - $(gnuradio_core_general_la_swig_cxxflags) - -guile/gnuradio_core_general.cc: gnuradio/gnuradio_core_general.scm -gnuradio/gnuradio_core_general.scm: gnuradio_core_general.i -gnuradio/gnuradio_core_general-primitive.scm: gnuradio/gnuradio_core_general.scm - -# Include the guile dependencies for this file --include guile/gnuradio_core_general.d - -endif # end of GUILE - - -# -*- Makefile -*- -# -# Copyright 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. -# - -# Makefile.swig.gen for gnuradio_core_gengen.i - -## Default install locations for these files: -## -## Default location for the Python directory is: -## ${prefix}/lib/python${python_version}/site-packages/[category]/gnuradio_core_gengen -## Default location for the Python exec directory is: -## ${exec_prefix}/lib/python${python_version}/site-packages/[category]/gnuradio_core_gengen -## -## The following can be overloaded to change the install location, but -## this has to be done in the including Makefile.am -before- -## Makefile.swig is included. - -gnuradio_core_gengen_pythondir_category ?= gnuradio/gnuradio_core_gengen -gnuradio_core_gengen_pylibdir_category ?= $(gnuradio_core_gengen_pythondir_category) -gnuradio_core_gengen_pythondir = $(pythondir)/$(gnuradio_core_gengen_pythondir_category) -gnuradio_core_gengen_pylibdir = $(pyexecdir)/$(gnuradio_core_gengen_pylibdir_category) - -# The .so libraries for the guile modules get installed whereever guile -# is installed, usually /usr/lib/guile/gnuradio/ -# FIXME: determince whether these should be installed with gnuradio. -gnuradio_core_gengen_scmlibdir = $(libdir) - -# The scm files for the guile modules get installed where ever guile -# is installed, usually /usr/share/guile/site/gnuradio_core_gengen -# FIXME: determince whether these should be installed with gnuradio. -gnuradio_core_gengen_scmdir = $(guiledir) - -## SWIG headers are always installed into the same directory. - -gnuradio_core_gengen_swigincludedir = $(swigincludedir) - -## This is a template file for a "generated" Makefile addition (in -## this case, "Makefile.swig.gen"). By including the top-level -## Makefile.swig, this file will be used to generate the SWIG -## dependencies. Assign the variable TOP_SWIG_FILES to be the list of -## SWIG .i files to generated wrappings for; there can be more than 1 -## so long as the names are unique (no sorting is done on the -## TOP_SWIG_FILES list). This file explicitly assumes that a SWIG .i -## file will generate .cc, .py, and possibly .h files -- meaning that -## all of these files will have the same base name (that provided for -## the SWIG .i file). -## -## This code is setup to ensure parallel MAKE ("-j" or "-jN") does the -## right thing. For more info, see < -## http://sources.redhat.com/automake/automake.html#Multiple-Outputs > - -## Other cleaned files: dependency files generated by SWIG or this Makefile - -MOSTLYCLEANFILES += $(DEPDIR)/*.S* - -## Various SWIG variables. These can be overloaded in the including -## Makefile.am by setting the variable value there, then including -## Makefile.swig . - -gnuradio_core_gengen_swiginclude_HEADERS = \ - gnuradio_core_gengen.i \ - $(gnuradio_core_gengen_swiginclude_headers) - -if PYTHON -gnuradio_core_gengen_pylib_LTLIBRARIES = \ - _gnuradio_core_gengen.la - -_gnuradio_core_gengen_la_SOURCES = \ - python/gnuradio_core_gengen.cc \ - $(gnuradio_core_gengen_la_swig_sources) - -gnuradio_core_gengen_python_PYTHON = \ - gnuradio_core_gengen.py \ - $(gnuradio_core_gengen_python) - -_gnuradio_core_gengen_la_LIBADD = \ - $(STD_SWIG_LA_LIB_ADD) \ - $(gnuradio_core_gengen_la_swig_libadd) - -_gnuradio_core_gengen_la_LDFLAGS = \ - $(STD_SWIG_LA_LD_FLAGS) \ - $(gnuradio_core_gengen_la_swig_ldflags) - -_gnuradio_core_gengen_la_CXXFLAGS = \ - $(STD_SWIG_CXX_FLAGS) \ - -I$(top_builddir) \ - $(gnuradio_core_gengen_la_swig_cxxflags) - -python/gnuradio_core_gengen.cc: gnuradio_core_gengen.py -gnuradio_core_gengen.py: gnuradio_core_gengen.i - -# Include the python dependencies for this file --include python/gnuradio_core_gengen.d - -endif # end of if python - -if GUILE - -gnuradio_core_gengen_scmlib_LTLIBRARIES = \ - libguile-gnuradio-gnuradio_core_gengen.la -libguile_gnuradio_gnuradio_core_gengen_la_SOURCES = \ - guile/gnuradio_core_gengen.cc \ - $(gnuradio_core_gengen_la_swig_sources) -nobase_gnuradio_core_gengen_scm_DATA = \ - gnuradio/gnuradio_core_gengen.scm \ - gnuradio/gnuradio_core_gengen-primitive.scm -libguile_gnuradio_gnuradio_core_gengen_la_LIBADD = \ - $(STD_SWIG_LA_LIB_ADD) \ - $(gnuradio_core_gengen_la_swig_libadd) -libguile_gnuradio_gnuradio_core_gengen_la_LDFLAGS = \ - $(STD_SWIG_LA_LD_FLAGS) \ - $(gnuradio_core_gengen_la_swig_ldflags) -libguile_gnuradio_gnuradio_core_gengen_la_CXXFLAGS = \ - $(STD_SWIG_CXX_FLAGS) \ - -I$(top_builddir) \ - $(gnuradio_core_gengen_la_swig_cxxflags) - -guile/gnuradio_core_gengen.cc: gnuradio/gnuradio_core_gengen.scm -gnuradio/gnuradio_core_gengen.scm: gnuradio_core_gengen.i -gnuradio/gnuradio_core_gengen-primitive.scm: gnuradio/gnuradio_core_gengen.scm - -# Include the guile dependencies for this file --include guile/gnuradio_core_gengen.d - -endif # end of GUILE - - -# -*- Makefile -*- -# -# Copyright 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. -# - -# Makefile.swig.gen for gnuradio_core_filter.i - -## Default install locations for these files: -## -## Default location for the Python directory is: -## ${prefix}/lib/python${python_version}/site-packages/[category]/gnuradio_core_filter -## Default location for the Python exec directory is: -## ${exec_prefix}/lib/python${python_version}/site-packages/[category]/gnuradio_core_filter -## -## The following can be overloaded to change the install location, but -## this has to be done in the including Makefile.am -before- -## Makefile.swig is included. - -gnuradio_core_filter_pythondir_category ?= gnuradio/gnuradio_core_filter -gnuradio_core_filter_pylibdir_category ?= $(gnuradio_core_filter_pythondir_category) -gnuradio_core_filter_pythondir = $(pythondir)/$(gnuradio_core_filter_pythondir_category) -gnuradio_core_filter_pylibdir = $(pyexecdir)/$(gnuradio_core_filter_pylibdir_category) - -# The .so libraries for the guile modules get installed whereever guile -# is installed, usually /usr/lib/guile/gnuradio/ -# FIXME: determince whether these should be installed with gnuradio. -gnuradio_core_filter_scmlibdir = $(libdir) - -# The scm files for the guile modules get installed where ever guile -# is installed, usually /usr/share/guile/site/gnuradio_core_filter -# FIXME: determince whether these should be installed with gnuradio. -gnuradio_core_filter_scmdir = $(guiledir) - -## SWIG headers are always installed into the same directory. - -gnuradio_core_filter_swigincludedir = $(swigincludedir) - -## This is a template file for a "generated" Makefile addition (in -## this case, "Makefile.swig.gen"). By including the top-level -## Makefile.swig, this file will be used to generate the SWIG -## dependencies. Assign the variable TOP_SWIG_FILES to be the list of -## SWIG .i files to generated wrappings for; there can be more than 1 -## so long as the names are unique (no sorting is done on the -## TOP_SWIG_FILES list). This file explicitly assumes that a SWIG .i -## file will generate .cc, .py, and possibly .h files -- meaning that -## all of these files will have the same base name (that provided for -## the SWIG .i file). -## -## This code is setup to ensure parallel MAKE ("-j" or "-jN") does the -## right thing. For more info, see < -## http://sources.redhat.com/automake/automake.html#Multiple-Outputs > - -## Other cleaned files: dependency files generated by SWIG or this Makefile - -MOSTLYCLEANFILES += $(DEPDIR)/*.S* - -## Various SWIG variables. These can be overloaded in the including -## Makefile.am by setting the variable value there, then including -## Makefile.swig . - -gnuradio_core_filter_swiginclude_HEADERS = \ - gnuradio_core_filter.i \ - $(gnuradio_core_filter_swiginclude_headers) - -if PYTHON -gnuradio_core_filter_pylib_LTLIBRARIES = \ - _gnuradio_core_filter.la - -_gnuradio_core_filter_la_SOURCES = \ - python/gnuradio_core_filter.cc \ - $(gnuradio_core_filter_la_swig_sources) - -gnuradio_core_filter_python_PYTHON = \ - gnuradio_core_filter.py \ - $(gnuradio_core_filter_python) - -_gnuradio_core_filter_la_LIBADD = \ - $(STD_SWIG_LA_LIB_ADD) \ - $(gnuradio_core_filter_la_swig_libadd) - -_gnuradio_core_filter_la_LDFLAGS = \ - $(STD_SWIG_LA_LD_FLAGS) \ - $(gnuradio_core_filter_la_swig_ldflags) - -_gnuradio_core_filter_la_CXXFLAGS = \ - $(STD_SWIG_CXX_FLAGS) \ - -I$(top_builddir) \ - $(gnuradio_core_filter_la_swig_cxxflags) - -python/gnuradio_core_filter.cc: gnuradio_core_filter.py -gnuradio_core_filter.py: gnuradio_core_filter.i - -# Include the python dependencies for this file --include python/gnuradio_core_filter.d - -endif # end of if python - -if GUILE - -gnuradio_core_filter_scmlib_LTLIBRARIES = \ - libguile-gnuradio-gnuradio_core_filter.la -libguile_gnuradio_gnuradio_core_filter_la_SOURCES = \ - guile/gnuradio_core_filter.cc \ - $(gnuradio_core_filter_la_swig_sources) -nobase_gnuradio_core_filter_scm_DATA = \ - gnuradio/gnuradio_core_filter.scm \ - gnuradio/gnuradio_core_filter-primitive.scm -libguile_gnuradio_gnuradio_core_filter_la_LIBADD = \ - $(STD_SWIG_LA_LIB_ADD) \ - $(gnuradio_core_filter_la_swig_libadd) -libguile_gnuradio_gnuradio_core_filter_la_LDFLAGS = \ - $(STD_SWIG_LA_LD_FLAGS) \ - $(gnuradio_core_filter_la_swig_ldflags) -libguile_gnuradio_gnuradio_core_filter_la_CXXFLAGS = \ - $(STD_SWIG_CXX_FLAGS) \ - -I$(top_builddir) \ - $(gnuradio_core_filter_la_swig_cxxflags) - -guile/gnuradio_core_filter.cc: gnuradio/gnuradio_core_filter.scm -gnuradio/gnuradio_core_filter.scm: gnuradio_core_filter.i -gnuradio/gnuradio_core_filter-primitive.scm: gnuradio/gnuradio_core_filter.scm - -# Include the guile dependencies for this file --include guile/gnuradio_core_filter.d - -endif # end of GUILE - - -# -*- Makefile -*- -# -# Copyright 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. -# - -# Makefile.swig.gen for gnuradio_core_io.i - -## Default install locations for these files: -## -## Default location for the Python directory is: -## ${prefix}/lib/python${python_version}/site-packages/[category]/gnuradio_core_io -## Default location for the Python exec directory is: -## ${exec_prefix}/lib/python${python_version}/site-packages/[category]/gnuradio_core_io -## -## The following can be overloaded to change the install location, but -## this has to be done in the including Makefile.am -before- -## Makefile.swig is included. - -gnuradio_core_io_pythondir_category ?= gnuradio/gnuradio_core_io -gnuradio_core_io_pylibdir_category ?= $(gnuradio_core_io_pythondir_category) -gnuradio_core_io_pythondir = $(pythondir)/$(gnuradio_core_io_pythondir_category) -gnuradio_core_io_pylibdir = $(pyexecdir)/$(gnuradio_core_io_pylibdir_category) - -# The .so libraries for the guile modules get installed whereever guile -# is installed, usually /usr/lib/guile/gnuradio/ -# FIXME: determince whether these should be installed with gnuradio. -gnuradio_core_io_scmlibdir = $(libdir) - -# The scm files for the guile modules get installed where ever guile -# is installed, usually /usr/share/guile/site/gnuradio_core_io -# FIXME: determince whether these should be installed with gnuradio. -gnuradio_core_io_scmdir = $(guiledir) - -## SWIG headers are always installed into the same directory. - -gnuradio_core_io_swigincludedir = $(swigincludedir) - -## This is a template file for a "generated" Makefile addition (in -## this case, "Makefile.swig.gen"). By including the top-level -## Makefile.swig, this file will be used to generate the SWIG -## dependencies. Assign the variable TOP_SWIG_FILES to be the list of -## SWIG .i files to generated wrappings for; there can be more than 1 -## so long as the names are unique (no sorting is done on the -## TOP_SWIG_FILES list). This file explicitly assumes that a SWIG .i -## file will generate .cc, .py, and possibly .h files -- meaning that -## all of these files will have the same base name (that provided for -## the SWIG .i file). -## -## This code is setup to ensure parallel MAKE ("-j" or "-jN") does the -## right thing. For more info, see < -## http://sources.redhat.com/automake/automake.html#Multiple-Outputs > - -## Other cleaned files: dependency files generated by SWIG or this Makefile - -MOSTLYCLEANFILES += $(DEPDIR)/*.S* - -## Various SWIG variables. These can be overloaded in the including -## Makefile.am by setting the variable value there, then including -## Makefile.swig . - -gnuradio_core_io_swiginclude_HEADERS = \ - gnuradio_core_io.i \ - $(gnuradio_core_io_swiginclude_headers) - -if PYTHON -gnuradio_core_io_pylib_LTLIBRARIES = \ - _gnuradio_core_io.la - -_gnuradio_core_io_la_SOURCES = \ - python/gnuradio_core_io.cc \ - $(gnuradio_core_io_la_swig_sources) - -gnuradio_core_io_python_PYTHON = \ - gnuradio_core_io.py \ - $(gnuradio_core_io_python) - -_gnuradio_core_io_la_LIBADD = \ - $(STD_SWIG_LA_LIB_ADD) \ - $(gnuradio_core_io_la_swig_libadd) - -_gnuradio_core_io_la_LDFLAGS = \ - $(STD_SWIG_LA_LD_FLAGS) \ - $(gnuradio_core_io_la_swig_ldflags) - -_gnuradio_core_io_la_CXXFLAGS = \ - $(STD_SWIG_CXX_FLAGS) \ - -I$(top_builddir) \ - $(gnuradio_core_io_la_swig_cxxflags) - -python/gnuradio_core_io.cc: gnuradio_core_io.py -gnuradio_core_io.py: gnuradio_core_io.i - -# Include the python dependencies for this file --include python/gnuradio_core_io.d - -endif # end of if python - -if GUILE - -gnuradio_core_io_scmlib_LTLIBRARIES = \ - libguile-gnuradio-gnuradio_core_io.la -libguile_gnuradio_gnuradio_core_io_la_SOURCES = \ - guile/gnuradio_core_io.cc \ - $(gnuradio_core_io_la_swig_sources) -nobase_gnuradio_core_io_scm_DATA = \ - gnuradio/gnuradio_core_io.scm \ - gnuradio/gnuradio_core_io-primitive.scm -libguile_gnuradio_gnuradio_core_io_la_LIBADD = \ - $(STD_SWIG_LA_LIB_ADD) \ - $(gnuradio_core_io_la_swig_libadd) -libguile_gnuradio_gnuradio_core_io_la_LDFLAGS = \ - $(STD_SWIG_LA_LD_FLAGS) \ - $(gnuradio_core_io_la_swig_ldflags) -libguile_gnuradio_gnuradio_core_io_la_CXXFLAGS = \ - $(STD_SWIG_CXX_FLAGS) \ - -I$(top_builddir) \ - $(gnuradio_core_io_la_swig_cxxflags) - -guile/gnuradio_core_io.cc: gnuradio/gnuradio_core_io.scm -gnuradio/gnuradio_core_io.scm: gnuradio_core_io.i -gnuradio/gnuradio_core_io-primitive.scm: gnuradio/gnuradio_core_io.scm - -# Include the guile dependencies for this file --include guile/gnuradio_core_io.d - -endif # end of GUILE - - -# -*- Makefile -*- -# -# Copyright 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. -# - -# Makefile.swig.gen for gnuradio_core_hier.i - -## Default install locations for these files: -## -## Default location for the Python directory is: -## ${prefix}/lib/python${python_version}/site-packages/[category]/gnuradio_core_hier -## Default location for the Python exec directory is: -## ${exec_prefix}/lib/python${python_version}/site-packages/[category]/gnuradio_core_hier -## -## The following can be overloaded to change the install location, but -## this has to be done in the including Makefile.am -before- -## Makefile.swig is included. - -gnuradio_core_hier_pythondir_category ?= gnuradio/gnuradio_core_hier -gnuradio_core_hier_pylibdir_category ?= $(gnuradio_core_hier_pythondir_category) -gnuradio_core_hier_pythondir = $(pythondir)/$(gnuradio_core_hier_pythondir_category) -gnuradio_core_hier_pylibdir = $(pyexecdir)/$(gnuradio_core_hier_pylibdir_category) - -# The .so libraries for the guile modules get installed whereever guile -# is installed, usually /usr/lib/guile/gnuradio/ -# FIXME: determince whether these should be installed with gnuradio. -gnuradio_core_hier_scmlibdir = $(libdir) - -# The scm files for the guile modules get installed where ever guile -# is installed, usually /usr/share/guile/site/gnuradio_core_hier -# FIXME: determince whether these should be installed with gnuradio. -gnuradio_core_hier_scmdir = $(guiledir) - -## SWIG headers are always installed into the same directory. - -gnuradio_core_hier_swigincludedir = $(swigincludedir) - -## This is a template file for a "generated" Makefile addition (in -## this case, "Makefile.swig.gen"). By including the top-level -## Makefile.swig, this file will be used to generate the SWIG -## dependencies. Assign the variable TOP_SWIG_FILES to be the list of -## SWIG .i files to generated wrappings for; there can be more than 1 -## so long as the names are unique (no sorting is done on the -## TOP_SWIG_FILES list). This file explicitly assumes that a SWIG .i -## file will generate .cc, .py, and possibly .h files -- meaning that -## all of these files will have the same base name (that provided for -## the SWIG .i file). -## -## This code is setup to ensure parallel MAKE ("-j" or "-jN") does the -## right thing. For more info, see < -## http://sources.redhat.com/automake/automake.html#Multiple-Outputs > - -## Other cleaned files: dependency files generated by SWIG or this Makefile - -MOSTLYCLEANFILES += $(DEPDIR)/*.S* - -## Various SWIG variables. These can be overloaded in the including -## Makefile.am by setting the variable value there, then including -## Makefile.swig . - -gnuradio_core_hier_swiginclude_HEADERS = \ - gnuradio_core_hier.i \ - $(gnuradio_core_hier_swiginclude_headers) - -if PYTHON -gnuradio_core_hier_pylib_LTLIBRARIES = \ - _gnuradio_core_hier.la - -_gnuradio_core_hier_la_SOURCES = \ - python/gnuradio_core_hier.cc \ - $(gnuradio_core_hier_la_swig_sources) - -gnuradio_core_hier_python_PYTHON = \ - gnuradio_core_hier.py \ - $(gnuradio_core_hier_python) - -_gnuradio_core_hier_la_LIBADD = \ - $(STD_SWIG_LA_LIB_ADD) \ - $(gnuradio_core_hier_la_swig_libadd) - -_gnuradio_core_hier_la_LDFLAGS = \ - $(STD_SWIG_LA_LD_FLAGS) \ - $(gnuradio_core_hier_la_swig_ldflags) - -_gnuradio_core_hier_la_CXXFLAGS = \ - $(STD_SWIG_CXX_FLAGS) \ - -I$(top_builddir) \ - $(gnuradio_core_hier_la_swig_cxxflags) - -python/gnuradio_core_hier.cc: gnuradio_core_hier.py -gnuradio_core_hier.py: gnuradio_core_hier.i - -# Include the python dependencies for this file --include python/gnuradio_core_hier.d - -endif # end of if python - -if GUILE - -gnuradio_core_hier_scmlib_LTLIBRARIES = \ - libguile-gnuradio-gnuradio_core_hier.la -libguile_gnuradio_gnuradio_core_hier_la_SOURCES = \ - guile/gnuradio_core_hier.cc \ - $(gnuradio_core_hier_la_swig_sources) -nobase_gnuradio_core_hier_scm_DATA = \ - gnuradio/gnuradio_core_hier.scm \ - gnuradio/gnuradio_core_hier-primitive.scm -libguile_gnuradio_gnuradio_core_hier_la_LIBADD = \ - $(STD_SWIG_LA_LIB_ADD) \ - $(gnuradio_core_hier_la_swig_libadd) -libguile_gnuradio_gnuradio_core_hier_la_LDFLAGS = \ - $(STD_SWIG_LA_LD_FLAGS) \ - $(gnuradio_core_hier_la_swig_ldflags) -libguile_gnuradio_gnuradio_core_hier_la_CXXFLAGS = \ - $(STD_SWIG_CXX_FLAGS) \ - -I$(top_builddir) \ - $(gnuradio_core_hier_la_swig_cxxflags) - -guile/gnuradio_core_hier.cc: gnuradio/gnuradio_core_hier.scm -gnuradio/gnuradio_core_hier.scm: gnuradio_core_hier.i -gnuradio/gnuradio_core_hier-primitive.scm: gnuradio/gnuradio_core_hier.scm - -# Include the guile dependencies for this file --include guile/gnuradio_core_hier.d - -endif # end of GUILE - - diff --git a/gnuradio-core/src/lib/swig/guile/std_complex.i b/gnuradio-core/src/lib/swig/guile/std_complex.i deleted file mode 100644 index 2a5c72aa2..000000000 --- a/gnuradio-core/src/lib/swig/guile/std_complex.i +++ /dev/null @@ -1,37 +0,0 @@ -%{ -#include <complex> -%} - -// To the target language, complex number conversion -%typemap(out) complex, complex<double>, std::complex<double> { - $result = scm_make_rectangular( gh_double2scm ($1.real ()), - gh_double2scm ($1.imag ()) ); -} - -// To the target language, complex number conversion -%typemap(out) complex, complex<float>, std::complex<float> { - $result = scm_make_rectangular( gh_double2scm ($1.real ()), - gh_double2scm ($1.imag ()) ); -} - -// From the target language, complex number conversion -%typemap(in) complex, complex<double>, std::complex<double> { - $1 = std::complex<double>( gh_scm2double (scm_real_part ($input)), - gh_scm2double (scm_imag_part ($input)) ); -} - -// From the target language, complex number conversion -%typemap(in) complex, complex<float>, std::complex<float> { - $1 = std::complex<float>( gh_scm2double (scm_real_part ($input)), - gh_scm2double (scm_imag_part ($input)) ); -} - -%typemaps_primitive(%checkcode(CPLXDBL), std::complex<double>); -%typemaps_primitive(%checkcode(CPLXFLT), std::complex<float>); - -%typecheck(SWIG_TYPECHECK_COMPLEX) - std::complex<float>, std::complex<double>, - const std::complex<float> &, const std::complex<double> & -{ - $1 = scm_is_complex($input) ? 1 : 0; -} diff --git a/gnuradio-core/src/lib/swig/guile/std_vector.i b/gnuradio-core/src/lib/swig/guile/std_vector.i deleted file mode 100644 index ef1f20667..000000000 --- a/gnuradio-core/src/lib/swig/guile/std_vector.i +++ /dev/null @@ -1,437 +0,0 @@ -/* ----------------------------------------------------------------------------- - * See the LICENSE file for information on copyright, usage and redistribution - * of SWIG, and the README file for authors - http://www.swig.org/release.html. - * - * std_vector.i - * - * SWIG typemaps for std::vector - * ----------------------------------------------------------------------------- */ - -%include <std_common.i> - -// ------------------------------------------------------------------------ -// std::vector -// -// The aim of all that follows would be to integrate std::vector with -// Guile as much as possible, namely, to allow the user to pass and -// be returned Guile vectors or lists. -// const declarations are used to guess the intent of the function being -// exported; therefore, the following rationale is applied: -// -// -- f(std::vector<T>), f(const std::vector<T>&), f(const std::vector<T>*): -// the parameter being read-only, either a Guile sequence or a -// previously wrapped std::vector<T> can be passed. -// -- f(std::vector<T>&), f(std::vector<T>*): -// the parameter must be modified; therefore, only a wrapped std::vector -// can be passed. -// -- std::vector<T> f(): -// the vector is returned by copy; therefore, a Guile vector of T:s -// is returned which is most easily used in other Guile functions -// -- std::vector<T>& f(), std::vector<T>* f(), const std::vector<T>& f(), -// const std::vector<T>* f(): -// the vector is returned by reference; therefore, a wrapped std::vector -// is returned -// ------------------------------------------------------------------------ - -%{ -#include <vector> -#include <algorithm> -#include <stdexcept> -#include <complex> -%} - -%{ - inline std::complex<float> SWIG_scm2cmplxfloat(SCM x){ - return std::complex<float>(scm_c_real_part(x), scm_c_imag_part(x)); - } - - inline std::complex<double> SWIG_scm2cmplxdouble(SCM x){ - return std::complex<double>(scm_c_real_part(x), scm_c_imag_part(x)); - } - - inline SCM SWIG_cmplxfloat2scm(std::complex<float> x){ - return scm_c_make_rectangular(x.real(), x.imag()); - } - - inline SCM SWIG_cmplxdouble2scm(std::complex<double> x){ - return scm_c_make_rectangular(x.real(), x.imag()); - } -%} - -// exported class - -namespace std { - - template<class T> class vector { - %typemap(in) vector<T> { - if (gh_vector_p($input)) { - unsigned long size = gh_vector_length($input); - $1 = std::vector<T >(size); - for (unsigned long i=0; i<size; i++) { - SCM o = gh_vector_ref($input,gh_ulong2scm(i)); - (($1_type &)$1)[i] = - *((T*) SWIG_MustGetPtr(o,$descriptor(T *),$argnum, 0)); - } - } else if (gh_null_p($input)) { - $1 = std::vector<T >(); - } else if (gh_pair_p($input)) { - SCM head, tail; - $1 = std::vector<T >(); - tail = $input; - while (!gh_null_p(tail)) { - head = gh_car(tail); - tail = gh_cdr(tail); - $1.push_back(*((T*)SWIG_MustGetPtr(head, - $descriptor(T *), - $argnum, 0))); - } - } else { - $1 = *(($&1_type) - SWIG_MustGetPtr($input,$&1_descriptor,$argnum, 0)); - } - } - %typemap(in) const vector<T>& (std::vector<T> temp), - const vector<T>* (std::vector<T> temp) { - if (gh_vector_p($input)) { - unsigned long size = gh_vector_length($input); - temp = std::vector<T >(size); - $1 = &temp; - for (unsigned long i=0; i<size; i++) { - SCM o = gh_vector_ref($input,gh_ulong2scm(i)); - temp[i] = *((T*) SWIG_MustGetPtr(o, - $descriptor(T *), - $argnum, 0)); - } - } else if (gh_null_p($input)) { - temp = std::vector<T >(); - $1 = &temp; - } else if (gh_pair_p($input)) { - temp = std::vector<T >(); - $1 = &temp; - SCM head, tail; - tail = $input; - while (!gh_null_p(tail)) { - head = gh_car(tail); - tail = gh_cdr(tail); - temp.push_back(*((T*) SWIG_MustGetPtr(head, - $descriptor(T *), - $argnum, 0))); - } - } else { - $1 = ($1_ltype) SWIG_MustGetPtr($input,$1_descriptor,$argnum, 0); - } - } - %typemap(out) vector<T> { - $result = gh_make_vector(gh_long2scm($1.size()),SCM_UNSPECIFIED); - for (unsigned int i=0; i<$1.size(); i++) { - T* x = new T((($1_type &)$1)[i]); - gh_vector_set_x($result,gh_long2scm(i), - SWIG_NewPointerObj(x, $descriptor(T *), 1)); - } - } - %typecheck(SWIG_TYPECHECK_VECTOR) vector<T> { - /* native sequence? */ - if (gh_vector_p($input)) { - unsigned int size = gh_vector_length($input); - if (size == 0) { - /* an empty sequence can be of any type */ - $1 = 1; - } else { - /* check the first element only */ - SCM o = gh_vector_ref($input,gh_ulong2scm(0)); - T* x; - if (SWIG_ConvertPtr(o,(void**) &x, - $descriptor(T *), 0) != -1) - $1 = 1; - else - $1 = 0; - } - } else if (gh_null_p($input)) { - /* again, an empty sequence can be of any type */ - $1 = 1; - } else if (gh_pair_p($input)) { - /* check the first element only */ - T* x; - SCM head = gh_car($input); - if (SWIG_ConvertPtr(head,(void**) &x, - $descriptor(T *), 0) != -1) - $1 = 1; - else - $1 = 0; - } else { - /* wrapped vector? */ - std::vector<T >* v; - if (SWIG_ConvertPtr($input,(void **) &v, - $&1_descriptor, 0) != -1) - $1 = 1; - else - $1 = 0; - } - } - %typecheck(SWIG_TYPECHECK_VECTOR) const vector<T>&, - const vector<T>* { - /* native sequence? */ - if (gh_vector_p($input)) { - unsigned int size = gh_vector_length($input); - if (size == 0) { - /* an empty sequence can be of any type */ - $1 = 1; - } else { - /* check the first element only */ - T* x; - SCM o = gh_vector_ref($input,gh_ulong2scm(0)); - if (SWIG_ConvertPtr(o,(void**) &x, - $descriptor(T *), 0) != -1) - $1 = 1; - else - $1 = 0; - } - } else if (gh_null_p($input)) { - /* again, an empty sequence can be of any type */ - $1 = 1; - } else if (gh_pair_p($input)) { - /* check the first element only */ - T* x; - SCM head = gh_car($input); - if (SWIG_ConvertPtr(head,(void**) &x, - $descriptor(T *), 0) != -1) - $1 = 1; - else - $1 = 0; - } else { - /* wrapped vector? */ - std::vector<T >* v; - if (SWIG_ConvertPtr($input,(void **) &v, - $1_descriptor, 0) != -1) - $1 = 1; - else - $1 = 0; - } - } - public: - vector(unsigned int size = 0); - vector(unsigned int size, const T& value); - vector(const vector<T>&); - %rename(length) size; - unsigned int size() const; - %rename("empty?") empty; - bool empty() const; - %rename("clear!") clear; - void clear(); - %rename("set!") set; - %rename("pop!") pop; - %rename("push!") push_back; - void push_back(const T& x); - %extend { - T pop() throw (std::out_of_range) { - if (self->size() == 0) - throw std::out_of_range("pop from empty vector"); - T x = self->back(); - self->pop_back(); - return x; - } - T& ref(int i) throw (std::out_of_range) { - int size = int(self->size()); - if (i>=0 && i<size) - return (*self)[i]; - else - throw std::out_of_range("vector index out of range"); - } - void set(int i, const T& x) throw (std::out_of_range) { - int size = int(self->size()); - if (i>=0 && i<size) - (*self)[i] = x; - else - throw std::out_of_range("vector index out of range"); - } - } - }; - - - // specializations for built-ins - %define specialize_stl_vector(T,CHECK,CONVERT_FROM,CONVERT_TO) - template<> class vector<T > { - %typemap(in) vector<T > { - if (gh_vector_p($input)) { - unsigned long size = gh_vector_length($input); - $1 = std::vector<T >(size); - for (unsigned long i=0; i<size; i++) { - SCM o = gh_vector_ref($input,gh_ulong2scm(i)); - if (CHECK(o)) - (($1_type &)$1)[i] = (T)(CONVERT_FROM(o)); - else - scm_wrong_type_arg(FUNC_NAME, $argnum, $input); - } - } else if (gh_null_p($input)) { - $1 = std::vector<T >(); - } else if (gh_pair_p($input)) { - SCM v = gh_list_to_vector($input); - unsigned long size = gh_vector_length(v); - $1 = std::vector<T >(size); - for (unsigned long i=0; i<size; i++) { - SCM o = gh_vector_ref(v,gh_ulong2scm(i)); - if (CHECK(o)) - (($1_type &)$1)[i] = (T)(CONVERT_FROM(o)); - else - scm_wrong_type_arg(FUNC_NAME, $argnum, $input); - } - } else { - $1 = *(($&1_type) - SWIG_MustGetPtr($input,$&1_descriptor,$argnum, 0)); - } - } - %typemap(in) const vector<T >& (std::vector<T > temp), - const vector<T >* (std::vector<T > temp) { - if (gh_vector_p($input)) { - unsigned long size = gh_vector_length($input); - temp = std::vector<T >(size); - $1 = &temp; - for (unsigned long i=0; i<size; i++) { - SCM o = gh_vector_ref($input,gh_ulong2scm(i)); - if (CHECK(o)) - temp[i] = (T)(CONVERT_FROM(o)); - else - scm_wrong_type_arg(FUNC_NAME, $argnum, $input); - } - } else if (gh_null_p($input)) { - temp = std::vector<T >(); - $1 = &temp; - } else if (gh_pair_p($input)) { - SCM v = gh_list_to_vector($input); - unsigned long size = gh_vector_length(v); - temp = std::vector<T >(size); - $1 = &temp; - for (unsigned long i=0; i<size; i++) { - SCM o = gh_vector_ref(v,gh_ulong2scm(i)); - if (CHECK(o)) - temp[i] = (T)(CONVERT_FROM(o)); - else - scm_wrong_type_arg(FUNC_NAME, $argnum, $input); - } - } else { - $1 = ($1_ltype) SWIG_MustGetPtr($input,$1_descriptor,$argnum, 0); - } - } - %typemap(out) vector<T > { - $result = gh_make_vector(gh_long2scm($1.size()),SCM_UNSPECIFIED); - for (unsigned int i=0; i<$1.size(); i++) { - SCM x = CONVERT_TO((($1_type &)$1)[i]); - gh_vector_set_x($result,gh_long2scm(i),x); - } - } - %typecheck(SWIG_TYPECHECK_VECTOR) vector<T > { - /* native sequence? */ - if (gh_vector_p($input)) { - unsigned int size = gh_vector_length($input); - if (size == 0) { - /* an empty sequence can be of any type */ - $1 = 1; - } else { - /* check the first element only */ - T* x; - SCM o = gh_vector_ref($input,gh_ulong2scm(0)); - $1 = CHECK(o) ? 1 : 0; - } - } else if (gh_null_p($input)) { - /* again, an empty sequence can be of any type */ - $1 = 1; - } else if (gh_pair_p($input)) { - /* check the first element only */ - T* x; - SCM head = gh_car($input); - $1 = CHECK(head) ? 1 : 0; - } else { - /* wrapped vector? */ - std::vector<T >* v; - $1 = (SWIG_ConvertPtr($input,(void **) &v, - $&1_descriptor, 0) != -1) ? 1 : 0; - } - } - %typecheck(SWIG_TYPECHECK_VECTOR) const vector<T >&, - const vector<T >* { - /* native sequence? */ - if (gh_vector_p($input)) { - unsigned int size = gh_vector_length($input); - if (size == 0) { - /* an empty sequence can be of any type */ - $1 = 1; - } else { - /* check the first element only */ - T* x; - SCM o = gh_vector_ref($input,gh_ulong2scm(0)); - $1 = CHECK(o) ? 1 : 0; - } - } else if (gh_null_p($input)) { - /* again, an empty sequence can be of any type */ - $1 = 1; - } else if (gh_pair_p($input)) { - /* check the first element only */ - T* x; - SCM head = gh_car($input); - $1 = CHECK(head) ? 1 : 0; - } else { - /* wrapped vector? */ - std::vector<T >* v; - $1 = (SWIG_ConvertPtr($input,(void **) &v, - $1_descriptor, 0) != -1) ? 1 : 0; - } - } - public: - vector(unsigned int size = 0); - vector(unsigned int size, const T& value); - vector(const vector<T >&); - %rename(length) size; - unsigned int size() const; - %rename("empty?") empty; - bool empty() const; - %rename("clear!") clear; - void clear(); - %rename("set!") set; - %rename("pop!") pop; - %rename("push!") push_back; - void push_back(T x); - %extend { - T pop() throw (std::out_of_range) { - if (self->size() == 0) - throw std::out_of_range("pop from empty vector"); - T x = self->back(); - self->pop_back(); - return x; - } - T ref(int i) throw (std::out_of_range) { - int size = int(self->size()); - if (i>=0 && i<size) - return (*self)[i]; - else - throw std::out_of_range("vector index out of range"); - } - void set(int i, T x) throw (std::out_of_range) { - int size = int(self->size()); - if (i>=0 && i<size) - (*self)[i] = x; - else - throw std::out_of_range("vector index out of range"); - } - } - }; - %enddef - - specialize_stl_vector(bool,gh_boolean_p,gh_scm2bool,SWIG_bool2scm); - specialize_stl_vector(char,gh_number_p,gh_scm2long,gh_long2scm); - specialize_stl_vector(int,gh_number_p,gh_scm2long,gh_long2scm); - specialize_stl_vector(long,gh_number_p,gh_scm2long,gh_long2scm); - specialize_stl_vector(short,gh_number_p,gh_scm2long,gh_long2scm); - specialize_stl_vector(unsigned char,gh_number_p,gh_scm2ulong,gh_ulong2scm); - specialize_stl_vector(unsigned int,gh_number_p,gh_scm2ulong,gh_ulong2scm); - specialize_stl_vector(unsigned long,gh_number_p,gh_scm2ulong,gh_ulong2scm); - specialize_stl_vector(unsigned short,gh_number_p,gh_scm2ulong,gh_ulong2scm); - specialize_stl_vector(float,gh_number_p,gh_scm2double,gh_double2scm); - specialize_stl_vector(double,gh_number_p,gh_scm2double,gh_double2scm); - specialize_stl_vector(std::string,gh_string_p,SWIG_scm2string,SWIG_string2scm); - specialize_stl_vector(std::complex<float>, scm_is_complex, - SWIG_scm2cmplxfloat, SWIG_cmplxfloat2scm); - specialize_stl_vector(std::complex<double>, scm_is_complex, - SWIG_scm2cmplxdouble,SWIG_cmplxdouble2scm); - -} - diff --git a/gnuradio-core/src/lib/viterbi/.gitignore b/gnuradio-core/src/lib/viterbi/.gitignore deleted file mode 100644 index 85bb5cc04..000000000 --- a/gnuradio-core/src/lib/viterbi/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -/Makefile -/Makefile.in -/.libs -/.deps -/encode -/decode diff --git a/gnuradio-core/src/lib/viterbi/Makefile.am b/gnuradio-core/src/lib/viterbi/Makefile.am deleted file mode 100644 index 7e65880b3..000000000 --- a/gnuradio-core/src/lib/viterbi/Makefile.am +++ /dev/null @@ -1,46 +0,0 @@ -# -# Copyright 2008 Free Software Foundation, Inc. -# -# 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. -# - -include $(top_srcdir)/Makefile.common - -LIBS = -lm - -AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES) $(GRUEL_INCLUDES) \ - -I$(top_srcdir)/gnuradio-core/src/lib/general \ - $(WITH_INCLUDES) - -noinst_LTLIBRARIES = libviterbi.la - -libviterbi_la_SOURCES = \ - metrics.c \ - tab.c \ - viterbi.c - -noinst_HEADERS = \ - viterbi.h - -noinst_PROGRAMS = encode decode - -encode_SOURCES = encode.cc - -encode_LDADD = libviterbi.la - -decode_SOURCES = decode.cc - -decode_LDADD = libviterbi.la |