summaryrefslogtreecommitdiff
path: root/gnuradio-core/src/lib/general
diff options
context:
space:
mode:
Diffstat (limited to 'gnuradio-core/src/lib/general')
-rw-r--r--gnuradio-core/src/lib/general/CMakeLists.txt301
-rw-r--r--gnuradio-core/src/lib/general/complex_vec_test.h17
-rw-r--r--gnuradio-core/src/lib/general/gr_additive_scrambler_bb.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_agc2_cc.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_agc2_ff.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_agc_cc.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_agc_ff.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_align_on_samplenumbers_ss.h9
-rw-r--r--gnuradio-core/src/lib/general/gr_annotator_1to1.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_annotator_alltoall.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_bin_statistics_f.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_burst_tagger.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_bytes_to_syms.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_char_to_float.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_check_counting_s.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_check_lfsr_32k_s.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_circular_file.h6
-rw-r--r--gnuradio-core/src/lib/general/gr_complex_to_interleaved_short.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_complex_to_xxx.h37
-rw-r--r--gnuradio-core/src/lib/general/gr_conjugate_cc.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_constants.h11
-rw-r--r--gnuradio-core/src/lib/general/gr_constellation_decoder_cb.h66
-rw-r--r--gnuradio-core/src/lib/general/gr_copy.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_core_api.h33
-rw-r--r--gnuradio-core/src/lib/general/gr_correlate_access_code_tag_bb.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_costas_loop_cc.h146
-rw-r--r--gnuradio-core/src/lib/general/gr_count_bits.h10
-rw-r--r--gnuradio-core/src/lib/general/gr_cpfsk_bc.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_cpm.cc8
-rw-r--r--gnuradio-core/src/lib/general/gr_cpm.h3
-rw-r--r--gnuradio-core/src/lib/general/gr_ctcss_squelch_ff.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_decode_ccsds_27_fb.h9
-rw-r--r--gnuradio-core/src/lib/general/gr_deinterleave.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_delay.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_descrambler_bb.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_diff_decoder_bb.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_diff_encoder_bb.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_diff_phasor_cc.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_dpll_bb.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_encode_ccsds_27_bb.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_expj.h1
-rw-r--r--gnuradio-core/src/lib/general/gr_fake_channel_coder_pp.h13
-rw-r--r--gnuradio-core/src/lib/general/gr_feedforward_agc_cc.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_feval.h17
-rw-r--r--gnuradio-core/src/lib/general/gr_fft_vcc.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_fft_vcc_fftw.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_fft_vfc.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_firdes.h3
-rw-r--r--gnuradio-core/src/lib/general/gr_float_to_char.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_float_to_complex.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_float_to_short.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_float_to_uchar.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_fmdet_cf.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_framer_sink_1.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_frequency_modulator_fc.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_fxpt.h5
-rw-r--r--gnuradio-core/src/lib/general/gr_fxpt_nco.h3
-rw-r--r--gnuradio-core/src/lib/general/gr_fxpt_vco.h3
-rw-r--r--gnuradio-core/src/lib/general/gr_glfsr_source_b.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_glfsr_source_f.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_head.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_int_to_float.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_interleave.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_interleaved_short_to_complex.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_iqcomp_cc.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_keep_one_in_n.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_kludge_copy.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_lfsr_32k_source_s.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_lms_dfe_cc.h65
-rw-r--r--gnuradio-core/src/lib/general/gr_lms_dfe_ff.h63
-rw-r--r--gnuradio-core/src/lib/general/gr_log2_const.h1
-rw-r--r--gnuradio-core/src/lib/general/gr_map_bb.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_math.h3
-rw-r--r--gnuradio-core/src/lib/general/gr_misc.h9
-rw-r--r--gnuradio-core/src/lib/general/gr_nlog10_ff.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_nop.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_null_sink.h8
-rw-r--r--gnuradio-core/src/lib/general/gr_null_source.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_ofdm_bpsk_demapper.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_ofdm_cyclic_prefixer.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_ofdm_demapper_vcb.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_ofdm_frame_acquisition.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_ofdm_frame_sink.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_ofdm_frame_sink2.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_ofdm_insert_preamble.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_ofdm_mapper_bcv.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_ofdm_sampler.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_pa_2x2_phase_combiner.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_packet_sink.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_peak_detector2_fb.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_phase_modulator_fc.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_pll_carriertracking_cc.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_pll_freqdet_cf.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_pll_refout_cc.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_pn_correlator_cc.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_prefs.h3
-rw-r--r--gnuradio-core/src/lib/general/gr_probe_avg_mag_sqrd_c.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_probe_avg_mag_sqrd_cf.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_probe_avg_mag_sqrd_f.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_probe_density_b.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_probe_mpsk_snr_c.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_probe_signal_f.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_pwr_squelch_cc.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_pwr_squelch_ff.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_quadrature_demod_cf.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_rail_ff.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_random.h3
-rw-r--r--gnuradio-core/src/lib/general/gr_regenerate_bb.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_remez.h3
-rw-r--r--gnuradio-core/src/lib/general/gr_repeat.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_reverse.h1
-rw-r--r--gnuradio-core/src/lib/general/gr_rms_cf.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_rms_ff.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_scrambler_bb.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_short_to_float.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_simple_correlator.cc9
-rw-r--r--gnuradio-core/src/lib/general/gr_simple_correlator.h8
-rw-r--r--gnuradio-core/src/lib/general/gr_simple_framer.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_simple_squelch_cc.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_skiphead.h12
-rw-r--r--gnuradio-core/src/lib/general/gr_squash_ff.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_squelch_base_cc.h3
-rw-r--r--gnuradio-core/src/lib/general/gr_squelch_base_ff.h3
-rw-r--r--gnuradio-core/src/lib/general/gr_stream_mux.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_stream_to_streams.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_stream_to_vector.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_streams_to_stream.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_streams_to_vector.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_stretch_ff.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_test.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_threshold_ff.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_throttle.h5
-rw-r--r--gnuradio-core/src/lib/general/gr_uchar_to_float.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_unpack_k_bits_bb.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_vco_f.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_vector_to_stream.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_vector_to_streams.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_wavelet_ff.h7
-rw-r--r--gnuradio-core/src/lib/general/gr_wvps_ff.h7
-rw-r--r--gnuradio-core/src/lib/general/gri_agc2_cc.h3
-rw-r--r--gnuradio-core/src/lib/general/gri_agc2_ff.h3
-rw-r--r--gnuradio-core/src/lib/general/gri_agc_cc.h3
-rw-r--r--gnuradio-core/src/lib/general/gri_agc_ff.h3
-rw-r--r--gnuradio-core/src/lib/general/gri_char_to_float.h6
-rw-r--r--gnuradio-core/src/lib/general/gri_control_loop.cc4
-rw-r--r--gnuradio-core/src/lib/general/gri_control_loop.h4
-rw-r--r--gnuradio-core/src/lib/general/gri_debugger_hook.h6
-rw-r--r--gnuradio-core/src/lib/general/gri_fft.cc13
-rw-r--r--gnuradio-core/src/lib/general/gri_fft.h9
-rw-r--r--gnuradio-core/src/lib/general/gri_float_to_char.h5
-rw-r--r--gnuradio-core/src/lib/general/gri_float_to_short.h5
-rw-r--r--gnuradio-core/src/lib/general/gri_float_to_uchar.h5
-rw-r--r--gnuradio-core/src/lib/general/gri_glfsr.h6
-rw-r--r--gnuradio-core/src/lib/general/gri_interleaved_short_to_complex.h3
-rw-r--r--gnuradio-core/src/lib/general/gri_lfsr.h3
-rw-r--r--gnuradio-core/src/lib/general/gri_lfsr_15_1_0.h6
-rw-r--r--gnuradio-core/src/lib/general/gri_lfsr_32k.h3
-rw-r--r--gnuradio-core/src/lib/general/gri_short_to_float.h6
-rw-r--r--gnuradio-core/src/lib/general/gri_uchar_to_float.h6
-rw-r--r--gnuradio-core/src/lib/general/malloc16.c1
-rw-r--r--gnuradio-core/src/lib/general/malloc16.h8
-rw-r--r--gnuradio-core/src/lib/general/qa_general.h3
-rw-r--r--gnuradio-core/src/lib/general/qa_gri_lfsr.cc9
163 files changed, 1300 insertions, 444 deletions
diff --git a/gnuradio-core/src/lib/general/CMakeLists.txt b/gnuradio-core/src/lib/general/CMakeLists.txt
new file mode 100644
index 000000000..0445e251e
--- /dev/null
+++ b/gnuradio-core/src/lib/general/CMakeLists.txt
@@ -0,0 +1,301 @@
+# Copyright 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.
+
+########################################################################
+# This file included, use CMake directory variables
+########################################################################
+
+########################################################################
+# Handle the generated sine table
+########################################################################
+add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/sine_table.h
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/gen_sine_table.py
+ COMMAND ${PYTHON_EXECUTABLE}
+ ${CMAKE_CURRENT_SOURCE_DIR}/gen_sine_table.py >
+ ${CMAKE_CURRENT_BINARY_DIR}/sine_table.h
+)
+
+include(AddFileDependencies)
+ADD_FILE_DEPENDENCIES(${CMAKE_CURRENT_SOURCE_DIR}/gr_fxpt.cc
+ ${CMAKE_CURRENT_BINARY_DIR}/sine_table.h
+)
+
+########################################################################
+# Handle the generated constants
+########################################################################
+execute_process(COMMAND ${PYTHON_EXECUTABLE} -c
+ "import time;print time.strftime('%a, %d %b %Y %H:%M:%S', time.gmtime())"
+ OUTPUT_VARIABLE BUILD_DATE OUTPUT_STRIP_TRAILING_WHITESPACE
+)
+message(STATUS "Loading build date ${BUILD_DATE} into gr_constants...")
+
+message(STATUS "Loading version ${VERSION} into gr_constants...")
+
+file(TO_NATIVE_PATH "${CMAKE_INSTALL_PREFIX}/${GR_CONF_DIR}" SYSCONFDIR)
+file(TO_NATIVE_PATH "${CMAKE_INSTALL_PREFIX}/${GR_PKG_CONF_DIR}" GR_PREFSDIR)
+
+#double escape for windows backslash path separators
+string(REPLACE "\\" "\\\\" prefix ${prefix})
+string(REPLACE "\\" "\\\\" SYSCONFDIR ${SYSCONFDIR})
+string(REPLACE "\\" "\\\\" GR_PREFSDIR ${GR_PREFSDIR})
+
+configure_file(
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_constants.cc.in
+ ${CMAKE_CURRENT_BINARY_DIR}/gr_constants.cc
+@ONLY)
+
+list(APPEND gnuradio_core_sources ${CMAKE_CURRENT_BINARY_DIR}/gr_constants.cc)
+
+########################################################################
+# Append gnuradio-core library sources
+########################################################################
+list(APPEND gnuradio_core_sources
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_circular_file.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_count_bits.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_fast_atan2f.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_fft_vcc_fftw.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_fxpt.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_misc.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_random.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_reverse.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_add_const_ss_generic.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_char_to_float.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_control_loop.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_debugger_hook.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_fft.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_float_to_char.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_float_to_short.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_float_to_uchar.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_glfsr.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_interleaved_short_to_complex.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_short_to_float.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_uchar_to_float.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/malloc16.c
+)
+
+########################################################################
+# Append gnuradio-core test sources
+########################################################################
+list(APPEND test_gnuradio_core_sources
+ ${CMAKE_CURRENT_SOURCE_DIR}/qa_general.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/qa_gr_circular_file.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/qa_gr_cpm.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/qa_gr_firdes.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/qa_gr_fxpt.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/qa_gr_fxpt_nco.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/qa_gr_fxpt_vco.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/qa_gr_math.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/qa_gri_lfsr.cc
+)
+
+########################################################################
+# Install runtime headers
+########################################################################
+install(FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_core_api.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_circular_file.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_constants.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_count_bits.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_expj.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_fft_vcc_fftw.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_fxpt.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_fxpt_nco.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_fxpt_vco.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_log2_const.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_math.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_misc.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_nco.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_random.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_reverse.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_simple_framer_sync.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_test_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_vco.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_add_const_ss.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_agc_cc.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_agc_ff.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_agc2_cc.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_agc2_ff.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_char_to_float.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_control_loop.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_debugger_hook.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_fft.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_float_to_char.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_float_to_short.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_float_to_uchar.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_lfsr.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_glfsr.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_interleaved_short_to_complex.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_lfsr_15_1_0.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_lfsr_32k.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_short_to_float.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_uchar_to_float.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/malloc16.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/random.h
+ DESTINATION ${GR_INCLUDE_DIR}/gnuradio
+ COMPONENT "core_devel"
+)
+
+########################################################################
+# Install swig headers
+########################################################################
+if(ENABLE_PYTHON)
+install(FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/general.i
+ ${CMAKE_CURRENT_SOURCE_DIR}/gr_constants.i
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_agc_cc.i
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_agc_ff.i
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_agc2_cc.i
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_agc2_ff.i
+ ${CMAKE_CURRENT_SOURCE_DIR}/gri_control_loop.i
+ DESTINATION ${GR_INCLUDE_DIR}/gnuradio/swig
+ COMPONENT "core_swig"
+)
+endif(ENABLE_PYTHON)
+
+########################################################################
+# Handle triple-threat files that have cc, h, and i
+########################################################################
+set(gr_core_general_triple_threats
+ complex_vec_test
+ gr_additive_scrambler_bb
+ gr_agc_cc
+ gr_agc_ff
+ gr_agc2_cc
+ gr_agc2_ff
+ gr_align_on_samplenumbers_ss
+ gr_bin_statistics_f
+ gr_bytes_to_syms
+ gr_char_to_float
+ gr_check_counting_s
+ gr_check_lfsr_32k_s
+ gr_complex_to_interleaved_short
+ gr_complex_to_xxx
+ gr_conjugate_cc
+ gr_copy
+ gr_cpfsk_bc
+ gr_cpm
+ gr_ctcss_squelch_ff
+ gr_decode_ccsds_27_fb
+ gr_diff_decoder_bb
+ gr_diff_encoder_bb
+ gr_diff_phasor_cc
+ gr_dpll_bb
+ gr_deinterleave
+ gr_delay
+ gr_encode_ccsds_27_bb
+ gr_fake_channel_coder_pp
+ gr_feedforward_agc_cc
+ gr_feval
+ gr_fft_vcc
+ gr_fft_vfc
+ gr_firdes
+ gr_float_to_char
+ gr_float_to_complex
+ gr_float_to_short
+ gr_float_to_uchar
+ gr_fmdet_cf
+ gr_frequency_modulator_fc
+ gr_framer_sink_1
+ gr_glfsr_source_b
+ gr_glfsr_source_f
+ gr_head
+ gr_int_to_float
+ gr_interleave
+ gr_interleaved_short_to_complex
+ gr_iqcomp_cc
+ gr_keep_one_in_n
+ gr_kludge_copy
+ gr_lfsr_32k_source_s
+ gr_map_bb
+ gr_nlog10_ff
+ gr_nop
+ gr_null_sink
+ gr_null_source
+ gr_ofdm_frame_acquisition
+ gr_ofdm_cyclic_prefixer
+ gr_ofdm_demapper_vcb
+ gr_ofdm_mapper_bcv
+ gr_ofdm_frame_sink
+ #gr_ofdm_frame_sink2 #cannot build yet...
+ gr_ofdm_insert_preamble
+ gr_ofdm_sampler
+ gr_pa_2x2_phase_combiner
+ gr_packet_sink
+ gr_peak_detector2_fb
+ gr_phase_modulator_fc
+ gr_pll_carriertracking_cc
+ gr_pll_freqdet_cf
+ gr_pll_refout_cc
+ gr_pn_correlator_cc
+ gr_prefs
+ gr_probe_avg_mag_sqrd_c
+ gr_probe_avg_mag_sqrd_cf
+ gr_probe_avg_mag_sqrd_f
+ gr_probe_signal_f
+ gr_pwr_squelch_cc
+ gr_pwr_squelch_ff
+ gr_quadrature_demod_cf
+ gr_rail_ff
+ gr_regenerate_bb
+ gr_remez
+ gr_rms_cf
+ gr_rms_ff
+ gr_repeat
+ gr_short_to_float
+ gr_simple_correlator
+ gr_simple_framer
+ gr_simple_squelch_cc
+ gr_skiphead
+ gr_squash_ff
+ gr_squelch_base_cc
+ gr_squelch_base_ff
+ gr_stream_mux
+ gr_stream_to_streams
+ gr_stream_to_vector
+ gr_streams_to_stream
+ gr_streams_to_vector
+ gr_stretch_ff
+ gr_test
+ gr_threshold_ff
+ gr_throttle
+ gr_uchar_to_float
+ gr_vco_f
+ gr_vector_to_stream
+ gr_vector_to_streams
+ gr_unpack_k_bits_bb
+ gr_wavelet_ff
+ gr_wvps_ff
+ gr_descrambler_bb
+ gr_scrambler_bb
+ gr_probe_mpsk_snr_c
+ gr_probe_density_b
+ gr_annotator_alltoall
+ gr_annotator_1to1
+ gr_burst_tagger
+ gr_correlate_access_code_tag_bb
+)
+
+foreach(file_tt ${gr_core_general_triple_threats})
+ list(APPEND gnuradio_core_sources ${CMAKE_CURRENT_SOURCE_DIR}/${file_tt}.cc)
+ install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${file_tt}.h DESTINATION ${GR_INCLUDE_DIR}/gnuradio COMPONENT "core_devel")
+ if(ENABLE_PYTHON)
+ install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${file_tt}.i DESTINATION ${GR_INCLUDE_DIR}/gnuradio/swig COMPONENT "core_swig")
+ endif(ENABLE_PYTHON)
+endforeach(file_tt ${gr_core_general_triple_threats})
diff --git a/gnuradio-core/src/lib/general/complex_vec_test.h b/gnuradio-core/src/lib/general/complex_vec_test.h
index d13dedf63..be4de41fb 100644
--- a/gnuradio-core/src/lib/general/complex_vec_test.h
+++ b/gnuradio-core/src/lib/general/complex_vec_test.h
@@ -1,27 +1,28 @@
+#include <gr_core_api.h>
#include <vector>
#include <complex>
-std::vector<std::complex<float> >
+GR_CORE_API std::vector<std::complex<float> >
complex_vec_test0();
-std::vector<std::complex<float> >
+GR_CORE_API std::vector<std::complex<float> >
complex_vec_test1(const std::vector<std::complex<float> > &input);
-std::complex<float>
+GR_CORE_API std::complex<float>
complex_scalar_test0();
-std::complex<float>
+GR_CORE_API std::complex<float>
complex_scalar_test1(std::complex<float> input);
-std::vector<int>
+GR_CORE_API std::vector<int>
int_vec_test0();
-std::vector<int>
+GR_CORE_API std::vector<int>
int_vec_test1(const std::vector<int> &input);
-std::vector<float>
+GR_CORE_API std::vector<float>
float_vec_test0();
-std::vector<float>
+GR_CORE_API std::vector<float>
float_vec_test1(const std::vector<float> &input);
diff --git a/gnuradio-core/src/lib/general/gr_additive_scrambler_bb.h b/gnuradio-core/src/lib/general/gr_additive_scrambler_bb.h
index 6c9493050..4c7c8f87e 100644
--- a/gnuradio-core/src/lib/general/gr_additive_scrambler_bb.h
+++ b/gnuradio-core/src/lib/general/gr_additive_scrambler_bb.h
@@ -22,13 +22,14 @@
#ifndef INCLUDED_GR_ADDITIVE_SCRAMBLER_BB_H
#define INCLUDED_GR_ADDITIVE_SCRAMBLER_BB_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include "gri_lfsr.h"
class gr_additive_scrambler_bb;
typedef boost::shared_ptr<gr_additive_scrambler_bb> gr_additive_scrambler_bb_sptr;
-gr_additive_scrambler_bb_sptr gr_make_additive_scrambler_bb(int mask, int seed, int len, int count=0);
+GR_CORE_API gr_additive_scrambler_bb_sptr gr_make_additive_scrambler_bb(int mask, int seed, int len, int count=0);
/*!
* Scramble an input stream using an LFSR. This block works on the LSB only
@@ -48,9 +49,9 @@ gr_additive_scrambler_bb_sptr gr_make_additive_scrambler_bb(int mask, int seed,
* \ingroup coding_blk
*/
-class gr_additive_scrambler_bb : public gr_sync_block
+class GR_CORE_API gr_additive_scrambler_bb : public gr_sync_block
{
- friend gr_additive_scrambler_bb_sptr gr_make_additive_scrambler_bb(int mask, int seed, int len, int count);
+ friend GR_CORE_API gr_additive_scrambler_bb_sptr gr_make_additive_scrambler_bb(int mask, int seed, int len, int count);
gri_lfsr d_lfsr;
int d_count;
diff --git a/gnuradio-core/src/lib/general/gr_agc2_cc.h b/gnuradio-core/src/lib/general/gr_agc2_cc.h
index 0eb20afb9..6127c3aa7 100644
--- a/gnuradio-core/src/lib/general/gr_agc2_cc.h
+++ b/gnuradio-core/src/lib/general/gr_agc2_cc.h
@@ -23,13 +23,14 @@
#ifndef INCLUDED_GR_AGC2_CC_H
#define INCLUDED_GR_AGC2_CC_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <gri_agc2_cc.h>
class gr_agc2_cc;
typedef boost::shared_ptr<gr_agc2_cc> gr_agc2_cc_sptr;
-gr_agc2_cc_sptr
+GR_CORE_API gr_agc2_cc_sptr
gr_make_agc2_cc (float attack_rate = 1e-1, float decay_rate = 1e-2, float reference = 1.0,
float gain = 1.0, float max_gain = 0.0);
/*!
@@ -39,9 +40,9 @@ gr_make_agc2_cc (float attack_rate = 1e-1, float decay_rate = 1e-2, float refere
* For Power the absolute value of the complex number is used.
*/
-class gr_agc2_cc : public gr_sync_block, public gri_agc2_cc
+class GR_CORE_API gr_agc2_cc : public gr_sync_block, public gri_agc2_cc
{
- friend gr_agc2_cc_sptr gr_make_agc2_cc (float attack_rate, float decay_rate, float reference,
+ friend GR_CORE_API gr_agc2_cc_sptr gr_make_agc2_cc (float attack_rate, float decay_rate, float reference,
float gain, float max_gain);
gr_agc2_cc (float attack_rate, float decay_rate, float reference,
float gain, float max_gain);
diff --git a/gnuradio-core/src/lib/general/gr_agc2_ff.h b/gnuradio-core/src/lib/general/gr_agc2_ff.h
index ef470765f..269d940d4 100644
--- a/gnuradio-core/src/lib/general/gr_agc2_ff.h
+++ b/gnuradio-core/src/lib/general/gr_agc2_ff.h
@@ -23,12 +23,13 @@
#ifndef INCLUDED_GR_AGC2_FF_H
#define INCLUDED_GR_AGC2_FF_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <gri_agc2_ff.h>
class gr_agc2_ff;
typedef boost::shared_ptr<gr_agc2_ff> gr_agc2_ff_sptr;
-gr_agc2_ff_sptr
+GR_CORE_API gr_agc2_ff_sptr
gr_make_agc2_ff (float attack_rate = 1e-1, float decay_rate = 1e-2, float reference = 1.0,
float gain = 1.0, float max_gain = 0.0);
/*!
@@ -38,9 +39,9 @@ gr_make_agc2_ff (float attack_rate = 1e-1, float decay_rate = 1e-2, float refere
* Power is approximated by absolute value
*/
-class gr_agc2_ff : public gr_sync_block, public gri_agc2_ff
+class GR_CORE_API gr_agc2_ff : public gr_sync_block, public gri_agc2_ff
{
- friend gr_agc2_ff_sptr gr_make_agc2_ff (float attack_rate, float decay_rate,
+ friend GR_CORE_API gr_agc2_ff_sptr gr_make_agc2_ff (float attack_rate, float decay_rate,
float reference, float gain, float max_gain);
gr_agc2_ff (float attack_rate, float decay_rate, float reference, float gain, float max_gain);
diff --git a/gnuradio-core/src/lib/general/gr_agc_cc.h b/gnuradio-core/src/lib/general/gr_agc_cc.h
index 43a5de6c7..f348fff91 100644
--- a/gnuradio-core/src/lib/general/gr_agc_cc.h
+++ b/gnuradio-core/src/lib/general/gr_agc_cc.h
@@ -23,12 +23,13 @@
#ifndef INCLUDED_GR_AGC_CC_H
#define INCLUDED_GR_AGC_CC_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <gri_agc_cc.h>
class gr_agc_cc;
typedef boost::shared_ptr<gr_agc_cc> gr_agc_cc_sptr;
-gr_agc_cc_sptr
+GR_CORE_API gr_agc_cc_sptr
gr_make_agc_cc (float rate = 1e-4, float reference = 1.0,
float gain = 1.0, float max_gain = 0.0);
/*!
@@ -38,9 +39,9 @@ gr_make_agc_cc (float rate = 1e-4, float reference = 1.0,
* For Power the absolute value of the complex number is used.
*/
-class gr_agc_cc : public gr_sync_block, public gri_agc_cc
+class GR_CORE_API gr_agc_cc : public gr_sync_block, public gri_agc_cc
{
- friend gr_agc_cc_sptr gr_make_agc_cc (float rate, float reference,
+ friend GR_CORE_API gr_agc_cc_sptr gr_make_agc_cc (float rate, float reference,
float gain, float max_gain);
gr_agc_cc (float rate, float reference,
float gain, float max_gain);
diff --git a/gnuradio-core/src/lib/general/gr_agc_ff.h b/gnuradio-core/src/lib/general/gr_agc_ff.h
index 7cb167fca..94db9eef5 100644
--- a/gnuradio-core/src/lib/general/gr_agc_ff.h
+++ b/gnuradio-core/src/lib/general/gr_agc_ff.h
@@ -23,12 +23,13 @@
#ifndef INCLUDED_GR_AGC_FF_H
#define INCLUDED_GR_AGC_FF_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <gri_agc_ff.h>
class gr_agc_ff;
typedef boost::shared_ptr<gr_agc_ff> gr_agc_ff_sptr;
-gr_agc_ff_sptr
+GR_CORE_API gr_agc_ff_sptr
gr_make_agc_ff (float rate = 1e-4, float reference = 1.0,
float gain = 1.0, float max_gain = 0.0);
@@ -39,9 +40,9 @@ gr_make_agc_ff (float rate = 1e-4, float reference = 1.0,
* Power is approximated by absolute value
*/
-class gr_agc_ff : public gr_sync_block, public gri_agc_ff
+class GR_CORE_API gr_agc_ff : public gr_sync_block, public gri_agc_ff
{
- friend gr_agc_ff_sptr gr_make_agc_ff (float rate, float reference,
+ friend GR_CORE_API gr_agc_ff_sptr gr_make_agc_ff (float rate, float reference,
float gain, float max_gain);
gr_agc_ff (float rate, float reference, float gain, float max_gain);
diff --git a/gnuradio-core/src/lib/general/gr_align_on_samplenumbers_ss.h b/gnuradio-core/src/lib/general/gr_align_on_samplenumbers_ss.h
index 5038e168b..61f70ee96 100644
--- a/gnuradio-core/src/lib/general/gr_align_on_samplenumbers_ss.h
+++ b/gnuradio-core/src/lib/general/gr_align_on_samplenumbers_ss.h
@@ -23,6 +23,7 @@
#ifndef INCLUDED_GR_ALIGN_ON_SAMPLE_NUMBERS_SS_H
#define INCLUDED_GR_ALIGN_ON_SAMPLE_NUMBERS_SS_H
+#include <gr_core_api.h>
#include <gr_block.h>
/*!
@@ -45,19 +46,19 @@
class gr_align_on_samplenumbers_ss;
typedef boost::shared_ptr<gr_align_on_samplenumbers_ss> gr_align_on_samplenumbers_ss_sptr;
-gr_align_on_samplenumbers_ss_sptr gr_make_align_on_samplenumbers_ss (int nchan=2, int align_interval=128);
+GR_CORE_API gr_align_on_samplenumbers_ss_sptr gr_make_align_on_samplenumbers_ss (int nchan=2, int align_interval=128);
-class gr_align_on_samplenumbers_ss : public gr_block
+class GR_CORE_API gr_align_on_samplenumbers_ss : public gr_block
{
int d_align_interval;
int d_sample_counter;
int d_nchan;
bool d_in_presync;
unsigned int d_ninputs;
- class align_state {
+ class GR_CORE_API align_state {
public:
unsigned int ucounter_end;
unsigned int ucounter_begin;
@@ -72,7 +73,7 @@ class gr_align_on_samplenumbers_ss : public gr_block
};
std::vector<align_state> d_state;
- friend gr_align_on_samplenumbers_ss_sptr gr_make_align_on_samplenumbers_ss (int nchan,int align_interval);
+ friend GR_CORE_API gr_align_on_samplenumbers_ss_sptr gr_make_align_on_samplenumbers_ss (int nchan,int align_interval);
gr_align_on_samplenumbers_ss (int nchan,int align_interval);
public:
diff --git a/gnuradio-core/src/lib/general/gr_annotator_1to1.h b/gnuradio-core/src/lib/general/gr_annotator_1to1.h
index 4abc5b051..d866407fe 100644
--- a/gnuradio-core/src/lib/general/gr_annotator_1to1.h
+++ b/gnuradio-core/src/lib/general/gr_annotator_1to1.h
@@ -23,13 +23,14 @@
#ifndef INCLUDED_GR_ANNOTATOR_1TO1_H
#define INCLUDED_GR_ANNOTATOR_1TO1_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_annotator_1to1;
typedef boost::shared_ptr<gr_annotator_1to1> gr_annotator_1to1_sptr;
// public constructor
-gr_annotator_1to1_sptr
+GR_CORE_API gr_annotator_1to1_sptr
gr_make_annotator_1to1 (int when, size_t sizeof_stream_item);
/*!
@@ -45,7 +46,7 @@ gr_make_annotator_1to1 (int when, size_t sizeof_stream_item);
*
* This block is only meant for testing and showing how to use the tags.
*/
-class gr_annotator_1to1 : public gr_sync_block
+class GR_CORE_API gr_annotator_1to1 : public gr_sync_block
{
public:
~gr_annotator_1to1 ();
@@ -67,7 +68,7 @@ protected:
uint64_t d_tag_counter;
std::vector<pmt::pmt_t> d_stored_tags;
- friend gr_annotator_1to1_sptr
+ friend GR_CORE_API gr_annotator_1to1_sptr
gr_make_annotator_1to1 (int when, size_t sizeof_stream_item);
};
diff --git a/gnuradio-core/src/lib/general/gr_annotator_alltoall.h b/gnuradio-core/src/lib/general/gr_annotator_alltoall.h
index e1e51ebf3..259b2e54c 100644
--- a/gnuradio-core/src/lib/general/gr_annotator_alltoall.h
+++ b/gnuradio-core/src/lib/general/gr_annotator_alltoall.h
@@ -23,13 +23,14 @@
#ifndef INCLUDED_GR_ANNOTATOR_ALLTOALL_H
#define INCLUDED_GR_ANNOTATOR_ALLTOALL_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_annotator_alltoall;
typedef boost::shared_ptr<gr_annotator_alltoall> gr_annotator_alltoall_sptr;
// public constructor
-gr_annotator_alltoall_sptr
+GR_CORE_API gr_annotator_alltoall_sptr
gr_make_annotator_alltoall (int when, size_t sizeof_stream_item);
/*!
@@ -45,7 +46,7 @@ gr_make_annotator_alltoall (int when, size_t sizeof_stream_item);
*
* This block is only meant for testing and showing how to use the tags.
*/
-class gr_annotator_alltoall : public gr_sync_block
+class GR_CORE_API gr_annotator_alltoall : public gr_sync_block
{
public:
~gr_annotator_alltoall ();
@@ -68,7 +69,7 @@ protected:
uint64_t d_tag_counter;
std::vector<pmt::pmt_t> d_stored_tags;
- friend gr_annotator_alltoall_sptr
+ friend GR_CORE_API gr_annotator_alltoall_sptr
gr_make_annotator_alltoall (int when, size_t sizeof_stream_item);
};
diff --git a/gnuradio-core/src/lib/general/gr_bin_statistics_f.h b/gnuradio-core/src/lib/general/gr_bin_statistics_f.h
index d8c4c2fae..f7eea7d5f 100644
--- a/gnuradio-core/src/lib/general/gr_bin_statistics_f.h
+++ b/gnuradio-core/src/lib/general/gr_bin_statistics_f.h
@@ -24,6 +24,7 @@
#define INCLUDED_GR_BIN_STATISTICS_F_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <gr_feval.h>
#include <gr_message.h>
@@ -33,7 +34,7 @@ class gr_bin_statistics_f;
typedef boost::shared_ptr<gr_bin_statistics_f> gr_bin_statistics_f_sptr;
-gr_bin_statistics_f_sptr
+GR_CORE_API gr_bin_statistics_f_sptr
gr_make_bin_statistics_f(unsigned int vlen, // vector length
gr_msg_queue_sptr msgq,
gr_feval_dd *tune, // callback
@@ -44,9 +45,9 @@ gr_make_bin_statistics_f(unsigned int vlen, // vector length
* \brief control scanning and record frequency domain statistics
* \ingroup sink_blk
*/
-class gr_bin_statistics_f : public gr_sync_block
+class GR_CORE_API gr_bin_statistics_f : public gr_sync_block
{
- friend gr_bin_statistics_f_sptr
+ friend GR_CORE_API gr_bin_statistics_f_sptr
gr_make_bin_statistics_f(unsigned int vlen, // vector length
gr_msg_queue_sptr msgq,
gr_feval_dd *tune, // callback
diff --git a/gnuradio-core/src/lib/general/gr_burst_tagger.h b/gnuradio-core/src/lib/general/gr_burst_tagger.h
index 8f814bea0..7547ba9cc 100644
--- a/gnuradio-core/src/lib/general/gr_burst_tagger.h
+++ b/gnuradio-core/src/lib/general/gr_burst_tagger.h
@@ -23,26 +23,27 @@
#ifndef INCLUDED_GR_BURST_TAGGER_H
#define INCLUDED_GR_BURST_TAGGER_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_burst_tagger;
typedef boost::shared_ptr<gr_burst_tagger> gr_burst_tagger_sptr;
-gr_burst_tagger_sptr gr_make_burst_tagger(size_t itemsize);
+GR_CORE_API gr_burst_tagger_sptr gr_make_burst_tagger(size_t itemsize);
/*!
* \brief output[i] = input[i]
* \ingroup misc_blk
*
*/
-class gr_burst_tagger : public gr_sync_block
+class GR_CORE_API gr_burst_tagger : public gr_sync_block
{
size_t d_itemsize;
bool d_state;
pmt::pmt_t d_key;
pmt::pmt_t d_id;
- friend gr_burst_tagger_sptr gr_make_burst_tagger(size_t itemsize);
+ friend GR_CORE_API gr_burst_tagger_sptr gr_make_burst_tagger(size_t itemsize);
gr_burst_tagger(size_t itemsize);
public:
diff --git a/gnuradio-core/src/lib/general/gr_bytes_to_syms.h b/gnuradio-core/src/lib/general/gr_bytes_to_syms.h
index 1531de02a..33b98d4fd 100644
--- a/gnuradio-core/src/lib/general/gr_bytes_to_syms.h
+++ b/gnuradio-core/src/lib/general/gr_bytes_to_syms.h
@@ -22,12 +22,13 @@
#ifndef INCLUDED_GR_BYTES_TO_SYMS_H
#define INCLUDED_GR_BYTES_TO_SYMS_H
+#include <gr_core_api.h>
#include <gr_sync_interpolator.h>
class gr_bytes_to_syms;
typedef boost::shared_ptr<gr_bytes_to_syms> gr_bytes_to_syms_sptr;
-gr_bytes_to_syms_sptr gr_make_bytes_to_syms ();
+GR_CORE_API gr_bytes_to_syms_sptr gr_make_bytes_to_syms ();
/*!
* \brief Convert stream of bytes to stream of +/- 1 symbols
@@ -45,9 +46,9 @@ gr_bytes_to_syms_sptr gr_make_bytes_to_syms ();
* \sa gr_packed_to_unpacked_bb, gr_unpacked_to_packed_bb,
* \sa gr_chunks_to_symbols_bf, gr_chunks_to_symbols_bc.
*/
-class gr_bytes_to_syms : public gr_sync_interpolator
+class GR_CORE_API gr_bytes_to_syms : public gr_sync_interpolator
{
- friend gr_bytes_to_syms_sptr gr_make_bytes_to_syms ();
+ friend GR_CORE_API gr_bytes_to_syms_sptr gr_make_bytes_to_syms ();
gr_bytes_to_syms ();
diff --git a/gnuradio-core/src/lib/general/gr_char_to_float.h b/gnuradio-core/src/lib/general/gr_char_to_float.h
index 482e479d6..b20d2066f 100644
--- a/gnuradio-core/src/lib/general/gr_char_to_float.h
+++ b/gnuradio-core/src/lib/general/gr_char_to_float.h
@@ -23,12 +23,13 @@
#ifndef INCLUDED_GR_CHAR_TO_FLOAT_H
#define INCLUDED_GR_CHAR_TO_FLOAT_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_char_to_float;
typedef boost::shared_ptr<gr_char_to_float> gr_char_to_float_sptr;
-gr_char_to_float_sptr
+GR_CORE_API gr_char_to_float_sptr
gr_make_char_to_float ();
/*!
@@ -36,9 +37,9 @@ gr_make_char_to_float ();
* \ingroup converter_blk
*/
-class gr_char_to_float : public gr_sync_block
+class GR_CORE_API gr_char_to_float : public gr_sync_block
{
- friend gr_char_to_float_sptr gr_make_char_to_float ();
+ friend GR_CORE_API gr_char_to_float_sptr gr_make_char_to_float ();
gr_char_to_float ();
public:
diff --git a/gnuradio-core/src/lib/general/gr_check_counting_s.h b/gnuradio-core/src/lib/general/gr_check_counting_s.h
index da35ab8e2..cd4dcb24e 100644
--- a/gnuradio-core/src/lib/general/gr_check_counting_s.h
+++ b/gnuradio-core/src/lib/general/gr_check_counting_s.h
@@ -22,12 +22,13 @@
#ifndef INCLUDED_GR_CHECK_COUNTING_S_H
#define INCLUDED_GR_CHECK_COUNTING_S_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_check_counting_s;
typedef boost::shared_ptr<gr_check_counting_s> gr_check_counting_s_sptr;
-gr_check_counting_s_sptr gr_make_check_counting_s (bool do_32bit=false);
+GR_CORE_API gr_check_counting_s_sptr gr_make_check_counting_s (bool do_32bit=false);
/*!
* \brief sink that checks if its input stream consists of a counting sequence.
@@ -36,9 +37,9 @@ gr_check_counting_s_sptr gr_make_check_counting_s (bool do_32bit=false);
*
* This sink is typically used to test the USRP "Counting Mode" or "Counting mode 32 bit".
*/
-class gr_check_counting_s : public gr_sync_block
+class GR_CORE_API gr_check_counting_s : public gr_sync_block
{
- friend gr_check_counting_s_sptr gr_make_check_counting_s (bool do_32bit);
+ friend GR_CORE_API gr_check_counting_s_sptr gr_make_check_counting_s (bool do_32bit);
enum state {
SEARCHING, // searching for synchronization
diff --git a/gnuradio-core/src/lib/general/gr_check_lfsr_32k_s.h b/gnuradio-core/src/lib/general/gr_check_lfsr_32k_s.h
index e2bff46d2..939675db8 100644
--- a/gnuradio-core/src/lib/general/gr_check_lfsr_32k_s.h
+++ b/gnuradio-core/src/lib/general/gr_check_lfsr_32k_s.h
@@ -22,6 +22,7 @@
#ifndef INCLUDED_GR_CHECK_LFSR_32K_S_H
#define INCLUDED_GR_CHECK_LFSR_32K_S_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <gri_lfsr_32k.h>
@@ -29,7 +30,7 @@
class gr_check_lfsr_32k_s;
typedef boost::shared_ptr<gr_check_lfsr_32k_s> gr_check_lfsr_32k_s_sptr;
-gr_check_lfsr_32k_s_sptr gr_make_check_lfsr_32k_s ();
+GR_CORE_API gr_check_lfsr_32k_s_sptr gr_make_check_lfsr_32k_s ();
/*!
* \brief sink that checks if its input stream consists of a lfsr_32k sequence.
@@ -38,9 +39,9 @@ gr_check_lfsr_32k_s_sptr gr_make_check_lfsr_32k_s ();
* This sink is typically used along with gr_lfsr_32k_source_s to test
* the USRP using its digital loopback mode.
*/
-class gr_check_lfsr_32k_s : public gr_sync_block
+class GR_CORE_API gr_check_lfsr_32k_s : public gr_sync_block
{
- friend gr_check_lfsr_32k_s_sptr gr_make_check_lfsr_32k_s ();
+ friend GR_CORE_API gr_check_lfsr_32k_s_sptr gr_make_check_lfsr_32k_s ();
enum state {
SEARCHING, // searching for synchronization
diff --git a/gnuradio-core/src/lib/general/gr_circular_file.h b/gnuradio-core/src/lib/general/gr_circular_file.h
index 70f4b4b11..3d3f33a8d 100644
--- a/gnuradio-core/src/lib/general/gr_circular_file.h
+++ b/gnuradio-core/src/lib/general/gr_circular_file.h
@@ -23,6 +23,8 @@
#ifndef _GR_CIRCULAR_FILE_H_
#define _GR_CIRCULAR_FILE_H_
+#include <gr_core_api.h>
+
/*
* writes input data into a circular buffer on disk.
*
@@ -35,7 +37,7 @@
* current start of data
*
*/
-class gr_circular_file {
+class GR_CORE_API gr_circular_file {
int d_fd;
int *d_header;
unsigned char *d_buffer;
@@ -55,4 +57,4 @@ public:
void reset_read_pointer ();
};
-#endif /* _GR_CIRCULAR_FILE_H_ */
+#endif /* _GR_CIRCULAR_FILE_H_ */ \ No newline at end of file
diff --git a/gnuradio-core/src/lib/general/gr_complex_to_interleaved_short.h b/gnuradio-core/src/lib/general/gr_complex_to_interleaved_short.h
index 0a91eddd6..a3e2d38ad 100644
--- a/gnuradio-core/src/lib/general/gr_complex_to_interleaved_short.h
+++ b/gnuradio-core/src/lib/general/gr_complex_to_interleaved_short.h
@@ -23,13 +23,14 @@
#ifndef INCLUDED_GR_COMPLEX_TO_INTERLEAVED_SHORT_H
#define INCLUDED_GR_COMPLEX_TO_INTERLEAVED_SHORT_H
+#include <gr_core_api.h>
#include <gr_sync_interpolator.h>
class gr_complex_to_interleaved_short;
typedef boost::shared_ptr<gr_complex_to_interleaved_short>
gr_complex_to_interleaved_short_sptr;
-gr_complex_to_interleaved_short_sptr
+GR_CORE_API gr_complex_to_interleaved_short_sptr
gr_make_complex_to_interleaved_short ();
/*!
@@ -37,9 +38,9 @@ gr_make_complex_to_interleaved_short ();
* \ingroup converter_blk
*/
-class gr_complex_to_interleaved_short : public gr_sync_interpolator
+class GR_CORE_API gr_complex_to_interleaved_short : public gr_sync_interpolator
{
- friend gr_complex_to_interleaved_short_sptr gr_make_complex_to_interleaved_short ();
+ friend GR_CORE_API gr_complex_to_interleaved_short_sptr gr_make_complex_to_interleaved_short ();
gr_complex_to_interleaved_short ();
public:
diff --git a/gnuradio-core/src/lib/general/gr_complex_to_xxx.h b/gnuradio-core/src/lib/general/gr_complex_to_xxx.h
index 1851c67d9..166403259 100644
--- a/gnuradio-core/src/lib/general/gr_complex_to_xxx.h
+++ b/gnuradio-core/src/lib/general/gr_complex_to_xxx.h
@@ -23,6 +23,7 @@
#ifndef INCLUDED_GR_COMPLEX_TO_XXX_H
#define INCLUDED_GR_COMPLEX_TO_XXX_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <gr_complex.h>
@@ -40,21 +41,21 @@ typedef boost::shared_ptr<gr_complex_to_mag> gr_complex_to_mag_sptr;
typedef boost::shared_ptr<gr_complex_to_mag_squared> gr_complex_to_mag_squared_sptr;
typedef boost::shared_ptr<gr_complex_to_arg> gr_complex_to_arg_sptr;
-gr_complex_to_float_sptr gr_make_complex_to_float (unsigned int vlen=1);
-gr_complex_to_real_sptr gr_make_complex_to_real (unsigned int vlen=1);
-gr_complex_to_imag_sptr gr_make_complex_to_imag (unsigned int vlen=1);
-gr_complex_to_mag_sptr gr_make_complex_to_mag (unsigned int vlen=1);
-gr_complex_to_mag_squared_sptr gr_make_complex_to_mag_squared (unsigned int vlen=1);
-gr_complex_to_arg_sptr gr_make_complex_to_arg (unsigned int vlen=1);
+GR_CORE_API gr_complex_to_float_sptr gr_make_complex_to_float (unsigned int vlen=1);
+GR_CORE_API gr_complex_to_real_sptr gr_make_complex_to_real (unsigned int vlen=1);
+GR_CORE_API gr_complex_to_imag_sptr gr_make_complex_to_imag (unsigned int vlen=1);
+GR_CORE_API gr_complex_to_mag_sptr gr_make_complex_to_mag (unsigned int vlen=1);
+GR_CORE_API gr_complex_to_mag_squared_sptr gr_make_complex_to_mag_squared (unsigned int vlen=1);
+GR_CORE_API gr_complex_to_arg_sptr gr_make_complex_to_arg (unsigned int vlen=1);
/*!
* \brief convert a stream of gr_complex to 1 or 2 streams of float
* \ingroup converter_blk
* \param vlen vector len (default 1)
*/
-class gr_complex_to_float : public gr_sync_block
+class GR_CORE_API gr_complex_to_float : public gr_sync_block
{
- friend gr_complex_to_float_sptr gr_make_complex_to_float (unsigned int vlen);
+ friend GR_CORE_API gr_complex_to_float_sptr gr_make_complex_to_float (unsigned int vlen);
gr_complex_to_float (unsigned int vlen);
unsigned int d_vlen;
@@ -70,9 +71,9 @@ class gr_complex_to_float : public gr_sync_block
* \ingroup converter_blk
* \param vlen vector len (default 1)
*/
-class gr_complex_to_real : public gr_sync_block
+class GR_CORE_API gr_complex_to_real : public gr_sync_block
{
- friend gr_complex_to_real_sptr gr_make_complex_to_real (unsigned int vlen);
+ friend GR_CORE_API gr_complex_to_real_sptr gr_make_complex_to_real (unsigned int vlen);
gr_complex_to_real (unsigned int vlen);
unsigned int d_vlen;
@@ -88,9 +89,9 @@ class gr_complex_to_real : public gr_sync_block
* \ingroup converter_blk
* \param vlen vector len (default 1)
*/
-class gr_complex_to_imag : public gr_sync_block
+class GR_CORE_API gr_complex_to_imag : public gr_sync_block
{
- friend gr_complex_to_imag_sptr gr_make_complex_to_imag (unsigned int vlen);
+ friend GR_CORE_API gr_complex_to_imag_sptr gr_make_complex_to_imag (unsigned int vlen);
gr_complex_to_imag (unsigned int vlen);
unsigned int d_vlen;
@@ -106,9 +107,9 @@ class gr_complex_to_imag : public gr_sync_block
* \ingroup converter_blk
* \param vlen vector len (default 1)
*/
-class gr_complex_to_mag : public gr_sync_block
+class GR_CORE_API gr_complex_to_mag : public gr_sync_block
{
- friend gr_complex_to_mag_sptr gr_make_complex_to_mag (unsigned int vlen);
+ friend GR_CORE_API gr_complex_to_mag_sptr gr_make_complex_to_mag (unsigned int vlen);
gr_complex_to_mag (unsigned int vlen);
unsigned int d_vlen;
@@ -124,9 +125,9 @@ class gr_complex_to_mag : public gr_sync_block
* \ingroup converter_blk
* \param vlen vector len (default 1)
*/
-class gr_complex_to_mag_squared : public gr_sync_block
+class GR_CORE_API gr_complex_to_mag_squared : public gr_sync_block
{
- friend gr_complex_to_mag_squared_sptr gr_make_complex_to_mag_squared (unsigned int vlen);
+ friend GR_CORE_API gr_complex_to_mag_squared_sptr gr_make_complex_to_mag_squared (unsigned int vlen);
gr_complex_to_mag_squared (unsigned int vlen);
unsigned int d_vlen;
@@ -142,9 +143,9 @@ class gr_complex_to_mag_squared : public gr_sync_block
* \ingroup converter_blk
* \param vlen vector len (default 1)
*/
-class gr_complex_to_arg : public gr_sync_block
+class GR_CORE_API gr_complex_to_arg : public gr_sync_block
{
- friend gr_complex_to_arg_sptr gr_make_complex_to_arg (unsigned int vlen);
+ friend GR_CORE_API gr_complex_to_arg_sptr gr_make_complex_to_arg (unsigned int vlen);
gr_complex_to_arg (unsigned int vlen);
unsigned int d_vlen;
diff --git a/gnuradio-core/src/lib/general/gr_conjugate_cc.h b/gnuradio-core/src/lib/general/gr_conjugate_cc.h
index 783019adb..16e76e153 100644
--- a/gnuradio-core/src/lib/general/gr_conjugate_cc.h
+++ b/gnuradio-core/src/lib/general/gr_conjugate_cc.h
@@ -25,20 +25,21 @@
#ifndef INCLUDED_GR_CONJUGATE_CC_H
#define INCLUDED_GR_CONJUGATE_CC_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_conjugate_cc;
typedef boost::shared_ptr<gr_conjugate_cc> gr_conjugate_cc_sptr;
-gr_conjugate_cc_sptr gr_make_conjugate_cc ();
+GR_CORE_API gr_conjugate_cc_sptr gr_make_conjugate_cc ();
/*!
* \brief output = complex conjugate of input
* \ingroup math_blk
*/
-class gr_conjugate_cc : public gr_sync_block
+class GR_CORE_API gr_conjugate_cc : public gr_sync_block
{
- friend gr_conjugate_cc_sptr gr_make_conjugate_cc ();
+ friend GR_CORE_API gr_conjugate_cc_sptr gr_make_conjugate_cc ();
gr_conjugate_cc ();
diff --git a/gnuradio-core/src/lib/general/gr_constants.h b/gnuradio-core/src/lib/general/gr_constants.h
index 449d41c17..3d21fe1d6 100644
--- a/gnuradio-core/src/lib/general/gr_constants.h
+++ b/gnuradio-core/src/lib/general/gr_constants.h
@@ -22,31 +22,32 @@
#ifndef INCLUDED_GR_CONSTANTS_H
#define INCLUDED_GR_CONSTANTS_H
+#include <gr_core_api.h>
#include <string>
/*!
* \brief return ./configure --prefix argument. Typically /usr/local
*/
-const std::string gr_prefix();
+GR_CORE_API const std::string gr_prefix();
/*!
* \brief return ./configure --sysconfdir argument. Typically $prefix/etc or /etc
*/
-const std::string gr_sysconfdir();
+GR_CORE_API const std::string gr_sysconfdir();
/*!
* \brief return preferences file directory. Typically $sysconfdir/etc/conf.d
*/
-const std::string gr_prefsdir();
+GR_CORE_API const std::string gr_prefsdir();
/*!
* \brief return date/time of build, as set when 'bootstrap' is run
*/
-const std::string gr_build_date();
+GR_CORE_API const std::string gr_build_date();
/*!
* \brief return version string defined in configure.ac
*/
-const std::string gr_version();
+GR_CORE_API const std::string gr_version();
#endif /* INCLUDED_GR_CONSTANTS_H */
diff --git a/gnuradio-core/src/lib/general/gr_constellation_decoder_cb.h b/gnuradio-core/src/lib/general/gr_constellation_decoder_cb.h
new file mode 100644
index 000000000..d1d29847c
--- /dev/null
+++ b/gnuradio-core/src/lib/general/gr_constellation_decoder_cb.h
@@ -0,0 +1,66 @@
+/* -*- c++ -*- */
+/*
+ * Copyright 2006 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_CONSTELLATION_DECODER_CB_H
+#define INCLUDED_GR_CONSTELLATION_DECODER_CB_H
+
+#include <gr_core_api.h>
+#include <gr_sync_block.h>
+#include <vector>
+
+class gr_constellation_decoder_cb;
+typedef boost::shared_ptr<gr_constellation_decoder_cb> gr_constellation_decoder_cb_sptr;
+
+GR_CORE_API gr_constellation_decoder_cb_sptr
+ gr_make_constellation_decoder_cb (const std::vector<gr_complex> &sym_position,
+ const std::vector<unsigned char> &sym_value_out);
+
+/*!
+ * \brief Constellation Decoder
+ * \ingroup coding_blk
+ *
+ */
+class GR_CORE_API gr_constellation_decoder_cb : public gr_sync_block
+{
+
+ private:
+ std::vector<gr_complex> d_sym_position;
+ std::vector<unsigned char> d_sym_value_out;
+
+ friend GR_CORE_API gr_constellation_decoder_cb_sptr
+ gr_make_constellation_decoder_cb (const std::vector<gr_complex> &sym_position, const std::vector<unsigned char> &sym_value_out);
+
+ gr_constellation_decoder_cb (const std::vector<gr_complex> &sym_position,
+ const std::vector<unsigned char> &sym_value_out); //constructor
+
+ public:
+ bool set_constellation(const std::vector<gr_complex> &sym_position,
+ const std::vector<unsigned char> &sym_value_out);
+
+ ~gr_constellation_decoder_cb(); //destructor
+
+ 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/general/gr_copy.h b/gnuradio-core/src/lib/general/gr_copy.h
index d99aef8b7..7fb13bf68 100644
--- a/gnuradio-core/src/lib/general/gr_copy.h
+++ b/gnuradio-core/src/lib/general/gr_copy.h
@@ -23,12 +23,13 @@
#ifndef INCLUDED_GR_COPY_H
#define INCLUDED_GR_COPY_H
+#include <gr_core_api.h>
#include <gr_block.h>
class gr_copy;
typedef boost::shared_ptr<gr_copy> gr_copy_sptr;
-gr_copy_sptr gr_make_copy(size_t itemsize);
+GR_CORE_API gr_copy_sptr gr_make_copy(size_t itemsize);
/*!
* \brief output[i] = input[i]
@@ -38,12 +39,12 @@ gr_copy_sptr gr_make_copy(size_t itemsize);
* When disabled, this block drops its input on the floor.
*
*/
-class gr_copy : public gr_block
+class GR_CORE_API gr_copy : public gr_block
{
size_t d_itemsize;
bool d_enabled;
- friend gr_copy_sptr gr_make_copy(size_t itemsize);
+ friend GR_CORE_API gr_copy_sptr gr_make_copy(size_t itemsize);
gr_copy(size_t itemsize);
public:
diff --git a/gnuradio-core/src/lib/general/gr_core_api.h b/gnuradio-core/src/lib/general/gr_core_api.h
new file mode 100644
index 000000000..74c802857
--- /dev/null
+++ b/gnuradio-core/src/lib/general/gr_core_api.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright 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.
+ */
+
+#ifndef INCLUDED_GR_CORE_API_H
+#define INCLUDED_GR_CORE_API_H
+
+#include <gruel/attributes.h>
+
+#ifdef gnuradio_core_EXPORTS
+# define GR_CORE_API __GR_ATTR_EXPORT
+#else
+# define GR_CORE_API __GR_ATTR_IMPORT
+#endif
+
+#endif /* INCLUDED_GR_CORE_API_H */
diff --git a/gnuradio-core/src/lib/general/gr_correlate_access_code_tag_bb.h b/gnuradio-core/src/lib/general/gr_correlate_access_code_tag_bb.h
index 1067bbc56..e543f5cfb 100644
--- a/gnuradio-core/src/lib/general/gr_correlate_access_code_tag_bb.h
+++ b/gnuradio-core/src/lib/general/gr_correlate_access_code_tag_bb.h
@@ -23,6 +23,7 @@
#ifndef INCLUDED_gr_correlate_access_code_tag_bb_H
#define INCLUDED_gr_correlate_access_code_tag_bb_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <string>
@@ -34,7 +35,7 @@ typedef boost::shared_ptr<gr_correlate_access_code_tag_bb> gr_correlate_access_c
* \param threshold maximum number of bits that may be wrong
* \param tag_name key of the tag inserted into the tag stream
*/
-gr_correlate_access_code_tag_bb_sptr
+GR_CORE_API gr_correlate_access_code_tag_bb_sptr
gr_make_correlate_access_code_tag_bb (const std::string &access_code, int threshold,
const std::string &tag_name);
@@ -49,9 +50,9 @@ gr_make_correlate_access_code_tag_bb (const std::string &access_code, int thresh
* name [tag_name], specified in the constructor. Used for searching
* an input data stream for preambles, etc.
*/
-class gr_correlate_access_code_tag_bb : public gr_sync_block
+class GR_CORE_API gr_correlate_access_code_tag_bb : public gr_sync_block
{
- friend gr_correlate_access_code_tag_bb_sptr
+ friend GR_CORE_API gr_correlate_access_code_tag_bb_sptr
gr_make_correlate_access_code_tag_bb (const std::string &access_code, int threshold,
const std::string &tag_name);
private:
diff --git a/gnuradio-core/src/lib/general/gr_costas_loop_cc.h b/gnuradio-core/src/lib/general/gr_costas_loop_cc.h
new file mode 100644
index 000000000..13b33d96c
--- /dev/null
+++ b/gnuradio-core/src/lib/general/gr_costas_loop_cc.h
@@ -0,0 +1,146 @@
+/* -*- c++ -*- */
+/*
+ * Copyright 2006 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_COSTAS_LOOP_CC_H
+#define INCLUDED_GR_COSTAS_LOOP_CC_H
+
+#include <gr_core_api.h>
+#include <gr_sync_block.h>
+#include <stdexcept>
+#include <fstream>
+
+
+/*! \brief A Costas loop carrier recovery module.
+ * \ingroup sync_blk
+ *
+ * The Costas loop locks to the center frequency of a signal and
+ * downconverts it to baseband. The second (order=2) order loop is
+ * used for BPSK where the real part of the output signal is the
+ * baseband BPSK signal and the imaginary part is the error
+ * signal. When order=4, it can be used for quadrature modulations
+ * where both I and Q (real and imaginary) are outputted.
+ *
+ * More details can be found online:
+ *
+ * J. Feigin, "Practical Costas loop design: Designing a simple and inexpensive
+ * BPSK Costas loop carrier recovery circuit," RF signal processing, pp. 20-36,
+ * 2002.
+ *
+ * http://rfdesign.com/images/archive/0102Feigin20.pdf
+ *
+ * \param alpha the loop gain used for phase adjustment
+ * \param beta the loop gain for frequency adjustments
+ * \param max_freq the maximum frequency deviation (radians/sample) the loop can handle
+ * \param min_freq the minimum frequency deviation (radians/sample) the loop can handle
+ * \param order the loop order, either 2 or 4
+ */
+class gr_costas_loop_cc;
+typedef boost::shared_ptr<gr_costas_loop_cc> gr_costas_loop_cc_sptr;
+
+
+GR_CORE_API gr_costas_loop_cc_sptr
+gr_make_costas_loop_cc (float alpha, float beta,
+ float max_freq, float min_freq,
+ int order
+ ) throw (std::invalid_argument);
+
+
+/*!
+ * \brief Carrier tracking PLL for QPSK
+ * \ingroup sync_blk
+ * input: complex; output: complex
+ * <br>The Costas loop can have two output streams:
+ * stream 1 is the baseband I and Q;
+ * stream 2 is the normalized frequency of the loop
+ *
+ * \p order must be 2 or 4.
+ */
+class GR_CORE_API gr_costas_loop_cc : public gr_sync_block
+{
+ friend GR_CORE_API gr_costas_loop_cc_sptr gr_make_costas_loop_cc (float alpha, float beta,
+ float max_freq, float min_freq,
+ int order
+ ) throw (std::invalid_argument);
+
+ float d_alpha, d_beta, d_max_freq, d_min_freq, d_phase, d_freq;
+ int d_order;
+
+ gr_costas_loop_cc (float alpha, float beta,
+ float max_freq, float min_freq,
+ int order
+ ) throw (std::invalid_argument);
+
+ /*! \brief the phase detector circuit for 8th-order PSK loops
+ * \param sample complex sample
+ * \return the phase error
+ */
+ float phase_detector_8(gr_complex sample) const; // for 8PSK
+
+ /*! \brief the phase detector circuit for fourth-order loops
+ * \param sample complex sample
+ * \return the phase error
+ */
+ float phase_detector_4(gr_complex sample) const; // for QPSK
+
+ /*! \brief the phase detector circuit for second-order loops
+ * \param sample a complex sample
+ * \return the phase error
+ */
+ float phase_detector_2(gr_complex sample) const; // for BPSK
+
+
+ float (gr_costas_loop_cc::*d_phase_detector)(gr_complex sample) const;
+
+public:
+
+ /*! \brief set the first order gain
+ * \param alpha
+ */
+ void set_alpha(float alpha);
+
+ /*! \brief get the first order gain
+ *
+ */
+ float alpha() const { return d_alpha; }
+
+ /*! \brief set the second order gain
+ * \param beta
+ */
+ void set_beta(float beta);
+
+ /*! \brief get the second order gain
+ *
+ */
+ float beta() const { return d_beta; }
+
+ int work (int noutput_items,
+ gr_vector_const_void_star &input_items,
+ gr_vector_void_star &output_items);
+
+ /*! \brief returns the current NCO frequency in radians/sample
+ *
+ */
+ float freq() const { return d_freq; }
+};
+
+#endif
diff --git a/gnuradio-core/src/lib/general/gr_count_bits.h b/gnuradio-core/src/lib/general/gr_count_bits.h
index a8b52d3ac..f0cec2a11 100644
--- a/gnuradio-core/src/lib/general/gr_count_bits.h
+++ b/gnuradio-core/src/lib/general/gr_count_bits.h
@@ -23,9 +23,11 @@
#ifndef _GR_COUNT_BITS_H_
#define _GR_COUNT_BITS_H_
-unsigned int gr_count_bits8(unsigned int x); // return number of set bits in the low 8 bits of x
-unsigned int gr_count_bits16(unsigned int x); // return number of set bits in the low 16 bits of x
-unsigned int gr_count_bits32(unsigned int x); // return number of set bits in the low 32 bits of x
-unsigned int gr_count_bits64(unsigned long long int x);
+#include <gr_core_api.h>
+
+GR_CORE_API unsigned int gr_count_bits8(unsigned int x); // return number of set bits in the low 8 bits of x
+GR_CORE_API unsigned int gr_count_bits16(unsigned int x); // return number of set bits in the low 16 bits of x
+GR_CORE_API unsigned int gr_count_bits32(unsigned int x); // return number of set bits in the low 32 bits of x
+GR_CORE_API unsigned int gr_count_bits64(unsigned long long int x);
#endif /* _GR_COUNT_BITS_H_ */
diff --git a/gnuradio-core/src/lib/general/gr_cpfsk_bc.h b/gnuradio-core/src/lib/general/gr_cpfsk_bc.h
index 29bcfed65..4afba4fb4 100644
--- a/gnuradio-core/src/lib/general/gr_cpfsk_bc.h
+++ b/gnuradio-core/src/lib/general/gr_cpfsk_bc.h
@@ -20,13 +20,14 @@
#ifndef INCLUDED_GR_CPFSK_BC_H
#define INCLUDED_GR_CPFSK_BC_H
+#include <gr_core_api.h>
#include <gr_sync_interpolator.h>
class gr_cpfsk_bc;
typedef boost::shared_ptr<gr_cpfsk_bc> gr_cpfsk_bc_sptr;
-gr_cpfsk_bc_sptr gr_make_cpfsk_bc(float k, float ampl, int samples_per_sym);
+GR_CORE_API gr_cpfsk_bc_sptr gr_make_cpfsk_bc(float k, float ampl, int samples_per_sym);
/*!
* \brief Perform continuous phase 2-level frequency shift keying modulation
@@ -38,10 +39,10 @@ gr_cpfsk_bc_sptr gr_make_cpfsk_bc(float k, float ampl, int samples_per_sym);
* \param samples_per_sym number of output samples per input bit
*/
-class gr_cpfsk_bc : public gr_sync_interpolator
+class GR_CORE_API gr_cpfsk_bc : public gr_sync_interpolator
{
private:
- friend gr_cpfsk_bc_sptr gr_make_cpfsk_bc(float k, float ampl, int samples_per_sym);
+ friend GR_CORE_API gr_cpfsk_bc_sptr gr_make_cpfsk_bc(float k, float ampl, int samples_per_sym);
gr_cpfsk_bc(float k, float ampl, int samples_per_sym);
diff --git a/gnuradio-core/src/lib/general/gr_cpm.cc b/gnuradio-core/src/lib/general/gr_cpm.cc
index a00526b52..94a428c58 100644
--- a/gnuradio-core/src/lib/general/gr_cpm.cc
+++ b/gnuradio-core/src/lib/general/gr_cpm.cc
@@ -28,6 +28,10 @@
#include <cfloat>
#include <gr_cpm.h>
+//gives us erf on compilers without it
+#include <boost/math/special_functions/erf.hpp>
+namespace bm = boost::math;
+
#ifndef M_TWOPI
# define M_TWOPI (2*M_PI)
#endif
@@ -178,8 +182,8 @@ generate_cpm_gaussian_taps(unsigned samples_per_sym, unsigned L, double bt)
double alpha = 5.336446256636997 * bt;
for (unsigned i = 0; i < samples_per_sym * L; i++) {
double k = i - Ls/2; // Causal to acausal
- taps_d[i] = (erf(alpha * (k / samples_per_sym + 0.5)) -
- erf(alpha * (k / samples_per_sym - 0.5)))
+ taps_d[i] = (bm::erf(alpha * (k / samples_per_sym + 0.5)) -
+ bm::erf(alpha * (k / samples_per_sym - 0.5)))
* 0.5 / samples_per_sym;
taps[i] = (float) taps_d[i];
}
diff --git a/gnuradio-core/src/lib/general/gr_cpm.h b/gnuradio-core/src/lib/general/gr_cpm.h
index cae6fe313..ef2ff8414 100644
--- a/gnuradio-core/src/lib/general/gr_cpm.h
+++ b/gnuradio-core/src/lib/general/gr_cpm.h
@@ -22,9 +22,10 @@
#ifndef INCLUDED_GR_CPM_H
#define INCLUDED_GR_CPM_H
+#include <gr_core_api.h>
#include <vector>
-class gr_cpm
+class GR_CORE_API gr_cpm
{
public:
enum cpm_type {
diff --git a/gnuradio-core/src/lib/general/gr_ctcss_squelch_ff.h b/gnuradio-core/src/lib/general/gr_ctcss_squelch_ff.h
index 49df785ff..664c40846 100644
--- a/gnuradio-core/src/lib/general/gr_ctcss_squelch_ff.h
+++ b/gnuradio-core/src/lib/general/gr_ctcss_squelch_ff.h
@@ -23,20 +23,21 @@
#ifndef INCLUDED_GR_CTCSS_SQUELCH_FF_H
#define INCLUDED_GR_CTCSS_SQUELCH_FF_H
+#include <gr_core_api.h>
#include <gr_squelch_base_ff.h>
#include <gri_goertzel.h>
class gr_ctcss_squelch_ff;
typedef boost::shared_ptr<gr_ctcss_squelch_ff> gr_ctcss_squelch_ff_sptr;
-gr_ctcss_squelch_ff_sptr
+GR_CORE_API gr_ctcss_squelch_ff_sptr
gr_make_ctcss_squelch_ff(int rate, float freq, float level=0.01, int len=0, int ramp=0, bool gate=false);
/*!
* \brief gate or zero output if ctcss tone not present
* \ingroup level_blk
*/
-class gr_ctcss_squelch_ff : public gr_squelch_base_ff
+class GR_CORE_API gr_ctcss_squelch_ff : public gr_squelch_base_ff
{
private:
float d_freq;
@@ -48,7 +49,7 @@ private:
gri_goertzel d_goertzel_c;
gri_goertzel d_goertzel_r;
- friend gr_ctcss_squelch_ff_sptr gr_make_ctcss_squelch_ff(int rate, float freq, float level, int len, int ramp, bool gate);
+ friend GR_CORE_API gr_ctcss_squelch_ff_sptr gr_make_ctcss_squelch_ff(int rate, float freq, float level, int len, int ramp, bool gate);
gr_ctcss_squelch_ff(int rate, float freq, float level, int len, int ramp, bool gate);
int find_tone(float freq);
diff --git a/gnuradio-core/src/lib/general/gr_decode_ccsds_27_fb.h b/gnuradio-core/src/lib/general/gr_decode_ccsds_27_fb.h
index 50a6c9d89..3db250101 100644
--- a/gnuradio-core/src/lib/general/gr_decode_ccsds_27_fb.h
+++ b/gnuradio-core/src/lib/general/gr_decode_ccsds_27_fb.h
@@ -20,17 +20,18 @@
#ifndef INCLUDED_GR_DECODE_CCSDS_27_FB_H
#define INCLUDED_GR_DECODE_CCSDS_27_FB_H
+#include <gr_core_api.h>
#include <gr_sync_decimator.h>
extern "C" {
-#include "../viterbi/viterbi.h"
+#include <viterbi.h>
}
class gr_decode_ccsds_27_fb;
typedef boost::shared_ptr<gr_decode_ccsds_27_fb> gr_decode_ccsds_27_fb_sptr;
-gr_decode_ccsds_27_fb_sptr gr_make_decode_ccsds_27_fb();
+GR_CORE_API gr_decode_ccsds_27_fb_sptr gr_make_decode_ccsds_27_fb();
/*! \brief A rate 1/2, k=7 convolutional decoder for the CCSDS standard
* \ingroup ecc
@@ -51,10 +52,10 @@ gr_decode_ccsds_27_fb_sptr gr_make_decode_ccsds_27_fb();
* from the corresponding inputs.
*/
-class gr_decode_ccsds_27_fb : public gr_sync_decimator
+class GR_CORE_API gr_decode_ccsds_27_fb : public gr_sync_decimator
{
private:
- friend gr_decode_ccsds_27_fb_sptr gr_make_decode_ccsds_27_fb();
+ friend GR_CORE_API gr_decode_ccsds_27_fb_sptr gr_make_decode_ccsds_27_fb();
gr_decode_ccsds_27_fb();
diff --git a/gnuradio-core/src/lib/general/gr_deinterleave.h b/gnuradio-core/src/lib/general/gr_deinterleave.h
index 59c310bdc..3dd913911 100644
--- a/gnuradio-core/src/lib/general/gr_deinterleave.h
+++ b/gnuradio-core/src/lib/general/gr_deinterleave.h
@@ -23,20 +23,21 @@
#ifndef INCLUDED_GR_DEINTERLEAVE_H
#define INCLUDED_GR_DEINTERLEAVE_H
+#include <gr_core_api.h>
#include <gr_sync_decimator.h>
class gr_deinterleave;
typedef boost::shared_ptr<gr_deinterleave> gr_deinterleave_sptr;
-gr_deinterleave_sptr gr_make_deinterleave (size_t itemsize);
+GR_CORE_API gr_deinterleave_sptr gr_make_deinterleave (size_t itemsize);
/*!
* \brief deinterleave a single input into N outputs
* \ingroup slicedice_blk
*/
-class gr_deinterleave : public gr_sync_decimator
+class GR_CORE_API gr_deinterleave : public gr_sync_decimator
{
- friend gr_deinterleave_sptr gr_make_deinterleave (size_t itemsize);
+ friend GR_CORE_API gr_deinterleave_sptr gr_make_deinterleave (size_t itemsize);
size_t d_itemsize;
diff --git a/gnuradio-core/src/lib/general/gr_delay.h b/gnuradio-core/src/lib/general/gr_delay.h
index d7e8252a2..14de9af1f 100644
--- a/gnuradio-core/src/lib/general/gr_delay.h
+++ b/gnuradio-core/src/lib/general/gr_delay.h
@@ -23,20 +23,21 @@
#ifndef INCLUDED_GR_DELAY_H
#define INCLUDED_GR_DELAY_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_delay;
typedef boost::shared_ptr<gr_delay> gr_delay_sptr;
-gr_delay_sptr gr_make_delay (size_t itemsize, int delay);
+GR_CORE_API gr_delay_sptr gr_make_delay (size_t itemsize, int delay);
/*!
* \brief delay the input by a certain number of samples
* \ingroup misc_blk
*/
-class gr_delay : public gr_sync_block
+class GR_CORE_API gr_delay : public gr_sync_block
{
- friend gr_delay_sptr gr_make_delay (size_t itemsize, int delay);
+ friend GR_CORE_API gr_delay_sptr gr_make_delay (size_t itemsize, int delay);
gr_delay (size_t itemsize, int delay);
diff --git a/gnuradio-core/src/lib/general/gr_descrambler_bb.h b/gnuradio-core/src/lib/general/gr_descrambler_bb.h
index 19787690c..d7a49b5f1 100644
--- a/gnuradio-core/src/lib/general/gr_descrambler_bb.h
+++ b/gnuradio-core/src/lib/general/gr_descrambler_bb.h
@@ -22,13 +22,14 @@
#ifndef INCLUDED_GR_DESCRAMBLER_BB_H
#define INCLUDED_GR_DESCRAMBLER_BB_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include "gri_lfsr.h"
class gr_descrambler_bb;
typedef boost::shared_ptr<gr_descrambler_bb> gr_descrambler_bb_sptr;
-gr_descrambler_bb_sptr gr_make_descrambler_bb(int mask, int seed, int len);
+GR_CORE_API gr_descrambler_bb_sptr gr_make_descrambler_bb(int mask, int seed, int len);
/*!
* Descramble an input stream using an LFSR. This block works on the LSB only
@@ -42,9 +43,9 @@ gr_descrambler_bb_sptr gr_make_descrambler_bb(int mask, int seed, int len);
* \ingroup coding_blk
*/
-class gr_descrambler_bb : public gr_sync_block
+class GR_CORE_API gr_descrambler_bb : public gr_sync_block
{
- friend gr_descrambler_bb_sptr gr_make_descrambler_bb(int mask, int seed, int len);
+ friend GR_CORE_API gr_descrambler_bb_sptr gr_make_descrambler_bb(int mask, int seed, int len);
gri_lfsr d_lfsr;
diff --git a/gnuradio-core/src/lib/general/gr_diff_decoder_bb.h b/gnuradio-core/src/lib/general/gr_diff_decoder_bb.h
index 6fd08ec4b..0337c3dbd 100644
--- a/gnuradio-core/src/lib/general/gr_diff_decoder_bb.h
+++ b/gnuradio-core/src/lib/general/gr_diff_decoder_bb.h
@@ -23,12 +23,13 @@
#ifndef INCLUDED_GR_DIFF_DECODER_BB_H
#define INCLUDED_GR_DIFF_DECODER_BB_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_diff_decoder_bb;
typedef boost::shared_ptr<gr_diff_decoder_bb> gr_diff_decoder_bb_sptr;
-gr_diff_decoder_bb_sptr gr_make_diff_decoder_bb (unsigned int modulus);
+GR_CORE_API gr_diff_decoder_bb_sptr gr_make_diff_decoder_bb (unsigned int modulus);
/*!
* \brief y[0] = (x[0] - x[-1]) % M
@@ -36,9 +37,9 @@ gr_diff_decoder_bb_sptr gr_make_diff_decoder_bb (unsigned int modulus);
*
* Differential decoder
*/
-class gr_diff_decoder_bb : public gr_sync_block
+class GR_CORE_API gr_diff_decoder_bb : public gr_sync_block
{
- friend gr_diff_decoder_bb_sptr gr_make_diff_decoder_bb (unsigned int modulus);
+ friend GR_CORE_API gr_diff_decoder_bb_sptr gr_make_diff_decoder_bb (unsigned int modulus);
gr_diff_decoder_bb(unsigned int modulus);
unsigned int d_modulus;
diff --git a/gnuradio-core/src/lib/general/gr_diff_encoder_bb.h b/gnuradio-core/src/lib/general/gr_diff_encoder_bb.h
index 50aff73cf..c99e226da 100644
--- a/gnuradio-core/src/lib/general/gr_diff_encoder_bb.h
+++ b/gnuradio-core/src/lib/general/gr_diff_encoder_bb.h
@@ -23,12 +23,13 @@
#ifndef INCLUDED_GR_DIFF_ENCODER_BB_H
#define INCLUDED_GR_DIFF_ENCODER_BB_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_diff_encoder_bb;
typedef boost::shared_ptr<gr_diff_encoder_bb> gr_diff_encoder_bb_sptr;
-gr_diff_encoder_bb_sptr gr_make_diff_encoder_bb (unsigned int modulus);
+GR_CORE_API gr_diff_encoder_bb_sptr gr_make_diff_encoder_bb (unsigned int modulus);
/*!
* \brief y[0] = (x[0] + y[-1]) % M
@@ -36,9 +37,9 @@ gr_diff_encoder_bb_sptr gr_make_diff_encoder_bb (unsigned int modulus);
*
* Differential encoder
*/
-class gr_diff_encoder_bb : public gr_sync_block
+class GR_CORE_API gr_diff_encoder_bb : public gr_sync_block
{
- friend gr_diff_encoder_bb_sptr gr_make_diff_encoder_bb (unsigned int modulus);
+ friend GR_CORE_API gr_diff_encoder_bb_sptr gr_make_diff_encoder_bb (unsigned int modulus);
gr_diff_encoder_bb(unsigned int modulus);
unsigned int d_last_out;
diff --git a/gnuradio-core/src/lib/general/gr_diff_phasor_cc.h b/gnuradio-core/src/lib/general/gr_diff_phasor_cc.h
index 1070ba183..8af2699a7 100644
--- a/gnuradio-core/src/lib/general/gr_diff_phasor_cc.h
+++ b/gnuradio-core/src/lib/general/gr_diff_phasor_cc.h
@@ -23,6 +23,7 @@
#ifndef INCLUDED_GR_DIFF_PHASOR_CC_H
#define INCLUDED_GR_DIFF_PHASOR_CC_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
/*!
@@ -32,12 +33,12 @@
class gr_diff_phasor_cc;
typedef boost::shared_ptr<gr_diff_phasor_cc> gr_diff_phasor_cc_sptr;
-gr_diff_phasor_cc_sptr gr_make_diff_phasor_cc ();
+GR_CORE_API gr_diff_phasor_cc_sptr gr_make_diff_phasor_cc ();
-class gr_diff_phasor_cc : public gr_sync_block
+class GR_CORE_API gr_diff_phasor_cc : public gr_sync_block
{
- friend gr_diff_phasor_cc_sptr gr_make_diff_phasor_cc ();
+ friend GR_CORE_API gr_diff_phasor_cc_sptr gr_make_diff_phasor_cc ();
gr_diff_phasor_cc (); //constructor
diff --git a/gnuradio-core/src/lib/general/gr_dpll_bb.h b/gnuradio-core/src/lib/general/gr_dpll_bb.h
index e6b5fc0fa..8e748dddb 100644
--- a/gnuradio-core/src/lib/general/gr_dpll_bb.h
+++ b/gnuradio-core/src/lib/general/gr_dpll_bb.h
@@ -23,12 +23,13 @@
#ifndef INCLUDED_GR_DPLL_BB_H
#define INCLUDED_GR_DPLL_BB_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_dpll_bb;
typedef boost::shared_ptr<gr_dpll_bb> gr_dpll_bb_sptr;
-gr_dpll_bb_sptr gr_make_dpll_bb (float period, float gain);
+GR_CORE_API gr_dpll_bb_sptr gr_make_dpll_bb (float period, float gain);
/*!
* \brief Detect the peak of a signal
@@ -37,9 +38,9 @@ gr_dpll_bb_sptr gr_make_dpll_bb (float period, float gain);
* If a peak is detected, this block outputs a 1,
* or it outputs 0's.
*/
-class gr_dpll_bb : public gr_sync_block
+class GR_CORE_API gr_dpll_bb : public gr_sync_block
{
- friend gr_dpll_bb_sptr gr_make_dpll_bb (float period, float gain);
+ friend GR_CORE_API gr_dpll_bb_sptr gr_make_dpll_bb (float period, float gain);
gr_dpll_bb (float period, float gain);
diff --git a/gnuradio-core/src/lib/general/gr_encode_ccsds_27_bb.h b/gnuradio-core/src/lib/general/gr_encode_ccsds_27_bb.h
index 86832ee05..e24ae9151 100644
--- a/gnuradio-core/src/lib/general/gr_encode_ccsds_27_bb.h
+++ b/gnuradio-core/src/lib/general/gr_encode_ccsds_27_bb.h
@@ -20,13 +20,14 @@
#ifndef INCLUDED_GR_ENCODE_CCSDS_27_BB_H
#define INCLUDED_GR_ENCODE_CCSDS_27_BB_H
+#include <gr_core_api.h>
#include <gr_sync_interpolator.h>
class gr_encode_ccsds_27_bb;
typedef boost::shared_ptr<gr_encode_ccsds_27_bb> gr_encode_ccsds_27_bb_sptr;
-gr_encode_ccsds_27_bb_sptr gr_make_encode_ccsds_27_bb();
+GR_CORE_API gr_encode_ccsds_27_bb_sptr gr_make_encode_ccsds_27_bb();
/*! \brief A rate 1/2, k=7 convolutional encoder for the CCSDS standard
* \ingroup ecc
@@ -44,10 +45,10 @@ gr_encode_ccsds_27_bb_sptr gr_make_encode_ccsds_27_bb();
* There is no provision to "flush" the encoder.
*/
-class gr_encode_ccsds_27_bb : public gr_sync_interpolator
+class GR_CORE_API gr_encode_ccsds_27_bb : public gr_sync_interpolator
{
private:
- friend gr_encode_ccsds_27_bb_sptr gr_make_encode_ccsds_27_bb();
+ friend GR_CORE_API gr_encode_ccsds_27_bb_sptr gr_make_encode_ccsds_27_bb();
gr_encode_ccsds_27_bb();
unsigned char d_encstate;
diff --git a/gnuradio-core/src/lib/general/gr_expj.h b/gnuradio-core/src/lib/general/gr_expj.h
index 7adf3a0c6..6f1d56eb3 100644
--- a/gnuradio-core/src/lib/general/gr_expj.h
+++ b/gnuradio-core/src/lib/general/gr_expj.h
@@ -22,6 +22,7 @@
#ifndef INCLUDED_GR_EXPJ_H
#define INCLUDED_GR_EXPJ_H
+#include <gr_core_api.h>
#include <gr_sincos.h>
#include <gr_types.h>
diff --git a/gnuradio-core/src/lib/general/gr_fake_channel_coder_pp.h b/gnuradio-core/src/lib/general/gr_fake_channel_coder_pp.h
index 480fb8e78..2560c6105 100644
--- a/gnuradio-core/src/lib/general/gr_fake_channel_coder_pp.h
+++ b/gnuradio-core/src/lib/general/gr_fake_channel_coder_pp.h
@@ -23,12 +23,13 @@
#ifndef INCLUDED_GR_FAKE_CHANNEL_CODER_PP_H
#define INCLUDED_GR_FAKE_CHANNEL_CODER_PP_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_fake_channel_encoder_pp;
typedef boost::shared_ptr<gr_fake_channel_encoder_pp> gr_fake_channel_encoder_pp_sptr;
-gr_fake_channel_encoder_pp_sptr
+GR_CORE_API gr_fake_channel_encoder_pp_sptr
gr_make_fake_channel_encoder_pp(int input_vlen, int output_vlen);
/*!
@@ -37,14 +38,14 @@ gr_make_fake_channel_encoder_pp(int input_vlen, int output_vlen);
*
* input: stream of byte vectors; output: stream of byte vectors
*/
-class gr_fake_channel_encoder_pp : public gr_sync_block
+class GR_CORE_API gr_fake_channel_encoder_pp : public gr_sync_block
{
int d_input_vlen;
int d_output_vlen;
gr_fake_channel_encoder_pp(int input_vlen, int output_vlen);
- friend gr_fake_channel_encoder_pp_sptr
+ friend GR_CORE_API gr_fake_channel_encoder_pp_sptr
gr_make_fake_channel_encoder_pp(int input_vlen, int output_vlen);
public:
@@ -60,7 +61,7 @@ public:
class gr_fake_channel_decoder_pp;
typedef boost::shared_ptr<gr_fake_channel_decoder_pp> gr_fake_channel_decoder_pp_sptr;
-gr_fake_channel_decoder_pp_sptr
+GR_CORE_API gr_fake_channel_decoder_pp_sptr
gr_make_fake_channel_decoder_pp(int input_vlen, int output_vlen);
/*!
@@ -69,14 +70,14 @@ gr_make_fake_channel_decoder_pp(int input_vlen, int output_vlen);
*
* input: stream of byte vectors; output: stream of byte vectors
*/
-class gr_fake_channel_decoder_pp : public gr_sync_block
+class GR_CORE_API gr_fake_channel_decoder_pp : public gr_sync_block
{
int d_input_vlen;
int d_output_vlen;
gr_fake_channel_decoder_pp(int input_vlen, int output_vlen);
- friend gr_fake_channel_decoder_pp_sptr
+ friend GR_CORE_API gr_fake_channel_decoder_pp_sptr
gr_make_fake_channel_decoder_pp(int input_vlen, int output_vlen);
public:
diff --git a/gnuradio-core/src/lib/general/gr_feedforward_agc_cc.h b/gnuradio-core/src/lib/general/gr_feedforward_agc_cc.h
index 8c600d3d1..a97dbd958 100644
--- a/gnuradio-core/src/lib/general/gr_feedforward_agc_cc.h
+++ b/gnuradio-core/src/lib/general/gr_feedforward_agc_cc.h
@@ -23,21 +23,22 @@
#ifndef INCLUDED_GR_FEEDFORWARD_AGC_CC_H
#define INCLUDED_GR_FEEDFORWARD_AGC_CC_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_feedforward_agc_cc;
typedef boost::shared_ptr<gr_feedforward_agc_cc> gr_feedforward_agc_cc_sptr;
-gr_feedforward_agc_cc_sptr
+GR_CORE_API gr_feedforward_agc_cc_sptr
gr_make_feedforward_agc_cc(int nsamples, float reference = 1.0);
/*!
* \brief Non-causal AGC which computes required gain based on max absolute value over nsamples
* \ingroup level_blk
*/
-class gr_feedforward_agc_cc : public gr_sync_block
+class GR_CORE_API gr_feedforward_agc_cc : public gr_sync_block
{
- friend gr_feedforward_agc_cc_sptr
+ friend GR_CORE_API gr_feedforward_agc_cc_sptr
gr_make_feedforward_agc_cc(int nsamples, float reference);
int d_nsamples;
diff --git a/gnuradio-core/src/lib/general/gr_feval.h b/gnuradio-core/src/lib/general/gr_feval.h
index cc4209af0..a0e448ebf 100644
--- a/gnuradio-core/src/lib/general/gr_feval.h
+++ b/gnuradio-core/src/lib/general/gr_feval.h
@@ -22,6 +22,7 @@
#ifndef INCLUDED_GR_FEVAL_H
#define INCLUDED_GR_FEVAL_H
+#include <gr_core_api.h>
#include <gr_complex.h>
/*!
@@ -37,7 +38,7 @@
* Use calleval to invoke eval (this kludge is required to allow a
* python specific "shim" to be inserted.
*/
-class gr_feval_dd
+class GR_CORE_API gr_feval_dd
{
protected:
/*!
@@ -65,7 +66,7 @@ public:
* Use calleval to invoke eval (this kludge is required to allow a
* python specific "shim" to be inserted.
*/
-class gr_feval_cc
+class GR_CORE_API gr_feval_cc
{
protected:
/*!
@@ -93,7 +94,7 @@ public:
* Use calleval to invoke eval (this kludge is required to allow a
* python specific "shim" to be inserted.
*/
-class gr_feval_ll
+class GR_CORE_API gr_feval_ll
{
protected:
/*!
@@ -121,7 +122,7 @@ public:
* Use calleval to invoke eval (this kludge is required to allow a
* python specific "shim" to be inserted.
*/
-class gr_feval
+class GR_CORE_API gr_feval
{
protected:
/*!
@@ -139,9 +140,9 @@ public:
/*!
* \brief trivial examples / test cases showing C++ calling Python code
*/
-double gr_feval_dd_example(gr_feval_dd *f, double x);
-gr_complex gr_feval_cc_example(gr_feval_cc *f, gr_complex x);
-long gr_feval_ll_example(gr_feval_ll *f, long x);
-void gr_feval_example(gr_feval *f);
+GR_CORE_API double gr_feval_dd_example(gr_feval_dd *f, double x);
+GR_CORE_API gr_complex gr_feval_cc_example(gr_feval_cc *f, gr_complex x);
+GR_CORE_API long gr_feval_ll_example(gr_feval_ll *f, long x);
+GR_CORE_API void gr_feval_example(gr_feval *f);
#endif /* INCLUDED_GR_FEVAL_H */
diff --git a/gnuradio-core/src/lib/general/gr_fft_vcc.h b/gnuradio-core/src/lib/general/gr_fft_vcc.h
index 2ab9241ec..a7c8e1162 100644
--- a/gnuradio-core/src/lib/general/gr_fft_vcc.h
+++ b/gnuradio-core/src/lib/general/gr_fft_vcc.h
@@ -23,12 +23,13 @@
#ifndef INCLUDED_GR_FFT_VCC_H
#define INCLUDED_GR_FFT_VCC_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_fft_vcc;
typedef boost::shared_ptr<gr_fft_vcc> gr_fft_vcc_sptr;
-gr_fft_vcc_sptr
+GR_CORE_API gr_fft_vcc_sptr
gr_make_fft_vcc (int fft_size, bool forward, const std::vector<float> &window, bool shift=false);
/*!
@@ -37,10 +38,10 @@ gr_make_fft_vcc (int fft_size, bool forward, const std::vector<float> &window, b
*
* Abstract base class
*/
-class gr_fft_vcc : public gr_sync_block
+class GR_CORE_API gr_fft_vcc : public gr_sync_block
{
protected:
- friend gr_fft_vcc_sptr
+ friend GR_CORE_API gr_fft_vcc_sptr
gr_make_fft_vcc (int fft_size, bool forward, const std::vector<float> &window, bool shift);
unsigned int d_fft_size;
diff --git a/gnuradio-core/src/lib/general/gr_fft_vcc_fftw.h b/gnuradio-core/src/lib/general/gr_fft_vcc_fftw.h
index c026162ee..8535d133c 100644
--- a/gnuradio-core/src/lib/general/gr_fft_vcc_fftw.h
+++ b/gnuradio-core/src/lib/general/gr_fft_vcc_fftw.h
@@ -23,11 +23,12 @@
#ifndef INCLUDED_GR_FFT_VCC_FFTW_H
#define INCLUDED_GR_FFT_VCC_FFTW_H
+#include <gr_core_api.h>
#include <gr_fft_vcc.h>
class gri_fft_complex;
-gr_fft_vcc_sptr
+GR_CORE_API gr_fft_vcc_sptr
gr_make_fft_vcc_fftw (int fft_size, bool forward, const std::vector<float> &window, bool shift=false);
/*!
@@ -36,9 +37,9 @@ gr_make_fft_vcc_fftw (int fft_size, bool forward, const std::vector<float> &wind
*
* Concrete class that uses FFTW.
*/
-class gr_fft_vcc_fftw : public gr_fft_vcc
+class GR_CORE_API gr_fft_vcc_fftw : public gr_fft_vcc
{
- friend gr_fft_vcc_sptr
+ friend GR_CORE_API gr_fft_vcc_sptr
gr_make_fft_vcc_fftw (int fft_size, bool forward, const std::vector<float> &window, bool shift);
gri_fft_complex *d_fft;
diff --git a/gnuradio-core/src/lib/general/gr_fft_vfc.h b/gnuradio-core/src/lib/general/gr_fft_vfc.h
index 074574477..6cf6b9037 100644
--- a/gnuradio-core/src/lib/general/gr_fft_vfc.h
+++ b/gnuradio-core/src/lib/general/gr_fft_vfc.h
@@ -23,6 +23,7 @@
#ifndef INCLUDED_GR_FFT_VFC_H
#define INCLUDED_GR_FFT_VFC_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gri_fft_complex;
@@ -30,7 +31,7 @@ class gri_fft_complex;
class gr_fft_vfc;
typedef boost::shared_ptr<gr_fft_vfc> gr_fft_vfc_sptr;
-gr_fft_vfc_sptr
+GR_CORE_API gr_fft_vfc_sptr
gr_make_fft_vfc (int fft_size, bool forward, const std::vector<float> &window);
/*!
@@ -38,9 +39,9 @@ gr_make_fft_vfc (int fft_size, bool forward, const std::vector<float> &window);
* \ingroup dft_blk
*/
-class gr_fft_vfc : public gr_sync_block
+class GR_CORE_API gr_fft_vfc : public gr_sync_block
{
- friend gr_fft_vfc_sptr
+ friend GR_CORE_API gr_fft_vfc_sptr
gr_make_fft_vfc (int fft_size, bool forward, const std::vector<float> &window);
unsigned int d_fft_size;
diff --git a/gnuradio-core/src/lib/general/gr_firdes.h b/gnuradio-core/src/lib/general/gr_firdes.h
index de775bd07..83fa7e119 100644
--- a/gnuradio-core/src/lib/general/gr_firdes.h
+++ b/gnuradio-core/src/lib/general/gr_firdes.h
@@ -23,6 +23,7 @@
#ifndef _GR_FIRDES_H_
#define _GR_FIRDES_H_
+#include <gr_core_api.h>
#include <vector>
#include <cmath>
#include <gr_complex.h>
@@ -32,7 +33,7 @@
* \ingroup filter_design
*/
-class gr_firdes {
+class GR_CORE_API gr_firdes {
public:
enum win_type {
diff --git a/gnuradio-core/src/lib/general/gr_float_to_char.h b/gnuradio-core/src/lib/general/gr_float_to_char.h
index e65072bf0..434e2e9d0 100644
--- a/gnuradio-core/src/lib/general/gr_float_to_char.h
+++ b/gnuradio-core/src/lib/general/gr_float_to_char.h
@@ -23,12 +23,13 @@
#ifndef INCLUDED_GR_FLOAT_TO_CHAR_H
#define INCLUDED_GR_FLOAT_TO_CHAR_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_float_to_char;
typedef boost::shared_ptr<gr_float_to_char> gr_float_to_char_sptr;
-gr_float_to_char_sptr
+GR_CORE_API gr_float_to_char_sptr
gr_make_float_to_char ();
/*!
@@ -36,9 +37,9 @@ gr_make_float_to_char ();
* \ingroup converter_blk
*/
-class gr_float_to_char : public gr_sync_block
+class GR_CORE_API gr_float_to_char : public gr_sync_block
{
- friend gr_float_to_char_sptr gr_make_float_to_char ();
+ friend GR_CORE_API gr_float_to_char_sptr gr_make_float_to_char ();
gr_float_to_char ();
public:
diff --git a/gnuradio-core/src/lib/general/gr_float_to_complex.h b/gnuradio-core/src/lib/general/gr_float_to_complex.h
index f6cc24852..596b595f3 100644
--- a/gnuradio-core/src/lib/general/gr_float_to_complex.h
+++ b/gnuradio-core/src/lib/general/gr_float_to_complex.h
@@ -23,13 +23,14 @@
#ifndef INCLUDED_GR_FLOAT_TO_COMPLEX_H
#define INCLUDED_GR_FLOAT_TO_COMPLEX_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <gr_complex.h>
class gr_float_to_complex;
typedef boost::shared_ptr<gr_float_to_complex> gr_float_to_complex_sptr;
-gr_float_to_complex_sptr
+GR_CORE_API gr_float_to_complex_sptr
gr_make_float_to_complex (size_t vlen = 1);
/*!
@@ -37,9 +38,9 @@ gr_make_float_to_complex (size_t vlen = 1);
* \ingroup converter_blk
*/
-class gr_float_to_complex : public gr_sync_block
+class GR_CORE_API gr_float_to_complex : public gr_sync_block
{
- friend gr_float_to_complex_sptr gr_make_float_to_complex (size_t vlen);
+ friend GR_CORE_API gr_float_to_complex_sptr gr_make_float_to_complex (size_t vlen);
gr_float_to_complex (size_t vlen);
size_t d_vlen;
diff --git a/gnuradio-core/src/lib/general/gr_float_to_short.h b/gnuradio-core/src/lib/general/gr_float_to_short.h
index e85343929..010d61141 100644
--- a/gnuradio-core/src/lib/general/gr_float_to_short.h
+++ b/gnuradio-core/src/lib/general/gr_float_to_short.h
@@ -23,12 +23,13 @@
#ifndef INCLUDED_GR_FLOAT_TO_SHORT_H
#define INCLUDED_GR_FLOAT_TO_SHORT_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_float_to_short;
typedef boost::shared_ptr<gr_float_to_short> gr_float_to_short_sptr;
-gr_float_to_short_sptr
+GR_CORE_API gr_float_to_short_sptr
gr_make_float_to_short ();
/*!
@@ -36,9 +37,9 @@ gr_make_float_to_short ();
* \ingroup converter_blk
*/
-class gr_float_to_short : public gr_sync_block
+class GR_CORE_API gr_float_to_short : public gr_sync_block
{
- friend gr_float_to_short_sptr gr_make_float_to_short ();
+ friend GR_CORE_API gr_float_to_short_sptr gr_make_float_to_short ();
gr_float_to_short ();
public:
diff --git a/gnuradio-core/src/lib/general/gr_float_to_uchar.h b/gnuradio-core/src/lib/general/gr_float_to_uchar.h
index 3bca9c555..fca8eb07b 100644
--- a/gnuradio-core/src/lib/general/gr_float_to_uchar.h
+++ b/gnuradio-core/src/lib/general/gr_float_to_uchar.h
@@ -23,12 +23,13 @@
#ifndef INCLUDED_GR_FLOAT_TO_UCHAR_H
#define INCLUDED_GR_FLOAT_TO_UCHAR_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_float_to_uchar;
typedef boost::shared_ptr<gr_float_to_uchar> gr_float_to_uchar_sptr;
-gr_float_to_uchar_sptr
+GR_CORE_API gr_float_to_uchar_sptr
gr_make_float_to_uchar ();
/*!
@@ -36,9 +37,9 @@ gr_make_float_to_uchar ();
* \ingroup converter_blk
*/
-class gr_float_to_uchar : public gr_sync_block
+class GR_CORE_API gr_float_to_uchar : public gr_sync_block
{
- friend gr_float_to_uchar_sptr gr_make_float_to_uchar ();
+ friend GR_CORE_API gr_float_to_uchar_sptr gr_make_float_to_uchar ();
gr_float_to_uchar ();
public:
diff --git a/gnuradio-core/src/lib/general/gr_fmdet_cf.h b/gnuradio-core/src/lib/general/gr_fmdet_cf.h
index 792646bef..7bf3baa3f 100644
--- a/gnuradio-core/src/lib/general/gr_fmdet_cf.h
+++ b/gnuradio-core/src/lib/general/gr_fmdet_cf.h
@@ -23,12 +23,13 @@
#ifndef INCLUDED_GR_FMDET_CF_H
#define INCLUDED_GR_FMDET_CF_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_fmdet_cf;
typedef boost::shared_ptr<gr_fmdet_cf> gr_fmdet_cf_sptr;
-gr_fmdet_cf_sptr gr_make_fmdet_cf (float samplerate, float freq_low, float freq_high, float scl);
+GR_CORE_API gr_fmdet_cf_sptr gr_make_fmdet_cf (float samplerate, float freq_low, float freq_high, float scl);
class gr_fir_ccf;
@@ -43,9 +44,9 @@ class gr_fir_ccf;
* normalization by the magnitude of the sample
*/
-class gr_fmdet_cf : public gr_sync_block
+class GR_CORE_API gr_fmdet_cf : public gr_sync_block
{
- friend gr_fmdet_cf_sptr gr_make_fmdet_cf (float samplerate, float freq_low,
+ friend GR_CORE_API gr_fmdet_cf_sptr gr_make_fmdet_cf (float samplerate, float freq_low,
float freq_high, float scl);
gr_complex d_S1,d_S2,d_S3,d_S4;
diff --git a/gnuradio-core/src/lib/general/gr_framer_sink_1.h b/gnuradio-core/src/lib/general/gr_framer_sink_1.h
index 3f2e8aa88..95ad6ced7 100644
--- a/gnuradio-core/src/lib/general/gr_framer_sink_1.h
+++ b/gnuradio-core/src/lib/general/gr_framer_sink_1.h
@@ -23,13 +23,14 @@
#ifndef INCLUDED_GR_FRAMER_SINK_1_H
#define INCLUDED_GR_FRAMER_SINK_1_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <gr_msg_queue.h>
class gr_framer_sink_1;
typedef boost::shared_ptr<gr_framer_sink_1> gr_framer_sink_1_sptr;
-gr_framer_sink_1_sptr
+GR_CORE_API gr_framer_sink_1_sptr
gr_make_framer_sink_1 (gr_msg_queue_sptr target_queue);
/*!
@@ -50,9 +51,9 @@ gr_make_framer_sink_1 (gr_msg_queue_sptr target_queue);
* the first bit of the packet. That is, this bit is the first
* one after the access code.
*/
-class gr_framer_sink_1 : public gr_sync_block
+class GR_CORE_API gr_framer_sink_1 : public gr_sync_block
{
- friend gr_framer_sink_1_sptr
+ friend GR_CORE_API gr_framer_sink_1_sptr
gr_make_framer_sink_1 (gr_msg_queue_sptr target_queue);
private:
diff --git a/gnuradio-core/src/lib/general/gr_frequency_modulator_fc.h b/gnuradio-core/src/lib/general/gr_frequency_modulator_fc.h
index 385f447b7..932e7da36 100644
--- a/gnuradio-core/src/lib/general/gr_frequency_modulator_fc.h
+++ b/gnuradio-core/src/lib/general/gr_frequency_modulator_fc.h
@@ -23,12 +23,13 @@
#ifndef INCLUDED_GR_FREQUENCY_MODULATOR_FC_H
#define INCLUDED_GR_FREQUENCY_MODULATOR_FC_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_frequency_modulator_fc;
typedef boost::shared_ptr<gr_frequency_modulator_fc> gr_frequency_modulator_fc_sptr;
-gr_frequency_modulator_fc_sptr gr_make_frequency_modulator_fc (double sensitivity);
+GR_CORE_API gr_frequency_modulator_fc_sptr gr_make_frequency_modulator_fc (double sensitivity);
/*!
* \brief Frequency modulator block
@@ -36,12 +37,12 @@ gr_frequency_modulator_fc_sptr gr_make_frequency_modulator_fc (double sensitivit
*
* float input; complex baseband output
*/
-class gr_frequency_modulator_fc : public gr_sync_block
+class GR_CORE_API gr_frequency_modulator_fc : public gr_sync_block
{
double d_sensitivity;
double d_phase;
- friend gr_frequency_modulator_fc_sptr
+ friend GR_CORE_API gr_frequency_modulator_fc_sptr
gr_make_frequency_modulator_fc (double sensitivity);
gr_frequency_modulator_fc (double sensitivity);
diff --git a/gnuradio-core/src/lib/general/gr_fxpt.h b/gnuradio-core/src/lib/general/gr_fxpt.h
index c98d31b27..5cf736dfb 100644
--- a/gnuradio-core/src/lib/general/gr_fxpt.h
+++ b/gnuradio-core/src/lib/general/gr_fxpt.h
@@ -22,10 +22,11 @@
#ifndef INCLUDED_GR_FXPT_H
#define INCLUDED_GR_FXPT_H
+#include <gr_core_api.h>
#include <gr_types.h>
/*!
- * \brief fixed point sine and cosine and friends.
+ * \brief fixed point sine and cosine and friend GR_CORE_APIs.
* \ingroup misc
*
* fixed pt radians
@@ -35,7 +36,7 @@
* 2**31-1 pi - epsilon
*
*/
-class gr_fxpt
+class GR_CORE_API gr_fxpt
{
static const int WORDBITS = 32;
static const int NBITS = 10;
diff --git a/gnuradio-core/src/lib/general/gr_fxpt_nco.h b/gnuradio-core/src/lib/general/gr_fxpt_nco.h
index ca0d54f02..5597efb4f 100644
--- a/gnuradio-core/src/lib/general/gr_fxpt_nco.h
+++ b/gnuradio-core/src/lib/general/gr_fxpt_nco.h
@@ -22,6 +22,7 @@
#ifndef INCLUDED_GR_FXPT_NCO_H
#define INCLUDED_GR_FXPT_NCO_H
+#include <gr_core_api.h>
#include <gr_fxpt.h>
#include <gr_complex.h>
@@ -29,7 +30,7 @@
* \brief Numerically Controlled Oscillator (NCO)
* \ingroup misc
*/
-class gr_fxpt_nco {
+class GR_CORE_API gr_fxpt_nco {
gr_uint32 d_phase;
gr_int32 d_phase_inc;
diff --git a/gnuradio-core/src/lib/general/gr_fxpt_vco.h b/gnuradio-core/src/lib/general/gr_fxpt_vco.h
index 1ff968b79..a77a31311 100644
--- a/gnuradio-core/src/lib/general/gr_fxpt_vco.h
+++ b/gnuradio-core/src/lib/general/gr_fxpt_vco.h
@@ -22,6 +22,7 @@
#ifndef INCLUDED_GR_FXPT_VCO_H
#define INCLUDED_GR_FXPT_VCO_H
+#include <gr_core_api.h>
#include <gr_fxpt.h>
#include <gr_complex.h>
@@ -29,7 +30,7 @@
* \brief Voltage Controlled Oscillator (VCO)
* \ingroup misc
*/
-class gr_fxpt_vco {
+class GR_CORE_API gr_fxpt_vco {
gr_int32 d_phase;
public:
diff --git a/gnuradio-core/src/lib/general/gr_glfsr_source_b.h b/gnuradio-core/src/lib/general/gr_glfsr_source_b.h
index cff8df11b..bd66912ed 100644
--- a/gnuradio-core/src/lib/general/gr_glfsr_source_b.h
+++ b/gnuradio-core/src/lib/general/gr_glfsr_source_b.h
@@ -23,6 +23,7 @@
#ifndef INCLUDED_GR_GLFSR_SOURCE_B_H
#define INCLUDED_GR_GLFSR_SOURCE_B_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gri_glfsr;
@@ -30,16 +31,16 @@ class gri_glfsr;
class gr_glfsr_source_b;
typedef boost::shared_ptr<gr_glfsr_source_b> gr_glfsr_source_b_sptr;
-gr_glfsr_source_b_sptr gr_make_glfsr_source_b(int degree, bool repeat=true, int mask=0, int seed=1);
+GR_CORE_API gr_glfsr_source_b_sptr gr_make_glfsr_source_b(int degree, bool repeat=true, int mask=0, int seed=1);
/*!
* \brief Galois LFSR pseudo-random source
* \ingroup source_blk
*/
-class gr_glfsr_source_b : public gr_sync_block
+class GR_CORE_API gr_glfsr_source_b : public gr_sync_block
{
private:
- friend gr_glfsr_source_b_sptr
+ friend GR_CORE_API gr_glfsr_source_b_sptr
gr_make_glfsr_source_b(int degree, bool repeat, int mask, int seed);
gri_glfsr *d_glfsr;
diff --git a/gnuradio-core/src/lib/general/gr_glfsr_source_f.h b/gnuradio-core/src/lib/general/gr_glfsr_source_f.h
index 007970806..2dd09c5ac 100644
--- a/gnuradio-core/src/lib/general/gr_glfsr_source_f.h
+++ b/gnuradio-core/src/lib/general/gr_glfsr_source_f.h
@@ -23,6 +23,7 @@
#ifndef INCLUDED_GR_GLFSR_SOURCE_F_H
#define INCLUDED_GR_GLFSR_SOURCE_F_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gri_glfsr;
@@ -30,16 +31,16 @@ class gri_glfsr;
class gr_glfsr_source_f;
typedef boost::shared_ptr<gr_glfsr_source_f> gr_glfsr_source_f_sptr;
-gr_glfsr_source_f_sptr gr_make_glfsr_source_f(int degree, bool repeat=true, int mask=0, int seed=1);
+GR_CORE_API gr_glfsr_source_f_sptr gr_make_glfsr_source_f(int degree, bool repeat=true, int mask=0, int seed=1);
/*!
* \brief Galois LFSR pseudo-random source generating float outputs -1.0 - 1.0
* \ingroup source_blk
*/
-class gr_glfsr_source_f : public gr_sync_block
+class GR_CORE_API gr_glfsr_source_f : public gr_sync_block
{
private:
- friend gr_glfsr_source_f_sptr
+ friend GR_CORE_API gr_glfsr_source_f_sptr
gr_make_glfsr_source_f(int degree, bool repeat, int mask, int seed);
gri_glfsr *d_glfsr;
diff --git a/gnuradio-core/src/lib/general/gr_head.h b/gnuradio-core/src/lib/general/gr_head.h
index f7eee1064..f66d43308 100644
--- a/gnuradio-core/src/lib/general/gr_head.h
+++ b/gnuradio-core/src/lib/general/gr_head.h
@@ -23,6 +23,7 @@
#ifndef INCLUDED_GR_HEAD_H
#define INCLUDED_GR_HEAD_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <stddef.h> // size_t
@@ -36,9 +37,9 @@ typedef boost::shared_ptr<gr_head> gr_head_sptr;
* Useful for building test cases
*/
-class gr_head : public gr_sync_block
+class GR_CORE_API gr_head : public gr_sync_block
{
- friend gr_head_sptr gr_make_head (size_t sizeof_stream_item, unsigned long long nitems);
+ friend GR_CORE_API gr_head_sptr gr_make_head (size_t sizeof_stream_item, unsigned long long nitems);
gr_head (size_t sizeof_stream_item, unsigned long long nitems);
unsigned long long d_nitems;
@@ -52,7 +53,7 @@ class gr_head : public gr_sync_block
void reset() { d_ncopied_items = 0; }
};
-gr_head_sptr
+GR_CORE_API gr_head_sptr
gr_make_head (size_t sizeof_stream_item, unsigned long long nitems);
diff --git a/gnuradio-core/src/lib/general/gr_int_to_float.h b/gnuradio-core/src/lib/general/gr_int_to_float.h
index cf1223be5..dac7be9c4 100644
--- a/gnuradio-core/src/lib/general/gr_int_to_float.h
+++ b/gnuradio-core/src/lib/general/gr_int_to_float.h
@@ -23,12 +23,13 @@
#ifndef INCLUDED_GR_INT_TO_FLOAT_H
#define INCLUDED_GR_INT_TO_FLOAT_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_int_to_float;
typedef boost::shared_ptr<gr_int_to_float> gr_int_to_float_sptr;
-gr_int_to_float_sptr
+GR_CORE_API gr_int_to_float_sptr
gr_make_int_to_float ();
/*!
@@ -36,9 +37,9 @@ gr_make_int_to_float ();
* \ingroup converter_blk
*/
-class gr_int_to_float : public gr_sync_block
+class GR_CORE_API gr_int_to_float : public gr_sync_block
{
- friend gr_int_to_float_sptr gr_make_int_to_float ();
+ friend GR_CORE_API gr_int_to_float_sptr gr_make_int_to_float ();
gr_int_to_float ();
public:
diff --git a/gnuradio-core/src/lib/general/gr_interleave.h b/gnuradio-core/src/lib/general/gr_interleave.h
index faffdd757..ef7bce07a 100644
--- a/gnuradio-core/src/lib/general/gr_interleave.h
+++ b/gnuradio-core/src/lib/general/gr_interleave.h
@@ -23,20 +23,21 @@
#ifndef INCLUDED_GR_INTERLEAVE_H
#define INCLUDED_GR_INTERLEAVE_H
+#include <gr_core_api.h>
#include <gr_sync_interpolator.h>
class gr_interleave;
typedef boost::shared_ptr<gr_interleave> gr_interleave_sptr;
-gr_interleave_sptr gr_make_interleave (size_t itemsize);
+GR_CORE_API gr_interleave_sptr gr_make_interleave (size_t itemsize);
/*!
* \brief interleave N inputs to a single output
* \ingroup slicedice_blk
*/
-class gr_interleave : public gr_sync_interpolator
+class GR_CORE_API gr_interleave : public gr_sync_interpolator
{
- friend gr_interleave_sptr gr_make_interleave (size_t itemsize);
+ friend GR_CORE_API gr_interleave_sptr gr_make_interleave (size_t itemsize);
size_t d_itemsize;
diff --git a/gnuradio-core/src/lib/general/gr_interleaved_short_to_complex.h b/gnuradio-core/src/lib/general/gr_interleaved_short_to_complex.h
index c79a9370f..40f1636bd 100644
--- a/gnuradio-core/src/lib/general/gr_interleaved_short_to_complex.h
+++ b/gnuradio-core/src/lib/general/gr_interleaved_short_to_complex.h
@@ -23,13 +23,14 @@
#ifndef INCLUDED_GR_INTERLEAVED_SHORT_TO_COMPLEX_H
#define INCLUDED_GR_INTERLEAVED_SHORT_TO_COMPLEX_H
+#include <gr_core_api.h>
#include <gr_sync_decimator.h>
class gr_interleaved_short_to_complex;
typedef boost::shared_ptr<gr_interleaved_short_to_complex>
gr_interleaved_short_to_complex_sptr;
-gr_interleaved_short_to_complex_sptr
+GR_CORE_API gr_interleaved_short_to_complex_sptr
gr_make_interleaved_short_to_complex ();
/*!
@@ -37,9 +38,9 @@ gr_make_interleaved_short_to_complex ();
* \ingroup converter_blk
*/
-class gr_interleaved_short_to_complex : public gr_sync_decimator
+class GR_CORE_API gr_interleaved_short_to_complex : public gr_sync_decimator
{
- friend gr_interleaved_short_to_complex_sptr gr_make_interleaved_short_to_complex ();
+ friend GR_CORE_API gr_interleaved_short_to_complex_sptr gr_make_interleaved_short_to_complex ();
gr_interleaved_short_to_complex ();
public:
diff --git a/gnuradio-core/src/lib/general/gr_iqcomp_cc.h b/gnuradio-core/src/lib/general/gr_iqcomp_cc.h
index f4c6cf8ea..c01e2a6ba 100644
--- a/gnuradio-core/src/lib/general/gr_iqcomp_cc.h
+++ b/gnuradio-core/src/lib/general/gr_iqcomp_cc.h
@@ -24,20 +24,21 @@
#ifndef INCLUDED_GR_IQCOMP_CC_H
#define INCLUDED_GR_IQCOMP_CC_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_iqcomp_cc;
typedef boost::shared_ptr<gr_iqcomp_cc> gr_iqcomp_cc_sptr;
-gr_iqcomp_cc_sptr gr_make_iqcomp_cc (float mu);
+GR_CORE_API gr_iqcomp_cc_sptr gr_make_iqcomp_cc (float mu);
/*!
* \brief
* \ingroup misc_blk
*/
-class gr_iqcomp_cc : public gr_sync_block
+class GR_CORE_API gr_iqcomp_cc : public gr_sync_block
{
- friend gr_iqcomp_cc_sptr gr_make_iqcomp_cc (float mu);
+ friend GR_CORE_API gr_iqcomp_cc_sptr gr_make_iqcomp_cc (float mu);
float d_mu, d_wi, d_wq;
gr_iqcomp_cc (float mu);
diff --git a/gnuradio-core/src/lib/general/gr_keep_one_in_n.h b/gnuradio-core/src/lib/general/gr_keep_one_in_n.h
index ba573618e..c32ed2a26 100644
--- a/gnuradio-core/src/lib/general/gr_keep_one_in_n.h
+++ b/gnuradio-core/src/lib/general/gr_keep_one_in_n.h
@@ -23,12 +23,13 @@
#ifndef INCLUDED_GR_KEEP_ONE_IN_N_H
#define INCLUDED_GR_KEEP_ONE_IN_N_H
+#include <gr_core_api.h>
#include <gr_sync_decimator.h>
class gr_keep_one_in_n;
typedef boost::shared_ptr<gr_keep_one_in_n> gr_keep_one_in_n_sptr;
-gr_keep_one_in_n_sptr
+GR_CORE_API gr_keep_one_in_n_sptr
gr_make_keep_one_in_n (size_t item_size, int n);
@@ -36,9 +37,9 @@ gr_make_keep_one_in_n (size_t item_size, int n);
* \brief decimate a stream, keeping one item out of every n.
* \ingroup slicedice_blk
*/
-class gr_keep_one_in_n : public gr_block
+class GR_CORE_API gr_keep_one_in_n : public gr_block
{
- friend gr_keep_one_in_n_sptr
+ friend GR_CORE_API gr_keep_one_in_n_sptr
gr_make_keep_one_in_n (size_t item_size, int n);
int d_n;
diff --git a/gnuradio-core/src/lib/general/gr_kludge_copy.h b/gnuradio-core/src/lib/general/gr_kludge_copy.h
index 90fd047df..5c1e461a8 100644
--- a/gnuradio-core/src/lib/general/gr_kludge_copy.h
+++ b/gnuradio-core/src/lib/general/gr_kludge_copy.h
@@ -23,12 +23,13 @@
#ifndef INCLUDED_GR_KLUDGE_COPY_H
#define INCLUDED_GR_KLUDGE_COPY_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_kludge_copy;
typedef boost::shared_ptr<gr_kludge_copy> gr_kludge_copy_sptr;
-gr_kludge_copy_sptr gr_make_kludge_copy(size_t itemsize);
+GR_CORE_API gr_kludge_copy_sptr gr_make_kludge_copy(size_t itemsize);
/*!
* \brief output[i] = input[i]
@@ -36,11 +37,11 @@ gr_kludge_copy_sptr gr_make_kludge_copy(size_t itemsize);
*
* This is a short term kludge to work around a problem with the hierarchical block impl.
*/
-class gr_kludge_copy : public gr_sync_block
+class GR_CORE_API gr_kludge_copy : public gr_sync_block
{
size_t d_itemsize;
- friend gr_kludge_copy_sptr gr_make_kludge_copy(size_t itemsize);
+ friend GR_CORE_API gr_kludge_copy_sptr gr_make_kludge_copy(size_t itemsize);
gr_kludge_copy(size_t itemsize);
public:
diff --git a/gnuradio-core/src/lib/general/gr_lfsr_32k_source_s.h b/gnuradio-core/src/lib/general/gr_lfsr_32k_source_s.h
index f8497e4cb..aa7ad7b1f 100644
--- a/gnuradio-core/src/lib/general/gr_lfsr_32k_source_s.h
+++ b/gnuradio-core/src/lib/general/gr_lfsr_32k_source_s.h
@@ -23,13 +23,14 @@
#ifndef INCLUDED_GR_LFSR_32K_SOURCE_S_H
#define INCLUDED_GR_LFSR_32K_SOURCE_S_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <gri_lfsr_32k.h>
class gr_lfsr_32k_source_s;
typedef boost::shared_ptr<gr_lfsr_32k_source_s> gr_lfsr_32k_source_s_sptr;
-gr_lfsr_32k_source_s_sptr gr_make_lfsr_32k_source_s ();
+GR_CORE_API gr_lfsr_32k_source_s_sptr gr_make_lfsr_32k_source_s ();
/*!
* \brief LFSR pseudo-random source with period of 2^15 bits (2^11 shorts)
@@ -38,9 +39,9 @@ gr_lfsr_32k_source_s_sptr gr_make_lfsr_32k_source_s ();
* This source is typically used along with gr_check_lfsr_32k_s to test
* the USRP using its digital loopback mode.
*/
-class gr_lfsr_32k_source_s : public gr_sync_block
+class GR_CORE_API gr_lfsr_32k_source_s : public gr_sync_block
{
- friend gr_lfsr_32k_source_s_sptr gr_make_lfsr_32k_source_s ();
+ friend GR_CORE_API gr_lfsr_32k_source_s_sptr gr_make_lfsr_32k_source_s ();
static const int BUFSIZE = 2048 - 1; // ensure pattern isn't packet aligned
diff --git a/gnuradio-core/src/lib/general/gr_lms_dfe_cc.h b/gnuradio-core/src/lib/general/gr_lms_dfe_cc.h
new file mode 100644
index 000000000..335b1883c
--- /dev/null
+++ b/gnuradio-core/src/lib/general/gr_lms_dfe_cc.h
@@ -0,0 +1,65 @@
+/* -*- c++ -*- */
+/*
+ * Copyright 2005 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_LMS_DFE_CC_H
+#define INCLUDED_GR_LMS_DFE_CC_H
+
+#include <gr_core_api.h>
+#include <gr_sync_block.h>
+
+class gr_lms_dfe_cc;
+typedef boost::shared_ptr<gr_lms_dfe_cc> gr_lms_dfe_cc_sptr;
+
+GR_CORE_API gr_lms_dfe_cc_sptr gr_make_lms_dfe_cc (float lambda_ff, float lambda_fb,
+ unsigned int num_fftaps, unsigned int num_fbtaps);
+
+/*!
+ * \brief Least-Mean-Square Decision Feedback Equalizer (complex in/out)
+ * \ingroup eq_blk
+ */
+class GR_CORE_API gr_lms_dfe_cc : public gr_sync_block
+{
+ friend GR_CORE_API gr_lms_dfe_cc_sptr gr_make_lms_dfe_cc (float lambda_ff, float lambda_fb,
+ unsigned int num_fftaps, unsigned int num_fbtaps);
+
+ float d_lambda_ff;
+ float d_lambda_fb;
+ std::vector<gr_complex> d_ff_delayline;
+ std::vector<gr_complex> d_fb_delayline;
+ std::vector<gr_complex> d_ff_taps;
+ std::vector<gr_complex> d_fb_taps;
+ unsigned int d_ff_index;
+ unsigned int d_fb_index;
+
+ gr_lms_dfe_cc (float lambda_ff, float lambda_fb,
+ unsigned int num_fftaps, unsigned int num_fbtaps);
+ gr_complex slicer_0deg(gr_complex baud);
+ gr_complex slicer_45deg(gr_complex baud);
+
+ public:
+
+ 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/general/gr_lms_dfe_ff.h b/gnuradio-core/src/lib/general/gr_lms_dfe_ff.h
new file mode 100644
index 000000000..ed2aa9844
--- /dev/null
+++ b/gnuradio-core/src/lib/general/gr_lms_dfe_ff.h
@@ -0,0 +1,63 @@
+/* -*- c++ -*- */
+/*
+ * Copyright 2005 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_LMS_DFE_FF_H
+#define INCLUDED_GR_LMS_DFE_FF_H
+
+#include <gr_core_api.h>
+#include <gr_sync_block.h>
+
+class gr_lms_dfe_ff;
+typedef boost::shared_ptr<gr_lms_dfe_ff> gr_lms_dfe_ff_sptr;
+
+GR_CORE_API gr_lms_dfe_ff_sptr gr_make_lms_dfe_ff (float lambda_ff, float lambda_fb,
+ unsigned int num_fftaps, unsigned int num_fbtaps);
+
+/*!
+ * \brief Least-Mean-Square Decision Feedback Equalizer (float in/out)
+ * \ingroup eq_blk
+ */
+class GR_CORE_API gr_lms_dfe_ff : public gr_sync_block
+{
+ friend GR_CORE_API gr_lms_dfe_ff_sptr gr_make_lms_dfe_ff (float lambda_ff, float lambda_fb,
+ unsigned int num_fftaps, unsigned int num_fbtaps);
+
+ float d_lambda_ff;
+ float d_lambda_fb;
+ std::vector<float> d_ff_delayline;
+ std::vector<float> d_fb_delayline;
+ std::vector<float> d_ff_taps;
+ std::vector<float> d_fb_taps;
+ unsigned int d_ff_index;
+ unsigned int d_fb_index;
+
+ gr_lms_dfe_ff (float lambda_ff, float lambda_fb,
+ unsigned int num_fftaps, unsigned int num_fbtaps);
+
+ public:
+
+ 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/general/gr_log2_const.h b/gnuradio-core/src/lib/general/gr_log2_const.h
index 4ea420920..8e4a0860b 100644
--- a/gnuradio-core/src/lib/general/gr_log2_const.h
+++ b/gnuradio-core/src/lib/general/gr_log2_const.h
@@ -27,6 +27,7 @@
#ifndef INCLUDED_GR_LOG2_CONST_H
#define INCLUDED_GR_LOG2_CONST_H
+#include <gr_core_api.h>
#include <assert.h>
template<unsigned int k> static inline int gr_log2_const() { assert(0); return 0; }
diff --git a/gnuradio-core/src/lib/general/gr_map_bb.h b/gnuradio-core/src/lib/general/gr_map_bb.h
index 4986ab181..0820c6a16 100644
--- a/gnuradio-core/src/lib/general/gr_map_bb.h
+++ b/gnuradio-core/src/lib/general/gr_map_bb.h
@@ -22,21 +22,22 @@
#ifndef INCLUDED_GR_MAP_BB_H
#define INCLUDED_GR_MAP_BB_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_map_bb;
typedef boost::shared_ptr<gr_map_bb> gr_map_bb_sptr;
-gr_map_bb_sptr gr_make_map_bb(const std::vector<int> &map);
+GR_CORE_API gr_map_bb_sptr gr_make_map_bb(const std::vector<int> &map);
/*!
* \brief output[i] = map[input[i]]
* \ingroup coding_blk
*/
-class gr_map_bb : public gr_sync_block
+class GR_CORE_API gr_map_bb : public gr_sync_block
{
- friend gr_map_bb_sptr gr_make_map_bb(const std::vector<int> &map);
+ friend GR_CORE_API gr_map_bb_sptr gr_make_map_bb(const std::vector<int> &map);
unsigned char d_map[0x100];
diff --git a/gnuradio-core/src/lib/general/gr_math.h b/gnuradio-core/src/lib/general/gr_math.h
index f5935c1da..9c61942cd 100644
--- a/gnuradio-core/src/lib/general/gr_math.h
+++ b/gnuradio-core/src/lib/general/gr_math.h
@@ -27,6 +27,7 @@
#ifndef _GR_MATH_H_
#define _GR_MATH_H_
+#include <gr_core_api.h>
#include <gr_complex.h>
static inline bool
@@ -51,7 +52,7 @@ gr_is_power_of_2(long x)
* to zero. This routine calculates the arc tangent with an average
* error of +/- 0.045 degrees.
*/
-float gr_fast_atan2f(float y, float x);
+GR_CORE_API float gr_fast_atan2f(float y, float x);
static inline float gr_fast_atan2f(gr_complex z)
{
diff --git a/gnuradio-core/src/lib/general/gr_misc.h b/gnuradio-core/src/lib/general/gr_misc.h
index 55cc7eda6..78f7e18ac 100644
--- a/gnuradio-core/src/lib/general/gr_misc.h
+++ b/gnuradio-core/src/lib/general/gr_misc.h
@@ -23,16 +23,17 @@
#ifndef INCLUDED_GR_MISC_H
#define INCLUDED_GR_MISC_H
+#include <gr_core_api.h>
#include <gr_types.h>
unsigned int
gr_rounduppow2(unsigned int n);
// FIXME should be template
-void gr_zero_vector(std::vector<float> &v);
-void gr_zero_vector(std::vector<double> &v);
-void gr_zero_vector(std::vector<int> &v);
-void gr_zero_vector(std::vector<gr_complex> &v);
+GR_CORE_API void gr_zero_vector(std::vector<float> &v);
+GR_CORE_API void gr_zero_vector(std::vector<double> &v);
+GR_CORE_API void gr_zero_vector(std::vector<int> &v);
+GR_CORE_API void gr_zero_vector(std::vector<gr_complex> &v);
#endif /* INCLUDED_GR_MISC_H */
diff --git a/gnuradio-core/src/lib/general/gr_nlog10_ff.h b/gnuradio-core/src/lib/general/gr_nlog10_ff.h
index 1cb50f3ca..cea56f87e 100644
--- a/gnuradio-core/src/lib/general/gr_nlog10_ff.h
+++ b/gnuradio-core/src/lib/general/gr_nlog10_ff.h
@@ -22,20 +22,21 @@
#ifndef INCLUDED_GR_NLOG10_FF_H
#define INCLUDED_GR_NLOG10_FF_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_nlog10_ff;
typedef boost::shared_ptr<gr_nlog10_ff> gr_nlog10_ff_sptr;
-gr_nlog10_ff_sptr gr_make_nlog10_ff (float n=1.0, unsigned vlen=1, float k=0);
+GR_CORE_API gr_nlog10_ff_sptr gr_make_nlog10_ff (float n=1.0, unsigned vlen=1, float k=0);
/*!
* \brief output = n*log10(input) + k
* \ingroup math_blk
*/
-class gr_nlog10_ff : public gr_sync_block
+class GR_CORE_API gr_nlog10_ff : public gr_sync_block
{
- friend gr_nlog10_ff_sptr gr_make_nlog10_ff (float n, unsigned vlen, float k);
+ friend GR_CORE_API gr_nlog10_ff_sptr gr_make_nlog10_ff (float n, unsigned vlen, float k);
unsigned int d_vlen;
float d_n;
diff --git a/gnuradio-core/src/lib/general/gr_nop.h b/gnuradio-core/src/lib/general/gr_nop.h
index 354c2f9fc..b8398befc 100644
--- a/gnuradio-core/src/lib/general/gr_nop.h
+++ b/gnuradio-core/src/lib/general/gr_nop.h
@@ -23,22 +23,23 @@
#ifndef INCLUDED_GR_NOP_H
#define INCLUDED_GR_NOP_H
+#include <gr_core_api.h>
#include <gr_block.h>
#include <stddef.h> // size_t
class gr_nop;
typedef boost::shared_ptr<gr_nop> gr_nop_sptr;
-gr_nop_sptr
+GR_CORE_API gr_nop_sptr
gr_make_nop (size_t sizeof_stream_item);
/*!
* \brief Does nothing. Used for testing only.
* \ingroup misc_blk
*/
-class gr_nop : public gr_block
+class GR_CORE_API gr_nop : public gr_block
{
- friend gr_nop_sptr gr_make_nop (size_t sizeof_stream_item);
+ friend GR_CORE_API gr_nop_sptr gr_make_nop (size_t sizeof_stream_item);
gr_nop (size_t sizeof_stream_item);
protected:
diff --git a/gnuradio-core/src/lib/general/gr_null_sink.h b/gnuradio-core/src/lib/general/gr_null_sink.h
index 6d00382a5..c6c4f36fb 100644
--- a/gnuradio-core/src/lib/general/gr_null_sink.h
+++ b/gnuradio-core/src/lib/general/gr_null_sink.h
@@ -23,23 +23,23 @@
#ifndef INCLUDED_GR_NULL_SINK_H
#define INCLUDED_GR_NULL_SINK_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <stddef.h> // size_t
class gr_null_sink;
typedef boost::shared_ptr<gr_null_sink> gr_null_sink_sptr;
-gr_null_sink_sptr
+GR_CORE_API gr_null_sink_sptr
gr_make_null_sink (size_t sizeof_stream_item);
-
/*!
* \brief Bit bucket
* \ingroup sink_blk
*/
-class gr_null_sink : public gr_sync_block
+class GR_CORE_API gr_null_sink : public gr_sync_block
{
- friend gr_null_sink_sptr gr_make_null_sink (size_t sizeof_stream_item);
+ friend GR_CORE_API gr_null_sink_sptr gr_make_null_sink (size_t sizeof_stream_item);
gr_null_sink (size_t sizeof_stream_item);
public:
diff --git a/gnuradio-core/src/lib/general/gr_null_source.h b/gnuradio-core/src/lib/general/gr_null_source.h
index b1a46a195..33687fbaa 100644
--- a/gnuradio-core/src/lib/general/gr_null_source.h
+++ b/gnuradio-core/src/lib/general/gr_null_source.h
@@ -23,21 +23,22 @@
#ifndef INCLUDED_GR_NULL_SOURCE_H
#define INCLUDED_GR_NULL_SOURCE_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_null_source;
typedef boost::shared_ptr<gr_null_source> gr_null_source_sptr;
-gr_null_source_sptr
+GR_CORE_API gr_null_source_sptr
gr_make_null_source (size_t sizeof_stream_item);
/*!
* \brief A source of zeros.
* \ingroup source_blk
*/
-class gr_null_source : public gr_sync_block
+class GR_CORE_API gr_null_source : public gr_sync_block
{
- friend gr_null_source_sptr gr_make_null_source (size_t sizeof_stream_item);
+ friend GR_CORE_API gr_null_source_sptr gr_make_null_source (size_t sizeof_stream_item);
gr_null_source (size_t sizeof_stream_item);
diff --git a/gnuradio-core/src/lib/general/gr_ofdm_bpsk_demapper.h b/gnuradio-core/src/lib/general/gr_ofdm_bpsk_demapper.h
index 12ae6a8f6..6d532d50f 100644
--- a/gnuradio-core/src/lib/general/gr_ofdm_bpsk_demapper.h
+++ b/gnuradio-core/src/lib/general/gr_ofdm_bpsk_demapper.h
@@ -24,13 +24,14 @@
#define INCLUDED_GR_OFDM_BPSK_DEMAPPER_H
+#include <gr_core_api.h>
#include <gr_block.h>
#include <vector>
class gr_ofdm_bpsk_demapper;
typedef boost::shared_ptr<gr_ofdm_bpsk_demapper> gr_ofdm_bpsk_demapper_sptr;
-gr_ofdm_bpsk_demapper_sptr
+GR_CORE_API gr_ofdm_bpsk_demapper_sptr
gr_make_ofdm_bpsk_demapper (unsigned int occupied_carriers);
@@ -39,9 +40,9 @@ gr_make_ofdm_bpsk_demapper (unsigned int occupied_carriers);
* and demodulate to a stream of bits. Simple BPSK version.
* \ingroup ofdm_blk
*/
-class gr_ofdm_bpsk_demapper : public gr_block
+class GR_CORE_API gr_ofdm_bpsk_demapper : public gr_block
{
- friend gr_ofdm_bpsk_demapper_sptr
+ friend GR_CORE_API gr_ofdm_bpsk_demapper_sptr
gr_make_ofdm_bpsk_demapper (unsigned int occupied_carriers);
protected:
diff --git a/gnuradio-core/src/lib/general/gr_ofdm_cyclic_prefixer.h b/gnuradio-core/src/lib/general/gr_ofdm_cyclic_prefixer.h
index eab91cd11..1ed68aa58 100644
--- a/gnuradio-core/src/lib/general/gr_ofdm_cyclic_prefixer.h
+++ b/gnuradio-core/src/lib/general/gr_ofdm_cyclic_prefixer.h
@@ -23,13 +23,14 @@
#ifndef INCLUDED_GR_OFDM_CYCLIC_PREFIXER_H
#define INCLUDED_GR_OFDM_CYCLIC_PREFIXER_H
+#include <gr_core_api.h>
#include <gr_sync_interpolator.h>
#include <stdio.h>
class gr_ofdm_cyclic_prefixer;
typedef boost::shared_ptr<gr_ofdm_cyclic_prefixer> gr_ofdm_cyclic_prefixer_sptr;
-gr_ofdm_cyclic_prefixer_sptr
+GR_CORE_API gr_ofdm_cyclic_prefixer_sptr
gr_make_ofdm_cyclic_prefixer (size_t input_size, size_t output_size);
@@ -38,9 +39,9 @@ gr_make_ofdm_cyclic_prefixer (size_t input_size, size_t output_size);
* symbol(vector) and converts vector to a stream output_size long.
* \ingroup ofdm_blk
*/
-class gr_ofdm_cyclic_prefixer : public gr_sync_interpolator
+class GR_CORE_API gr_ofdm_cyclic_prefixer : public gr_sync_interpolator
{
- friend gr_ofdm_cyclic_prefixer_sptr
+ friend GR_CORE_API gr_ofdm_cyclic_prefixer_sptr
gr_make_ofdm_cyclic_prefixer (size_t input_size, size_t output_size);
protected:
diff --git a/gnuradio-core/src/lib/general/gr_ofdm_demapper_vcb.h b/gnuradio-core/src/lib/general/gr_ofdm_demapper_vcb.h
index 979e1996b..d12e007df 100644
--- a/gnuradio-core/src/lib/general/gr_ofdm_demapper_vcb.h
+++ b/gnuradio-core/src/lib/general/gr_ofdm_demapper_vcb.h
@@ -23,12 +23,13 @@
#ifndef INCLUDED_GR_OFDM_DEMAPPER_VCB_H
#define INCLUDED_GR_OFDM_DEMAPPER_VCB_H
+#include <gr_core_api.h>
#include <gr_sync_decimator.h>
class gr_ofdm_demapper_vcb;
typedef boost::shared_ptr<gr_ofdm_demapper_vcb> gr_ofdm_demapper_vcb_sptr;
-gr_ofdm_demapper_vcb_sptr
+GR_CORE_API gr_ofdm_demapper_vcb_sptr
gr_make_ofdm_demapper_vcb (unsigned int bits_per_symbol, unsigned int vlen);
@@ -39,9 +40,9 @@ gr_make_ofdm_demapper_vcb (unsigned int bits_per_symbol, unsigned int vlen);
* \ingroup demodulation_blk
* \ingroup ofdm_blk
*/
-class gr_ofdm_demapper_vcb : public gr_sync_decimator
+class GR_CORE_API gr_ofdm_demapper_vcb : public gr_sync_decimator
{
- friend gr_ofdm_demapper_vcb_sptr
+ friend GR_CORE_API gr_ofdm_demapper_vcb_sptr
gr_make_ofdm_demapper_vcb (unsigned int bits_per_symbol, unsigned int vlen);
protected:
diff --git a/gnuradio-core/src/lib/general/gr_ofdm_frame_acquisition.h b/gnuradio-core/src/lib/general/gr_ofdm_frame_acquisition.h
index 5db8dbb7f..63c1af086 100644
--- a/gnuradio-core/src/lib/general/gr_ofdm_frame_acquisition.h
+++ b/gnuradio-core/src/lib/general/gr_ofdm_frame_acquisition.h
@@ -24,13 +24,14 @@
#define INCLUDED_GR_OFDM_FRAME_ACQUISITION_H
+#include <gr_core_api.h>
#include <gr_block.h>
#include <vector>
class gr_ofdm_frame_acquisition;
typedef boost::shared_ptr<gr_ofdm_frame_acquisition> gr_ofdm_frame_acquisition_sptr;
-gr_ofdm_frame_acquisition_sptr
+GR_CORE_API gr_ofdm_frame_acquisition_sptr
gr_make_ofdm_frame_acquisition (unsigned int occupied_carriers, unsigned int fft_length,
unsigned int cplen,
const std::vector<gr_complex> &known_symbol,
@@ -54,7 +55,7 @@ gr_make_ofdm_frame_acquisition (unsigned int occupied_carriers, unsigned int fft
* distortion caused by the channel.
*/
-class gr_ofdm_frame_acquisition : public gr_block
+class GR_CORE_API gr_ofdm_frame_acquisition : public gr_block
{
/*!
* \brief Build an OFDM correlator and equalizer.
@@ -65,7 +66,7 @@ class gr_ofdm_frame_acquisition : public gr_block
* start of a frame (usually a BPSK PN sequence)
* \param max_fft_shift_len Set's the maximum distance you can look between bins for correlation
*/
- friend gr_ofdm_frame_acquisition_sptr
+ friend GR_CORE_API gr_ofdm_frame_acquisition_sptr
gr_make_ofdm_frame_acquisition (unsigned int occupied_carriers, unsigned int fft_length,
unsigned int cplen,
const std::vector<gr_complex> &known_symbol,
diff --git a/gnuradio-core/src/lib/general/gr_ofdm_frame_sink.h b/gnuradio-core/src/lib/general/gr_ofdm_frame_sink.h
index c419b8673..d3c1d761d 100644
--- a/gnuradio-core/src/lib/general/gr_ofdm_frame_sink.h
+++ b/gnuradio-core/src/lib/general/gr_ofdm_frame_sink.h
@@ -23,13 +23,14 @@
#ifndef INCLUDED_GR_OFDM_FRAME_SINK_H
#define INCLUDED_GR_OFDM_FRAME_SINK_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <gr_msg_queue.h>
class gr_ofdm_frame_sink;
typedef boost::shared_ptr<gr_ofdm_frame_sink> gr_ofdm_frame_sink_sptr;
-gr_ofdm_frame_sink_sptr
+GR_CORE_API gr_ofdm_frame_sink_sptr
gr_make_ofdm_frame_sink (const std::vector<gr_complex> &sym_position,
const std::vector<unsigned char> &sym_value_out,
gr_msg_queue_sptr target_queue, unsigned int occupied_tones,
@@ -45,9 +46,9 @@ gr_make_ofdm_frame_sink (const std::vector<gr_complex> &sym_position,
* we want to be able to pass in a reference to an object to do the demapping and slicing
* for a given modulation type.
*/
-class gr_ofdm_frame_sink : public gr_sync_block
+class GR_CORE_API gr_ofdm_frame_sink : public gr_sync_block
{
- friend gr_ofdm_frame_sink_sptr
+ friend GR_CORE_API gr_ofdm_frame_sink_sptr
gr_make_ofdm_frame_sink (const std::vector<gr_complex> &sym_position,
const std::vector<unsigned char> &sym_value_out,
gr_msg_queue_sptr target_queue, unsigned int occupied_tones,
diff --git a/gnuradio-core/src/lib/general/gr_ofdm_frame_sink2.h b/gnuradio-core/src/lib/general/gr_ofdm_frame_sink2.h
index de8c6a37e..9595303b1 100644
--- a/gnuradio-core/src/lib/general/gr_ofdm_frame_sink2.h
+++ b/gnuradio-core/src/lib/general/gr_ofdm_frame_sink2.h
@@ -23,6 +23,7 @@
#ifndef INCLUDED_GR_OFDM_FRAME_SINK2_H
#define INCLUDED_GR_OFDM_FRAME_SINK2_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <gr_msg_queue.h>
#include <gr_constellation.h>
@@ -30,7 +31,7 @@
class gr_ofdm_frame_sink2;
typedef boost::shared_ptr<gr_ofdm_frame_sink2> gr_ofdm_frame_sink2_sptr;
-gr_ofdm_frame_sink2_sptr
+GR_CORE_API gr_ofdm_frame_sink2_sptr
gr_make_ofdm_frame_sink2 (gr_constellation_sptr constell,
gr_msg_queue_sptr target_queue, unsigned int occupied_tones,
float phase_gain=0.25, float freq_gain=0.25*0.25/4.0);
@@ -45,9 +46,9 @@ gr_make_ofdm_frame_sink2 (gr_constellation_sptr constell,
* we want to be able to pass in a reference to an object to do the demapping and slicing
* for a given modulation type.
*/
-class gr_ofdm_frame_sink2 : public gr_sync_block
+class GR_CORE_API gr_ofdm_frame_sink2 : public gr_sync_block
{
- friend gr_ofdm_frame_sink2_sptr
+ friend GR_CORE_API gr_ofdm_frame_sink2_sptr
gr_make_ofdm_frame_sink2 (gr_constellation_sptr constell,
gr_msg_queue_sptr target_queue, unsigned int occupied_tones,
float phase_gain, float freq_gain);
diff --git a/gnuradio-core/src/lib/general/gr_ofdm_insert_preamble.h b/gnuradio-core/src/lib/general/gr_ofdm_insert_preamble.h
index 57c1af013..10025dd14 100644
--- a/gnuradio-core/src/lib/general/gr_ofdm_insert_preamble.h
+++ b/gnuradio-core/src/lib/general/gr_ofdm_insert_preamble.h
@@ -22,13 +22,14 @@
#ifndef INCLUDED_GR_OFDM_INSERT_PREAMBLE_H
#define INCLUDED_GR_OFDM_INSERT_PREAMBLE_H
+#include <gr_core_api.h>
#include <gr_block.h>
#include <vector>
class gr_ofdm_insert_preamble;
typedef boost::shared_ptr<gr_ofdm_insert_preamble> gr_ofdm_insert_preamble_sptr;
-gr_ofdm_insert_preamble_sptr
+GR_CORE_API gr_ofdm_insert_preamble_sptr
gr_make_ofdm_insert_preamble(int fft_length,
const std::vector<std::vector<gr_complex> > &preamble);
@@ -62,9 +63,9 @@ gr_make_ofdm_insert_preamble(int fft_length,
* \param preamble vector of symbols that represent the pre-modulated preamble.
*/
-class gr_ofdm_insert_preamble : public gr_block
+class GR_CORE_API gr_ofdm_insert_preamble : public gr_block
{
- friend gr_ofdm_insert_preamble_sptr
+ friend GR_CORE_API gr_ofdm_insert_preamble_sptr
gr_make_ofdm_insert_preamble(int fft_length,
const std::vector<std::vector<gr_complex> > &preamble);
diff --git a/gnuradio-core/src/lib/general/gr_ofdm_mapper_bcv.h b/gnuradio-core/src/lib/general/gr_ofdm_mapper_bcv.h
index 5a21b90af..f33ca4253 100644
--- a/gnuradio-core/src/lib/general/gr_ofdm_mapper_bcv.h
+++ b/gnuradio-core/src/lib/general/gr_ofdm_mapper_bcv.h
@@ -23,6 +23,7 @@
#ifndef INCLUDED_GR_OFDM_MAPPER_BCV_H
#define INCLUDED_GR_OFDM_MAPPER_BCV_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <gr_message.h>
#include <gr_msg_queue.h>
@@ -30,7 +31,7 @@
class gr_ofdm_mapper_bcv;
typedef boost::shared_ptr<gr_ofdm_mapper_bcv> gr_ofdm_mapper_bcv_sptr;
-gr_ofdm_mapper_bcv_sptr
+GR_CORE_API gr_ofdm_mapper_bcv_sptr
gr_make_ofdm_mapper_bcv (const std::vector<gr_complex> &constellation, unsigned msgq_limit,
unsigned occupied_carriers, unsigned int fft_length);
@@ -42,9 +43,9 @@ gr_make_ofdm_mapper_bcv (const std::vector<gr_complex> &constellation, unsigned
* \ingroup ofdm_blk
*/
-class gr_ofdm_mapper_bcv : public gr_sync_block
+class GR_CORE_API gr_ofdm_mapper_bcv : public gr_sync_block
{
- friend gr_ofdm_mapper_bcv_sptr
+ friend GR_CORE_API gr_ofdm_mapper_bcv_sptr
gr_make_ofdm_mapper_bcv (const std::vector<gr_complex> &constellation, unsigned msgq_limit,
unsigned occupied_carriers, unsigned int fft_length);
protected:
diff --git a/gnuradio-core/src/lib/general/gr_ofdm_sampler.h b/gnuradio-core/src/lib/general/gr_ofdm_sampler.h
index d059636ed..6e9dddada 100644
--- a/gnuradio-core/src/lib/general/gr_ofdm_sampler.h
+++ b/gnuradio-core/src/lib/general/gr_ofdm_sampler.h
@@ -23,12 +23,13 @@
#ifndef INCLUDED_GR_OFDM_SAMPLER_H
#define INCLUDED_GR_OFDM_SAMPLER_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_ofdm_sampler;
typedef boost::shared_ptr<gr_ofdm_sampler> gr_ofdm_sampler_sptr;
-gr_ofdm_sampler_sptr gr_make_ofdm_sampler (unsigned int fft_length,
+GR_CORE_API gr_ofdm_sampler_sptr gr_make_ofdm_sampler (unsigned int fft_length,
unsigned int symbol_length,
unsigned int timeout=1000);
@@ -36,9 +37,9 @@ gr_ofdm_sampler_sptr gr_make_ofdm_sampler (unsigned int fft_length,
* \brief does the rest of the OFDM stuff
* \ingroup ofdm_blk
*/
-class gr_ofdm_sampler : public gr_block
+class GR_CORE_API gr_ofdm_sampler : public gr_block
{
- friend gr_ofdm_sampler_sptr gr_make_ofdm_sampler (unsigned int fft_length,
+ friend GR_CORE_API gr_ofdm_sampler_sptr gr_make_ofdm_sampler (unsigned int fft_length,
unsigned int symbol_length,
unsigned int timeout);
diff --git a/gnuradio-core/src/lib/general/gr_pa_2x2_phase_combiner.h b/gnuradio-core/src/lib/general/gr_pa_2x2_phase_combiner.h
index ec163911a..abb23e002 100644
--- a/gnuradio-core/src/lib/general/gr_pa_2x2_phase_combiner.h
+++ b/gnuradio-core/src/lib/general/gr_pa_2x2_phase_combiner.h
@@ -22,12 +22,13 @@
#ifndef INCLUDED_GR_PA_2X2_PHASE_COMBINER_H
#define INCLUDED_GR_PA_2X2_PHASE_COMBINER_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_pa_2x2_phase_combiner;
typedef boost::shared_ptr<gr_pa_2x2_phase_combiner> gr_pa_2x2_phase_combiner_sptr;
-gr_pa_2x2_phase_combiner_sptr gr_make_pa_2x2_phase_combiner ();
+GR_CORE_API gr_pa_2x2_phase_combiner_sptr gr_make_pa_2x2_phase_combiner ();
/*!
* \brief pa_2x2 phase combiner
@@ -40,7 +41,7 @@ gr_pa_2x2_phase_combiner_sptr gr_make_pa_2x2_phase_combiner ();
*
* dx and dy are lambda/2.
*/
-class gr_pa_2x2_phase_combiner : public gr_sync_block
+class GR_CORE_API gr_pa_2x2_phase_combiner : public gr_sync_block
{
static const int NM = 4;
@@ -48,7 +49,7 @@ class gr_pa_2x2_phase_combiner : public gr_sync_block
gr_complex d_phase[NM];
gr_pa_2x2_phase_combiner ();
- friend gr_pa_2x2_phase_combiner_sptr gr_make_pa_2x2_phase_combiner();
+ friend GR_CORE_API gr_pa_2x2_phase_combiner_sptr gr_make_pa_2x2_phase_combiner();
public:
float theta() const { return d_theta; }
diff --git a/gnuradio-core/src/lib/general/gr_packet_sink.h b/gnuradio-core/src/lib/general/gr_packet_sink.h
index 73c5d6c52..89a95f3e3 100644
--- a/gnuradio-core/src/lib/general/gr_packet_sink.h
+++ b/gnuradio-core/src/lib/general/gr_packet_sink.h
@@ -23,13 +23,14 @@
#ifndef INCLUDED_GR_PACKET_SINK_H
#define INCLUDED_GR_PACKET_SINK_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <gr_msg_queue.h>
class gr_packet_sink;
typedef boost::shared_ptr<gr_packet_sink> gr_packet_sink_sptr;
-gr_packet_sink_sptr
+GR_CORE_API gr_packet_sink_sptr
gr_make_packet_sink (const std::vector<unsigned char>& sync_vector,
gr_msg_queue_sptr target_queue,
int threshold = -1 // -1 -> use default
@@ -38,9 +39,9 @@ gr_make_packet_sink (const std::vector<unsigned char>& sync_vector,
* \brief process received bits looking for packet sync, header, and process bits into packet
* \ingroup sink_blk
*/
-class gr_packet_sink : public gr_sync_block
+class GR_CORE_API gr_packet_sink : public gr_sync_block
{
- friend gr_packet_sink_sptr
+ friend GR_CORE_API gr_packet_sink_sptr
gr_make_packet_sink (const std::vector<unsigned char>& sync_vector,
gr_msg_queue_sptr target_queue,
int threshold);
diff --git a/gnuradio-core/src/lib/general/gr_peak_detector2_fb.h b/gnuradio-core/src/lib/general/gr_peak_detector2_fb.h
index 58a006246..5bb97fc5d 100644
--- a/gnuradio-core/src/lib/general/gr_peak_detector2_fb.h
+++ b/gnuradio-core/src/lib/general/gr_peak_detector2_fb.h
@@ -23,12 +23,13 @@
#ifndef INCLUDED_gr_peak_detector2_FB_H
#define INCLUDED_gr_peak_detector2_FB_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_peak_detector2_fb;
typedef boost::shared_ptr<gr_peak_detector2_fb> gr_peak_detector2_fb_sptr;
-gr_peak_detector2_fb_sptr gr_make_peak_detector2_fb (float threshold_factor_rise = 7,
+GR_CORE_API gr_peak_detector2_fb_sptr gr_make_peak_detector2_fb (float threshold_factor_rise = 7,
int look_ahead = 1000,
float alpha = 0.001);
@@ -49,9 +50,9 @@ gr_peak_detector2_fb_sptr gr_make_peak_detector2_fb (float threshold_factor_rise
* \param alpha The gain value of a single-pole moving average filter
*/
-class gr_peak_detector2_fb : public gr_sync_block
+class GR_CORE_API gr_peak_detector2_fb : public gr_sync_block
{
- friend gr_peak_detector2_fb_sptr
+ friend GR_CORE_API gr_peak_detector2_fb_sptr
gr_make_peak_detector2_fb (float threshold_factor_rise, int look_ahead, float alpha);
gr_peak_detector2_fb (float threshold_factor_rise, int look_ahead, float alpha);
diff --git a/gnuradio-core/src/lib/general/gr_phase_modulator_fc.h b/gnuradio-core/src/lib/general/gr_phase_modulator_fc.h
index 50157534b..dd6e300a8 100644
--- a/gnuradio-core/src/lib/general/gr_phase_modulator_fc.h
+++ b/gnuradio-core/src/lib/general/gr_phase_modulator_fc.h
@@ -23,24 +23,25 @@
#ifndef INCLUDED_GR_PHASE_MODULATOR_FC_H
#define INCLUDED_GR_PHASE_MODULATOR_FC_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_phase_modulator_fc;
typedef boost::shared_ptr<gr_phase_modulator_fc> gr_phase_modulator_fc_sptr;
-gr_phase_modulator_fc_sptr gr_make_phase_modulator_fc (double sensitivity);
+GR_CORE_API gr_phase_modulator_fc_sptr gr_make_phase_modulator_fc (double sensitivity);
/*!
* \brief Phase modulator block
* \ingroup modulation_blk
* output=complex(cos(in*sensitivity),sin(in*sensitivity))
*/
-class gr_phase_modulator_fc : public gr_sync_block
+class GR_CORE_API gr_phase_modulator_fc : public gr_sync_block
{
double d_sensitivity;
double d_phase;
- friend gr_phase_modulator_fc_sptr
+ friend GR_CORE_API gr_phase_modulator_fc_sptr
gr_make_phase_modulator_fc (double sensitivity);
gr_phase_modulator_fc (double sensitivity);
diff --git a/gnuradio-core/src/lib/general/gr_pll_carriertracking_cc.h b/gnuradio-core/src/lib/general/gr_pll_carriertracking_cc.h
index bcdf543a4..db74bb101 100644
--- a/gnuradio-core/src/lib/general/gr_pll_carriertracking_cc.h
+++ b/gnuradio-core/src/lib/general/gr_pll_carriertracking_cc.h
@@ -23,13 +23,14 @@
#ifndef INCLUDED_GR_PLL_CARRIERTRACKING_CC_H
#define INCLUDED_GR_PLL_CARRIERTRACKING_CC_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <gri_control_loop.h>
class gr_pll_carriertracking_cc;
typedef boost::shared_ptr<gr_pll_carriertracking_cc> gr_pll_carriertracking_cc_sptr;
-gr_pll_carriertracking_cc_sptr gr_make_pll_carriertracking_cc (float loop_bw,
+GR_CORE_API gr_pll_carriertracking_cc_sptr gr_make_pll_carriertracking_cc (float loop_bw,
float max_freq,
float min_freq);
/*!
@@ -48,9 +49,9 @@ gr_pll_carriertracking_cc_sptr gr_make_pll_carriertracking_cc (float loop_bw,
* \sa gr_pll_freqdet_cf, gr_pll_carriertracking_cc
*/
-class gr_pll_carriertracking_cc : public gr_sync_block, public gri_control_loop
+class GR_CORE_API gr_pll_carriertracking_cc : public gr_sync_block, public gri_control_loop
{
- friend gr_pll_carriertracking_cc_sptr gr_make_pll_carriertracking_cc (float loop_bw,
+ friend GR_CORE_API gr_pll_carriertracking_cc_sptr gr_make_pll_carriertracking_cc (float loop_bw,
float max_freq,
float min_freq);
diff --git a/gnuradio-core/src/lib/general/gr_pll_freqdet_cf.h b/gnuradio-core/src/lib/general/gr_pll_freqdet_cf.h
index 0da9fc5c7..336f3fd31 100644
--- a/gnuradio-core/src/lib/general/gr_pll_freqdet_cf.h
+++ b/gnuradio-core/src/lib/general/gr_pll_freqdet_cf.h
@@ -23,13 +23,14 @@
#ifndef INCLUDED_GR_PLL_FREQDET_CF_H
#define INCLUDED_GR_PLL_FREQDET_CF_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <gri_control_loop.h>
class gr_pll_freqdet_cf;
typedef boost::shared_ptr<gr_pll_freqdet_cf> gr_pll_freqdet_cf_sptr;
-gr_pll_freqdet_cf_sptr gr_make_pll_freqdet_cf (float loop_bw,
+GR_CORE_API gr_pll_freqdet_cf_sptr gr_make_pll_freqdet_cf (float loop_bw,
float max_freq,
float min_freq);
/*!
@@ -47,9 +48,9 @@ gr_pll_freqdet_cf_sptr gr_make_pll_freqdet_cf (float loop_bw,
* \sa gr_pll_refout_cc, gr_pll_carriertracking_cc
*/
-class gr_pll_freqdet_cf : public gr_sync_block, public gri_control_loop
+class GR_CORE_API gr_pll_freqdet_cf : public gr_sync_block, public gri_control_loop
{
- friend gr_pll_freqdet_cf_sptr gr_make_pll_freqdet_cf (float loop_bw,
+ friend GR_CORE_API gr_pll_freqdet_cf_sptr gr_make_pll_freqdet_cf (float loop_bw,
float max_freq,
float min_freq);
diff --git a/gnuradio-core/src/lib/general/gr_pll_refout_cc.h b/gnuradio-core/src/lib/general/gr_pll_refout_cc.h
index d3e45882b..dcbeb1efa 100644
--- a/gnuradio-core/src/lib/general/gr_pll_refout_cc.h
+++ b/gnuradio-core/src/lib/general/gr_pll_refout_cc.h
@@ -23,13 +23,14 @@
#ifndef INCLUDED_GR_PLL_REFOUT_CC_H
#define INCLUDED_GR_PLL_REFOUT_CC_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <gri_control_loop.h>
class gr_pll_refout_cc;
typedef boost::shared_ptr<gr_pll_refout_cc> gr_pll_refout_cc_sptr;
-gr_pll_refout_cc_sptr gr_make_pll_refout_cc (float loop_bw,
+GR_CORE_API gr_pll_refout_cc_sptr gr_make_pll_refout_cc (float loop_bw,
float max_freq, float min_freq);
/*!
* \brief Implements a PLL which locks to the input frequency and outputs a carrier
@@ -46,9 +47,9 @@ gr_pll_refout_cc_sptr gr_make_pll_refout_cc (float loop_bw,
* around pi/200 -- 2pi/100.
* \sa gr_pll_freqdet_cf, gr_pll_carriertracking_cc
*/
-class gr_pll_refout_cc : public gr_sync_block, public gri_control_loop
+class GR_CORE_API gr_pll_refout_cc : public gr_sync_block, public gri_control_loop
{
- friend gr_pll_refout_cc_sptr gr_make_pll_refout_cc (float loop_bw,
+ friend GR_CORE_API gr_pll_refout_cc_sptr gr_make_pll_refout_cc (float loop_bw,
float max_freq, float min_freq);
gr_pll_refout_cc (float loop_bw, float max_freq, float min_freq);
diff --git a/gnuradio-core/src/lib/general/gr_pn_correlator_cc.h b/gnuradio-core/src/lib/general/gr_pn_correlator_cc.h
index 73bb7aa8c..75e2d1c7b 100644
--- a/gnuradio-core/src/lib/general/gr_pn_correlator_cc.h
+++ b/gnuradio-core/src/lib/general/gr_pn_correlator_cc.h
@@ -23,13 +23,14 @@
#ifndef INCLUDED_GR_PN_CORRELATOR_CC_H
#define INCLUDED_GR_PN_CORRELATOR_CC_H
+#include <gr_core_api.h>
#include <gr_sync_decimator.h>
#include <gri_glfsr.h>
class gr_pn_correlator_cc;
typedef boost::shared_ptr<gr_pn_correlator_cc> gr_pn_correlator_cc_sptr;
-gr_pn_correlator_cc_sptr
+GR_CORE_API gr_pn_correlator_cc_sptr
gr_make_pn_correlator_cc(int degree, int mask=0, int seed=1);
/*!
* \brief PN code sequential search correlator
@@ -39,9 +40,9 @@ gr_make_pn_correlator_cc(int degree, int mask=0, int seed=1);
* reference PN code, one sample per PN code period
*/
-class gr_pn_correlator_cc : public gr_sync_decimator
+class GR_CORE_API gr_pn_correlator_cc : public gr_sync_decimator
{
- friend gr_pn_correlator_cc_sptr gr_make_pn_correlator_cc(int degree, int mask, int seed);
+ friend GR_CORE_API gr_pn_correlator_cc_sptr gr_make_pn_correlator_cc(int degree, int mask, int seed);
int d_len;
float d_pn;
diff --git a/gnuradio-core/src/lib/general/gr_prefs.h b/gnuradio-core/src/lib/general/gr_prefs.h
index 4396d727c..8ceb5b465 100644
--- a/gnuradio-core/src/lib/general/gr_prefs.h
+++ b/gnuradio-core/src/lib/general/gr_prefs.h
@@ -22,6 +22,7 @@
#ifndef INCLUDED_GR_PREFS_H
#define INCLUDED_GR_PREFS_H
+#include <gr_core_api.h>
#include <string>
/*!
@@ -32,7 +33,7 @@
* via the magic of SWIG directors.
*/
-class gr_prefs
+class GR_CORE_API gr_prefs
{
public:
static gr_prefs *singleton();
diff --git a/gnuradio-core/src/lib/general/gr_probe_avg_mag_sqrd_c.h b/gnuradio-core/src/lib/general/gr_probe_avg_mag_sqrd_c.h
index ee8872010..e857686a8 100644
--- a/gnuradio-core/src/lib/general/gr_probe_avg_mag_sqrd_c.h
+++ b/gnuradio-core/src/lib/general/gr_probe_avg_mag_sqrd_c.h
@@ -22,13 +22,14 @@
#ifndef INCLUDED_GR_PROBE_AVG_MAG_SQRD_C_H
#define INCLUDED_GR_PROBE_AVG_MAG_SQRD_C_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <gr_single_pole_iir.h>
class gr_probe_avg_mag_sqrd_c;
typedef boost::shared_ptr<gr_probe_avg_mag_sqrd_c> gr_probe_avg_mag_sqrd_c_sptr;
-gr_probe_avg_mag_sqrd_c_sptr
+GR_CORE_API gr_probe_avg_mag_sqrd_c_sptr
gr_make_probe_avg_mag_sqrd_c (double threshold_db, double alpha = 0.0001);
/*!
@@ -41,14 +42,14 @@ gr_make_probe_avg_mag_sqrd_c (double threshold_db, double alpha = 0.0001);
* The level and indication as to whether the level exceeds threshold
* can be retrieved with the level and unmuted accessors.
*/
-class gr_probe_avg_mag_sqrd_c : public gr_sync_block
+class GR_CORE_API gr_probe_avg_mag_sqrd_c : public gr_sync_block
{
double d_threshold;
gr_single_pole_iir<double,double,double> d_iir;
bool d_unmuted;
double d_level;
- friend gr_probe_avg_mag_sqrd_c_sptr
+ friend GR_CORE_API gr_probe_avg_mag_sqrd_c_sptr
gr_make_probe_avg_mag_sqrd_c (double threshold_db, double alpha);
gr_probe_avg_mag_sqrd_c (double threshold_db, double alpha);
diff --git a/gnuradio-core/src/lib/general/gr_probe_avg_mag_sqrd_cf.h b/gnuradio-core/src/lib/general/gr_probe_avg_mag_sqrd_cf.h
index 6c536ca5b..a85afcf3b 100644
--- a/gnuradio-core/src/lib/general/gr_probe_avg_mag_sqrd_cf.h
+++ b/gnuradio-core/src/lib/general/gr_probe_avg_mag_sqrd_cf.h
@@ -22,13 +22,14 @@
#ifndef INCLUDED_GR_PROBE_AVG_MAG_SQRD_CF_H
#define INCLUDED_GR_PROBE_AVG_MAG_SQRD_CF_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <gr_single_pole_iir.h>
class gr_probe_avg_mag_sqrd_cf;
typedef boost::shared_ptr<gr_probe_avg_mag_sqrd_cf> gr_probe_avg_mag_sqrd_cf_sptr;
-gr_probe_avg_mag_sqrd_cf_sptr
+GR_CORE_API gr_probe_avg_mag_sqrd_cf_sptr
gr_make_probe_avg_mag_sqrd_cf (double threshold_db, double alpha = 0.0001);
/*!
@@ -43,14 +44,14 @@ gr_make_probe_avg_mag_sqrd_cf (double threshold_db, double alpha = 0.0001);
* can be retrieved with the level and unmuted accessors.
*
*/
-class gr_probe_avg_mag_sqrd_cf : public gr_sync_block
+class GR_CORE_API gr_probe_avg_mag_sqrd_cf : public gr_sync_block
{
double d_threshold;
gr_single_pole_iir<double,double,double> d_iir;
bool d_unmuted;
double d_level;
- friend gr_probe_avg_mag_sqrd_cf_sptr
+ friend GR_CORE_API gr_probe_avg_mag_sqrd_cf_sptr
gr_make_probe_avg_mag_sqrd_cf (double threshold_db, double alpha);
gr_probe_avg_mag_sqrd_cf (double threshold_db, double alpha);
diff --git a/gnuradio-core/src/lib/general/gr_probe_avg_mag_sqrd_f.h b/gnuradio-core/src/lib/general/gr_probe_avg_mag_sqrd_f.h
index b31e54f6b..4181ccf46 100644
--- a/gnuradio-core/src/lib/general/gr_probe_avg_mag_sqrd_f.h
+++ b/gnuradio-core/src/lib/general/gr_probe_avg_mag_sqrd_f.h
@@ -22,13 +22,14 @@
#ifndef INCLUDED_GR_PROBE_AVG_MAG_SQRD_F_H
#define INCLUDED_GR_PROBE_AVG_MAG_SQRD_F_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <gr_single_pole_iir.h>
class gr_probe_avg_mag_sqrd_f;
typedef boost::shared_ptr<gr_probe_avg_mag_sqrd_f> gr_probe_avg_mag_sqrd_f_sptr;
-gr_probe_avg_mag_sqrd_f_sptr
+GR_CORE_API gr_probe_avg_mag_sqrd_f_sptr
gr_make_probe_avg_mag_sqrd_f (double threshold_db, double alpha = 0.0001);
/*!
@@ -41,14 +42,14 @@ gr_make_probe_avg_mag_sqrd_f (double threshold_db, double alpha = 0.0001);
* The level and indication as to whether the level exceeds threshold
* can be retrieved with the level and unmuted accessors.
*/
-class gr_probe_avg_mag_sqrd_f : public gr_sync_block
+class GR_CORE_API gr_probe_avg_mag_sqrd_f : public gr_sync_block
{
double d_threshold;
gr_single_pole_iir<double,double,double> d_iir;
bool d_unmuted;
double d_level;
- friend gr_probe_avg_mag_sqrd_f_sptr
+ friend GR_CORE_API gr_probe_avg_mag_sqrd_f_sptr
gr_make_probe_avg_mag_sqrd_f (double threshold_db, double alpha);
gr_probe_avg_mag_sqrd_f (double threshold_db, double alpha);
diff --git a/gnuradio-core/src/lib/general/gr_probe_density_b.h b/gnuradio-core/src/lib/general/gr_probe_density_b.h
index 92b98d193..0af30c665 100644
--- a/gnuradio-core/src/lib/general/gr_probe_density_b.h
+++ b/gnuradio-core/src/lib/general/gr_probe_density_b.h
@@ -20,13 +20,14 @@
#ifndef INCLUDED_GR_PROBE_DENSITY_B_H
#define INCLUDED_GR_PROBE_DENSITY_B_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_probe_density_b;
typedef boost::shared_ptr<gr_probe_density_b> gr_probe_density_b_sptr;
-gr_probe_density_b_sptr gr_make_probe_density_b(double alpha);
+GR_CORE_API gr_probe_density_b_sptr gr_make_probe_density_b(double alpha);
/*!
* This block maintains a running average of the input stream and
@@ -40,10 +41,10 @@ gr_probe_density_b_sptr gr_make_probe_density_b(double alpha);
*
*/
-class gr_probe_density_b : public gr_sync_block
+class GR_CORE_API gr_probe_density_b : public gr_sync_block
{
private:
- friend gr_probe_density_b_sptr gr_make_probe_density_b(double alpha);
+ friend GR_CORE_API gr_probe_density_b_sptr gr_make_probe_density_b(double alpha);
double d_alpha;
double d_beta;
diff --git a/gnuradio-core/src/lib/general/gr_probe_mpsk_snr_c.h b/gnuradio-core/src/lib/general/gr_probe_mpsk_snr_c.h
index 279a4a5b8..870e46701 100644
--- a/gnuradio-core/src/lib/general/gr_probe_mpsk_snr_c.h
+++ b/gnuradio-core/src/lib/general/gr_probe_mpsk_snr_c.h
@@ -22,12 +22,13 @@
#ifndef INCLUDED_GR_PROBE_MPSK_SNR_C_H
#define INCLUDED_GR_PROBE_MPSK_SNR_C_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_probe_mpsk_snr_c;
typedef boost::shared_ptr<gr_probe_mpsk_snr_c> gr_probe_mpsk_snr_c_sptr;
-gr_probe_mpsk_snr_c_sptr
+GR_CORE_API gr_probe_mpsk_snr_c_sptr
gr_make_probe_mpsk_snr_c(double alpha = 0.0001);
/*!
@@ -46,7 +47,7 @@ gr_make_probe_mpsk_snr_c(double alpha = 0.0001);
* This SNR estimator is inaccurate below about 7dB SNR.
*
*/
-class gr_probe_mpsk_snr_c : public gr_sync_block
+class GR_CORE_API gr_probe_mpsk_snr_c : public gr_sync_block
{
double d_alpha;
double d_beta;
@@ -54,7 +55,7 @@ class gr_probe_mpsk_snr_c : public gr_sync_block
double d_noise_variance;
// Factory function returning shared pointer of this class
- friend gr_probe_mpsk_snr_c_sptr
+ friend GR_CORE_API gr_probe_mpsk_snr_c_sptr
gr_make_probe_mpsk_snr_c(double alpha);
// Private constructor
diff --git a/gnuradio-core/src/lib/general/gr_probe_signal_f.h b/gnuradio-core/src/lib/general/gr_probe_signal_f.h
index 9605bb685..b99c76976 100644
--- a/gnuradio-core/src/lib/general/gr_probe_signal_f.h
+++ b/gnuradio-core/src/lib/general/gr_probe_signal_f.h
@@ -22,23 +22,24 @@
#ifndef INCLUDED_GR_PROBE_SIGNAL_F_H
#define INCLUDED_GR_PROBE_SIGNAL_F_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_probe_signal_f;
typedef boost::shared_ptr<gr_probe_signal_f> gr_probe_signal_f_sptr;
-gr_probe_signal_f_sptr
+GR_CORE_API gr_probe_signal_f_sptr
gr_make_probe_signal_f ();
/*!
* \brief Sink that allows a sample to be grabbed from Python.
* \ingroup sink_blk
*/
-class gr_probe_signal_f : public gr_sync_block
+class GR_CORE_API gr_probe_signal_f : public gr_sync_block
{
float d_level;
- friend gr_probe_signal_f_sptr
+ friend GR_CORE_API gr_probe_signal_f_sptr
gr_make_probe_signal_f();
gr_probe_signal_f();
diff --git a/gnuradio-core/src/lib/general/gr_pwr_squelch_cc.h b/gnuradio-core/src/lib/general/gr_pwr_squelch_cc.h
index 9c519f383..2a008d92d 100644
--- a/gnuradio-core/src/lib/general/gr_pwr_squelch_cc.h
+++ b/gnuradio-core/src/lib/general/gr_pwr_squelch_cc.h
@@ -23,6 +23,7 @@
#ifndef INCLUDED_GR_PWR_SQUELCH_CC_H
#define INCLUDED_GR_PWR_SQUELCH_CC_H
+#include <gr_core_api.h>
#include <cmath>
#include <gr_squelch_base_cc.h>
#include <gr_single_pole_iir.h>
@@ -30,21 +31,21 @@
class gr_pwr_squelch_cc;
typedef boost::shared_ptr<gr_pwr_squelch_cc> gr_pwr_squelch_cc_sptr;
-gr_pwr_squelch_cc_sptr
+GR_CORE_API gr_pwr_squelch_cc_sptr
gr_make_pwr_squelch_cc(double db, double alpha = 0.0001, int ramp=0, bool gate=false);
/*!
* \brief gate or zero output when input power below threshold
* \ingroup level_blk
*/
-class gr_pwr_squelch_cc : public gr_squelch_base_cc
+class GR_CORE_API gr_pwr_squelch_cc : public gr_squelch_base_cc
{
private:
double d_threshold;
double d_pwr;
gr_single_pole_iir<double,double,double> d_iir;
- friend gr_pwr_squelch_cc_sptr gr_make_pwr_squelch_cc(double db, double alpha, int ramp, bool gate);
+ friend GR_CORE_API gr_pwr_squelch_cc_sptr gr_make_pwr_squelch_cc(double db, double alpha, int ramp, bool gate);
gr_pwr_squelch_cc(double db, double alpha, int ramp, bool gate);
protected:
diff --git a/gnuradio-core/src/lib/general/gr_pwr_squelch_ff.h b/gnuradio-core/src/lib/general/gr_pwr_squelch_ff.h
index 6952dbce2..27a7306b3 100644
--- a/gnuradio-core/src/lib/general/gr_pwr_squelch_ff.h
+++ b/gnuradio-core/src/lib/general/gr_pwr_squelch_ff.h
@@ -23,6 +23,7 @@
#ifndef INCLUDED_GR_PWR_SQUELCH_FF_H
#define INCLUDED_GR_PWR_SQUELCH_FF_H
+#include <gr_core_api.h>
#include <cmath>
#include <gr_squelch_base_ff.h>
#include <gr_single_pole_iir.h>
@@ -30,21 +31,21 @@
class gr_pwr_squelch_ff;
typedef boost::shared_ptr<gr_pwr_squelch_ff> gr_pwr_squelch_ff_sptr;
-gr_pwr_squelch_ff_sptr
+GR_CORE_API gr_pwr_squelch_ff_sptr
gr_make_pwr_squelch_ff(double db, double alpha = 0.0001, int ramp=0, bool gate=false);
/*!
* \brief gate or zero output when input power below threshold
* \ingroup level_blk
*/
-class gr_pwr_squelch_ff : public gr_squelch_base_ff
+class GR_CORE_API gr_pwr_squelch_ff : public gr_squelch_base_ff
{
private:
double d_threshold;
double d_pwr;
gr_single_pole_iir<double,double,double> d_iir;
- friend gr_pwr_squelch_ff_sptr gr_make_pwr_squelch_ff(double db, double alpha, int ramp, bool gate);
+ friend GR_CORE_API gr_pwr_squelch_ff_sptr gr_make_pwr_squelch_ff(double db, double alpha, int ramp, bool gate);
gr_pwr_squelch_ff(double db, double alpha, int ramp, bool gate);
protected:
diff --git a/gnuradio-core/src/lib/general/gr_quadrature_demod_cf.h b/gnuradio-core/src/lib/general/gr_quadrature_demod_cf.h
index df6de93d5..755f2839a 100644
--- a/gnuradio-core/src/lib/general/gr_quadrature_demod_cf.h
+++ b/gnuradio-core/src/lib/general/gr_quadrature_demod_cf.h
@@ -23,11 +23,12 @@
#ifndef INCLUDED_GR_QUADRATURE_DEMOD_CF_H
#define INCLUDED_GR_QUADRATURE_DEMOD_CF_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_quadrature_demod_cf;
typedef boost::shared_ptr<gr_quadrature_demod_cf> gr_quadrature_demod_cf_sptr;
-gr_quadrature_demod_cf_sptr gr_make_quadrature_demod_cf (float gain);
+GR_CORE_API gr_quadrature_demod_cf_sptr gr_make_quadrature_demod_cf (float gain);
/*!
* \brief quadrature demodulator: complex in, float out
@@ -36,9 +37,9 @@ gr_quadrature_demod_cf_sptr gr_make_quadrature_demod_cf (float gain);
* This can be used to demod FM, FSK, GMSK, etc.
* The input is complex baseband.
*/
-class gr_quadrature_demod_cf : public gr_sync_block
+class GR_CORE_API gr_quadrature_demod_cf : public gr_sync_block
{
- friend gr_quadrature_demod_cf_sptr gr_make_quadrature_demod_cf (float gain);
+ friend GR_CORE_API gr_quadrature_demod_cf_sptr gr_make_quadrature_demod_cf (float gain);
gr_quadrature_demod_cf (float gain);
float d_gain;
diff --git a/gnuradio-core/src/lib/general/gr_rail_ff.h b/gnuradio-core/src/lib/general/gr_rail_ff.h
index d9e19a964..225bdf36e 100644
--- a/gnuradio-core/src/lib/general/gr_rail_ff.h
+++ b/gnuradio-core/src/lib/general/gr_rail_ff.h
@@ -23,6 +23,7 @@
#ifndef INCLUDED_GR_RAIL_FF_H_
# define INCLUDED_GR_RAIL_FF_H_
+#include <gr_core_api.h>
#include <gr_sync_block.h>
/*!
@@ -33,11 +34,11 @@
class gr_rail_ff;
typedef boost::shared_ptr<gr_rail_ff> gr_rail_ff_sptr;
-gr_rail_ff_sptr gr_make_rail_ff(float lo, float hi);
+GR_CORE_API gr_rail_ff_sptr gr_make_rail_ff(float lo, float hi);
-class gr_rail_ff : public gr_sync_block
+class GR_CORE_API gr_rail_ff : public gr_sync_block
{
- friend gr_rail_ff_sptr gr_make_rail_ff (float lo, float hi);
+ friend GR_CORE_API gr_rail_ff_sptr gr_make_rail_ff (float lo, float hi);
float d_lo, d_hi; // the constant
gr_rail_ff(float lo, float hi);
diff --git a/gnuradio-core/src/lib/general/gr_random.h b/gnuradio-core/src/lib/general/gr_random.h
index e5002fd33..13dbbfb04 100644
--- a/gnuradio-core/src/lib/general/gr_random.h
+++ b/gnuradio-core/src/lib/general/gr_random.h
@@ -23,13 +23,14 @@
#ifndef INCLUDED_GR_RANDOM_H
#define INCLUDED_GR_RANDOM_H
+#include <gr_core_api.h>
#include <gr_complex.h>
/*!
* \brief pseudo random number generator
* \ingroup math_blk
*/
-class gr_random {
+class GR_CORE_API gr_random {
protected:
static const int NTAB = 32;
long d_seed;
diff --git a/gnuradio-core/src/lib/general/gr_regenerate_bb.h b/gnuradio-core/src/lib/general/gr_regenerate_bb.h
index db511b228..67cfedac7 100644
--- a/gnuradio-core/src/lib/general/gr_regenerate_bb.h
+++ b/gnuradio-core/src/lib/general/gr_regenerate_bb.h
@@ -23,12 +23,13 @@
#ifndef INCLUDED_GR_REGENERATE_BB_H
#define INCLUDED_GR_REGENERATE_BB_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_regenerate_bb;
typedef boost::shared_ptr<gr_regenerate_bb> gr_regenerate_bb_sptr;
-gr_regenerate_bb_sptr gr_make_regenerate_bb (int period, unsigned int max_regen=500);
+GR_CORE_API gr_regenerate_bb_sptr gr_make_regenerate_bb (int period, unsigned int max_regen=500);
/*!
* \brief Detect the peak of a signal and repeat every period samples
@@ -40,7 +41,7 @@ gr_regenerate_bb_sptr gr_make_regenerate_bb (int period, unsigned int max_regen=
*
* Note that if max_regen=(-1)/ULONG_MAX then the regeneration will run forever.
*/
-class gr_regenerate_bb : public gr_sync_block
+class GR_CORE_API gr_regenerate_bb : public gr_sync_block
{
/*!
* \brief Make a regenerate block
@@ -48,7 +49,7 @@ class gr_regenerate_bb : public gr_sync_block
* \param max_regen The maximum number of regenerations to perform; if set to
* ULONG_MAX, it will regenerate continuously.
*/
- friend gr_regenerate_bb_sptr gr_make_regenerate_bb (int period, unsigned int max_regen);
+ friend GR_CORE_API gr_regenerate_bb_sptr gr_make_regenerate_bb (int period, unsigned int max_regen);
gr_regenerate_bb (int period, unsigned int max_regen);
diff --git a/gnuradio-core/src/lib/general/gr_remez.h b/gnuradio-core/src/lib/general/gr_remez.h
index 85e1516a5..f7b8a72a3 100644
--- a/gnuradio-core/src/lib/general/gr_remez.h
+++ b/gnuradio-core/src/lib/general/gr_remez.h
@@ -23,6 +23,7 @@
#ifndef INCLUDED_GR_REMEZ_H
#define INCLUDED_GR_REMEZ_H
+#include <gr_core_api.h>
#include <gr_types.h>
#include <string>
#include <stdexcept>
@@ -51,7 +52,7 @@
* \throws std::runtime_error if args are invalid or calculation fails to converge.
*/
-std::vector<double>
+GR_CORE_API std::vector<double>
gr_remez (int order,
const std::vector<double> &bands,
const std::vector<double> &ampl,
diff --git a/gnuradio-core/src/lib/general/gr_repeat.h b/gnuradio-core/src/lib/general/gr_repeat.h
index f323fc375..b90f2f51d 100644
--- a/gnuradio-core/src/lib/general/gr_repeat.h
+++ b/gnuradio-core/src/lib/general/gr_repeat.h
@@ -22,23 +22,24 @@
#ifndef INCLUDED_GR_REPEAT_H
#define INCLUDED_GR_REPEAT_H
+#include <gr_core_api.h>
#include <gr_sync_interpolator.h>
class gr_repeat;
typedef boost::shared_ptr<gr_repeat> gr_repeat_sptr;
-gr_repeat_sptr gr_make_repeat(size_t itemsize, int interp);
+GR_CORE_API gr_repeat_sptr gr_make_repeat(size_t itemsize, int interp);
/*!
* \brief Repeat a sample 'interp' times in output stream
* \ingroup misc_blk
*/
-class gr_repeat : public gr_sync_interpolator
+class GR_CORE_API gr_repeat : public gr_sync_interpolator
{
private:
- friend gr_repeat_sptr gr_make_repeat(size_t itemsize, int interp);
+ friend GR_CORE_API gr_repeat_sptr gr_make_repeat(size_t itemsize, int interp);
gr_repeat(size_t itemsize, int interp);
diff --git a/gnuradio-core/src/lib/general/gr_reverse.h b/gnuradio-core/src/lib/general/gr_reverse.h
index d79d34e91..43d84fda7 100644
--- a/gnuradio-core/src/lib/general/gr_reverse.h
+++ b/gnuradio-core/src/lib/general/gr_reverse.h
@@ -22,6 +22,7 @@
#ifndef INCLUDED_GR_REVERSE_H
#define INCLUDED_GR_REVERSE_H
+#include <gr_core_api.h>
#include <vector>
#include <gr_complex.h>
diff --git a/gnuradio-core/src/lib/general/gr_rms_cf.h b/gnuradio-core/src/lib/general/gr_rms_cf.h
index 86c4bdbac..f1bd9802c 100644
--- a/gnuradio-core/src/lib/general/gr_rms_cf.h
+++ b/gnuradio-core/src/lib/general/gr_rms_cf.h
@@ -22,25 +22,26 @@
#ifndef INCLUDED_GR_RMS_CF_H
#define INCLUDED_GR_RMS_CF_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <gr_single_pole_iir.h>
class gr_rms_cf;
typedef boost::shared_ptr<gr_rms_cf> gr_rms_cf_sptr;
-gr_rms_cf_sptr
+GR_CORE_API gr_rms_cf_sptr
gr_make_rms_cf (double alpha = 0.0001);
/*!
* \brief RMS average power
* \ingroup math_blk
*/
-class gr_rms_cf : public gr_sync_block
+class GR_CORE_API gr_rms_cf : public gr_sync_block
{
gr_single_pole_iir<double,double,double> d_iir;
bool d_unmuted;
- friend gr_rms_cf_sptr
+ friend GR_CORE_API gr_rms_cf_sptr
gr_make_rms_cf (double alpha);
gr_rms_cf (double alpha);
diff --git a/gnuradio-core/src/lib/general/gr_rms_ff.h b/gnuradio-core/src/lib/general/gr_rms_ff.h
index ed1635eb1..0bbd53b70 100644
--- a/gnuradio-core/src/lib/general/gr_rms_ff.h
+++ b/gnuradio-core/src/lib/general/gr_rms_ff.h
@@ -22,25 +22,26 @@
#ifndef INCLUDED_GR_RMS_FF_H
#define INCLUDED_GR_RMS_FF_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <gr_single_pole_iir.h>
class gr_rms_ff;
typedef boost::shared_ptr<gr_rms_ff> gr_rms_ff_sptr;
-gr_rms_ff_sptr
+GR_CORE_API gr_rms_ff_sptr
gr_make_rms_ff (double alpha = 0.0001);
/*!
* \brief RMS average power
* \ingroup math_blk
*/
-class gr_rms_ff : public gr_sync_block
+class GR_CORE_API gr_rms_ff : public gr_sync_block
{
gr_single_pole_iir<double,double,double> d_iir;
bool d_unmuted;
- friend gr_rms_ff_sptr
+ friend GR_CORE_API gr_rms_ff_sptr
gr_make_rms_ff (double alpha);
gr_rms_ff (double alpha);
diff --git a/gnuradio-core/src/lib/general/gr_scrambler_bb.h b/gnuradio-core/src/lib/general/gr_scrambler_bb.h
index 7efe8b598..79905933d 100644
--- a/gnuradio-core/src/lib/general/gr_scrambler_bb.h
+++ b/gnuradio-core/src/lib/general/gr_scrambler_bb.h
@@ -22,13 +22,14 @@
#ifndef INCLUDED_GR_SCRAMBLER_BB_H
#define INCLUDED_GR_SCRAMBLER_BB_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include "gri_lfsr.h"
class gr_scrambler_bb;
typedef boost::shared_ptr<gr_scrambler_bb> gr_scrambler_bb_sptr;
-gr_scrambler_bb_sptr gr_make_scrambler_bb(int mask, int seed, int len);
+GR_CORE_API gr_scrambler_bb_sptr gr_make_scrambler_bb(int mask, int seed, int len);
/*!
* Scramble an input stream using an LFSR. This block works on the LSB only
@@ -42,9 +43,9 @@ gr_scrambler_bb_sptr gr_make_scrambler_bb(int mask, int seed, int len);
* \ingroup coding_blk
*/
-class gr_scrambler_bb : public gr_sync_block
+class GR_CORE_API gr_scrambler_bb : public gr_sync_block
{
- friend gr_scrambler_bb_sptr gr_make_scrambler_bb(int mask, int seed, int len);
+ friend GR_CORE_API gr_scrambler_bb_sptr gr_make_scrambler_bb(int mask, int seed, int len);
gri_lfsr d_lfsr;
diff --git a/gnuradio-core/src/lib/general/gr_short_to_float.h b/gnuradio-core/src/lib/general/gr_short_to_float.h
index ccb19d9f2..b40c966ea 100644
--- a/gnuradio-core/src/lib/general/gr_short_to_float.h
+++ b/gnuradio-core/src/lib/general/gr_short_to_float.h
@@ -23,12 +23,13 @@
#ifndef INCLUDED_GR_SHORT_TO_FLOAT_H
#define INCLUDED_GR_SHORT_TO_FLOAT_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_short_to_float;
typedef boost::shared_ptr<gr_short_to_float> gr_short_to_float_sptr;
-gr_short_to_float_sptr
+GR_CORE_API gr_short_to_float_sptr
gr_make_short_to_float ();
/*!
@@ -36,9 +37,9 @@ gr_make_short_to_float ();
* \ingroup converter_blk
*/
-class gr_short_to_float : public gr_sync_block
+class GR_CORE_API gr_short_to_float : public gr_sync_block
{
- friend gr_short_to_float_sptr gr_make_short_to_float ();
+ friend GR_CORE_API gr_short_to_float_sptr gr_make_short_to_float ();
gr_short_to_float ();
public:
diff --git a/gnuradio-core/src/lib/general/gr_simple_correlator.cc b/gnuradio-core/src/lib/general/gr_simple_correlator.cc
index 01c007122..bdfa73ef3 100644
--- a/gnuradio-core/src/lib/general/gr_simple_correlator.cc
+++ b/gnuradio-core/src/lib/general/gr_simple_correlator.cc
@@ -50,6 +50,7 @@ gr_simple_correlator::gr_simple_correlator (int payload_bytesize)
d_state (ST_LOOKING), d_osi (0),
d_bblen ((payload_bytesize + GRSF_PAYLOAD_OVERHEAD) * GRSF_BITS_PER_BYTE),
d_bitbuf (new unsigned char [d_bblen]),
+ d_pktbuf (new unsigned char [d_bblen/GRSF_BITS_PER_BYTE]),
d_bbi (0)
{
d_avbi = 0;
@@ -71,6 +72,7 @@ gr_simple_correlator::~gr_simple_correlator ()
fclose(d_debug_fp);
#endif
delete [] d_bitbuf;
+ delete [] d_pktbuf;
}
@@ -184,10 +186,9 @@ gr_simple_correlator::general_work (int noutput_items,
d_bbi++;
if (d_bbi >= d_bblen){
// printf ("got whole packet\n");
- unsigned char pktbuf[d_bblen/GRSF_BITS_PER_BYTE];
- packit (pktbuf, d_bitbuf, d_bbi);
- printf ("seqno %3d\n", pktbuf[0]);
- memcpy (out, &pktbuf[GRSF_PAYLOAD_OVERHEAD], d_payload_bytesize);
+ packit (d_pktbuf, d_bitbuf, d_bbi);
+ printf ("seqno %3d\n", d_pktbuf[0]);
+ memcpy (out, &d_pktbuf[GRSF_PAYLOAD_OVERHEAD], d_payload_bytesize);
enter_looking ();
consume_each (n + 1);
return d_payload_bytesize;
diff --git a/gnuradio-core/src/lib/general/gr_simple_correlator.h b/gnuradio-core/src/lib/general/gr_simple_correlator.h
index b21d38a04..4c5f060cd 100644
--- a/gnuradio-core/src/lib/general/gr_simple_correlator.h
+++ b/gnuradio-core/src/lib/general/gr_simple_correlator.h
@@ -23,6 +23,7 @@
#ifndef INCLUDED_GR_SIMPLE_CORRELATOR_H
#define INCLUDED_GR_SIMPLE_CORRELATOR_H
+#include <gr_core_api.h>
#include <gr_block.h>
#include <assert.h>
@@ -31,13 +32,13 @@
class gr_simple_correlator;
typedef boost::shared_ptr<gr_simple_correlator> gr_simple_correlator_sptr;
-gr_simple_correlator_sptr gr_make_simple_correlator (int payload_bytesize);
+GR_CORE_API gr_simple_correlator_sptr gr_make_simple_correlator (int payload_bytesize);
/*!
* \brief inverse of gr_simple_framer (more or less)
* \ingroup sync_blk
*/
-class gr_simple_correlator : public gr_block
+class GR_CORE_API gr_simple_correlator : public gr_block
{
static const int OVERSAMPLE = 8;
enum state_t { ST_LOOKING, ST_UNDER_THRESHOLD, ST_LOCKED };
@@ -50,6 +51,7 @@ class gr_simple_correlator : public gr_block
unsigned long long int d_shift_reg[OVERSAMPLE];
int d_bblen; // length of bitbuf
unsigned char *d_bitbuf; // demodulated bits
+ unsigned char *d_pktbuf; // temp packet buf
int d_bbi; // bitbuf index
static const int AVG_PERIOD = 512; // must be power of 2 (for freq offset correction)
@@ -62,7 +64,7 @@ class gr_simple_correlator : public gr_block
FILE *d_debug_fp; // binary log file
#endif
- friend gr_simple_correlator_sptr gr_make_simple_correlator (int payload_bytesize);
+ friend GR_CORE_API gr_simple_correlator_sptr gr_make_simple_correlator (int payload_bytesize);
gr_simple_correlator (int payload_bytesize);
diff --git a/gnuradio-core/src/lib/general/gr_simple_framer.h b/gnuradio-core/src/lib/general/gr_simple_framer.h
index d930da33b..15f392e4a 100644
--- a/gnuradio-core/src/lib/general/gr_simple_framer.h
+++ b/gnuradio-core/src/lib/general/gr_simple_framer.h
@@ -23,25 +23,26 @@
#ifndef INCLUDED_GR_SIMPLE_FRAMER_H
#define INCLUDED_GR_SIMPLE_FRAMER_H
+#include <gr_core_api.h>
#include <gr_block.h>
class gr_simple_framer;
typedef boost::shared_ptr<gr_simple_framer> gr_simple_framer_sptr;
-gr_simple_framer_sptr gr_make_simple_framer (int payload_bytesize);
+GR_CORE_API gr_simple_framer_sptr gr_make_simple_framer (int payload_bytesize);
/*!
* \brief add sync field, seq number and command field to payload
* \ingroup sync_blk
*/
-class gr_simple_framer : public gr_block
+class GR_CORE_API gr_simple_framer : public gr_block
{
int d_seqno;
int d_payload_bytesize;
int d_input_block_size; // bytes
int d_output_block_size; // bytes
- friend gr_simple_framer_sptr gr_make_simple_framer (int payload_bytesize);
+ friend GR_CORE_API gr_simple_framer_sptr gr_make_simple_framer (int payload_bytesize);
gr_simple_framer (int payload_bytesize);
public:
diff --git a/gnuradio-core/src/lib/general/gr_simple_squelch_cc.h b/gnuradio-core/src/lib/general/gr_simple_squelch_cc.h
index 30744f6fb..590b86de8 100644
--- a/gnuradio-core/src/lib/general/gr_simple_squelch_cc.h
+++ b/gnuradio-core/src/lib/general/gr_simple_squelch_cc.h
@@ -22,26 +22,27 @@
#ifndef INCLUDED_GR_SIMPLE_SQUELCH_CC_H
#define INCLUDED_GR_SIMPLE_SQUELCH_CC_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <gr_single_pole_iir.h>
class gr_simple_squelch_cc;
typedef boost::shared_ptr<gr_simple_squelch_cc> gr_simple_squelch_cc_sptr;
-gr_simple_squelch_cc_sptr
+GR_CORE_API gr_simple_squelch_cc_sptr
gr_make_simple_squelch_cc (double threshold_db, double alpha = 0.0001);
/*!
* \brief simple squelch block based on average signal power and threshold in dB.
* \ingroup level_blk
*/
-class gr_simple_squelch_cc : public gr_sync_block
+class GR_CORE_API gr_simple_squelch_cc : public gr_sync_block
{
double d_threshold;
gr_single_pole_iir<double,double,double> d_iir;
bool d_unmuted;
- friend gr_simple_squelch_cc_sptr
+ friend GR_CORE_API gr_simple_squelch_cc_sptr
gr_make_simple_squelch_cc (double threshold_db, double alpha);
gr_simple_squelch_cc (double threshold_db, double alpha);
diff --git a/gnuradio-core/src/lib/general/gr_skiphead.h b/gnuradio-core/src/lib/general/gr_skiphead.h
index 933c126e3..2beaaeab0 100644
--- a/gnuradio-core/src/lib/general/gr_skiphead.h
+++ b/gnuradio-core/src/lib/general/gr_skiphead.h
@@ -23,12 +23,16 @@
#ifndef INCLUDED_GR_SKIPHEAD_H
#define INCLUDED_GR_SKIPHEAD_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <stddef.h> // size_t
class gr_skiphead;
typedef boost::shared_ptr<gr_skiphead> gr_skiphead_sptr;
+GR_CORE_API gr_skiphead_sptr
+gr_make_skiphead (size_t itemsize, uint64_t nitems_to_skip);
+
/*!
* \brief skips the first N items, from then on copies items to the output
@@ -37,9 +41,9 @@ typedef boost::shared_ptr<gr_skiphead> gr_skiphead_sptr;
* Useful for building test cases and sources which have metadata or junk at the start
*/
-class gr_skiphead : public gr_block
+class GR_CORE_API gr_skiphead : public gr_block
{
- friend gr_skiphead_sptr gr_make_skiphead (size_t itemsize, uint64_t nitems_to_skip);
+ friend GR_CORE_API gr_skiphead_sptr gr_make_skiphead (size_t itemsize, uint64_t nitems_to_skip);
gr_skiphead (size_t itemsize, uint64_t nitems_to_skip);
uint64_t d_nitems_to_skip;
@@ -53,8 +57,4 @@ class gr_skiphead : public gr_block
gr_vector_void_star &output_items);
};
-gr_skiphead_sptr
-gr_make_skiphead (size_t itemsize, uint64_t nitems_to_skip);
-
-
#endif /* INCLUDED_GR_SKIPHEAD_H */
diff --git a/gnuradio-core/src/lib/general/gr_squash_ff.h b/gnuradio-core/src/lib/general/gr_squash_ff.h
index ee3426cae..f7fea1648 100644
--- a/gnuradio-core/src/lib/general/gr_squash_ff.h
+++ b/gnuradio-core/src/lib/general/gr_squash_ff.h
@@ -23,6 +23,7 @@
#ifndef INCLUDED_GR_SQUASH_FF_H_
# define INCLUDED_GR_SQUASH_FF_H_
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <gsl/gsl_errno.h>
#include <gsl/gsl_interp.h>
@@ -36,12 +37,12 @@
class gr_squash_ff;
typedef boost::shared_ptr<gr_squash_ff> gr_squash_ff_sptr;
-gr_squash_ff_sptr gr_make_squash_ff(const std::vector<float> &igrid,
+GR_CORE_API gr_squash_ff_sptr gr_make_squash_ff(const std::vector<float> &igrid,
const std::vector<float> &ogrid);
-class gr_squash_ff : public gr_sync_block
+class GR_CORE_API gr_squash_ff : public gr_sync_block
{
- friend gr_squash_ff_sptr gr_make_squash_ff(const std::vector<float> &igrid,
+ friend GR_CORE_API gr_squash_ff_sptr gr_make_squash_ff(const std::vector<float> &igrid,
const std::vector<float> &ogrid);
size_t d_inum;
diff --git a/gnuradio-core/src/lib/general/gr_squelch_base_cc.h b/gnuradio-core/src/lib/general/gr_squelch_base_cc.h
index 51e2e14e5..7c15e0121 100644
--- a/gnuradio-core/src/lib/general/gr_squelch_base_cc.h
+++ b/gnuradio-core/src/lib/general/gr_squelch_base_cc.h
@@ -23,9 +23,10 @@
#ifndef INCLUDED_GR_SQUELCH_BASE_CC_H
#define INCLUDED_GR_SQUELCH_BASE_CC_H
+#include <gr_core_api.h>
#include <gr_block.h>
-class gr_squelch_base_cc : public gr_block
+class GR_CORE_API gr_squelch_base_cc : public gr_block
{
private:
int d_ramp;
diff --git a/gnuradio-core/src/lib/general/gr_squelch_base_ff.h b/gnuradio-core/src/lib/general/gr_squelch_base_ff.h
index 2ca108c75..92a064e63 100644
--- a/gnuradio-core/src/lib/general/gr_squelch_base_ff.h
+++ b/gnuradio-core/src/lib/general/gr_squelch_base_ff.h
@@ -23,9 +23,10 @@
#ifndef INCLUDED_GR_SQUELCH_BASE_FF_H
#define INCLUDED_GR_SQUELCH_BASE_FF_H
+#include <gr_core_api.h>
#include <gr_block.h>
-class gr_squelch_base_ff : public gr_block
+class GR_CORE_API gr_squelch_base_ff : public gr_block
{
private:
int d_ramp;
diff --git a/gnuradio-core/src/lib/general/gr_stream_mux.h b/gnuradio-core/src/lib/general/gr_stream_mux.h
index 29829339e..68415ab1d 100644
--- a/gnuradio-core/src/lib/general/gr_stream_mux.h
+++ b/gnuradio-core/src/lib/general/gr_stream_mux.h
@@ -24,6 +24,7 @@
#define INCLUDED_GR_STREAM_MUX_H
+#include <gr_core_api.h>
#include <gr_block.h>
#include <vector>
@@ -45,7 +46,7 @@ typedef boost::shared_ptr<gr_stream_mux> gr_stream_mux_sptr;
-gr_stream_mux_sptr
+GR_CORE_API gr_stream_mux_sptr
gr_make_stream_mux (size_t itemsize, const std::vector<int> &lengths);
@@ -60,9 +61,9 @@ gr_make_stream_mux (size_t itemsize, const std::vector<int> &lengths);
* [N0, N1, N2, ..., Nm, N0, N1, ...]
*/
-class gr_stream_mux : public gr_block
+class GR_CORE_API gr_stream_mux : public gr_block
{
- friend gr_stream_mux_sptr
+ friend GR_CORE_API gr_stream_mux_sptr
gr_make_stream_mux (size_t itemsize, const std::vector<int> &lengths);
protected:
diff --git a/gnuradio-core/src/lib/general/gr_stream_to_streams.h b/gnuradio-core/src/lib/general/gr_stream_to_streams.h
index 2fdd39e4a..905d3c556 100644
--- a/gnuradio-core/src/lib/general/gr_stream_to_streams.h
+++ b/gnuradio-core/src/lib/general/gr_stream_to_streams.h
@@ -22,12 +22,13 @@
#ifndef INCLUDED_GR_STREAM_TO_STREAMS_H
#define INCLUDED_GR_STREAM_TO_STREAMS_H
+#include <gr_core_api.h>
#include <gr_sync_decimator.h>
class gr_stream_to_streams;
typedef boost::shared_ptr<gr_stream_to_streams> gr_stream_to_streams_sptr;
-gr_stream_to_streams_sptr
+GR_CORE_API gr_stream_to_streams_sptr
gr_make_stream_to_streams (size_t item_size, size_t nstreams);
@@ -38,9 +39,9 @@ gr_make_stream_to_streams (size_t item_size, size_t nstreams);
* Converts a stream of N items into N streams of 1 item.
* Repeat ad infinitum.
*/
-class gr_stream_to_streams : public gr_sync_decimator
+class GR_CORE_API gr_stream_to_streams : public gr_sync_decimator
{
- friend gr_stream_to_streams_sptr
+ friend GR_CORE_API gr_stream_to_streams_sptr
gr_make_stream_to_streams (size_t item_size, size_t nstreams);
protected:
diff --git a/gnuradio-core/src/lib/general/gr_stream_to_vector.h b/gnuradio-core/src/lib/general/gr_stream_to_vector.h
index 2cb03f6a8..77272b96b 100644
--- a/gnuradio-core/src/lib/general/gr_stream_to_vector.h
+++ b/gnuradio-core/src/lib/general/gr_stream_to_vector.h
@@ -23,12 +23,13 @@
#ifndef INCLUDED_GR_STREAM_TO_VECTOR_H
#define INCLUDED_GR_STREAM_TO_VECTOR_H
+#include <gr_core_api.h>
#include <gr_sync_decimator.h>
class gr_stream_to_vector;
typedef boost::shared_ptr<gr_stream_to_vector> gr_stream_to_vector_sptr;
-gr_stream_to_vector_sptr
+GR_CORE_API gr_stream_to_vector_sptr
gr_make_stream_to_vector (size_t item_size, size_t nitems_per_block);
@@ -36,9 +37,9 @@ gr_make_stream_to_vector (size_t item_size, size_t nitems_per_block);
* \brief convert a stream of items into a stream of blocks containing nitems_per_block
* \ingroup slicedice_blk
*/
-class gr_stream_to_vector : public gr_sync_decimator
+class GR_CORE_API gr_stream_to_vector : public gr_sync_decimator
{
- friend gr_stream_to_vector_sptr
+ friend GR_CORE_API gr_stream_to_vector_sptr
gr_make_stream_to_vector (size_t item_size, size_t nitems_per_block);
protected:
diff --git a/gnuradio-core/src/lib/general/gr_streams_to_stream.h b/gnuradio-core/src/lib/general/gr_streams_to_stream.h
index 044af6cd2..8207fed42 100644
--- a/gnuradio-core/src/lib/general/gr_streams_to_stream.h
+++ b/gnuradio-core/src/lib/general/gr_streams_to_stream.h
@@ -22,12 +22,13 @@
#ifndef INCLUDED_GR_STREAMS_TO_STREAM_H
#define INCLUDED_GR_STREAMS_TO_STREAM_H
+#include <gr_core_api.h>
#include <gr_sync_interpolator.h>
class gr_streams_to_stream;
typedef boost::shared_ptr<gr_streams_to_stream> gr_streams_to_stream_sptr;
-gr_streams_to_stream_sptr
+GR_CORE_API gr_streams_to_stream_sptr
gr_make_streams_to_stream (size_t item_size, size_t nstreams);
@@ -38,9 +39,9 @@ gr_make_streams_to_stream (size_t item_size, size_t nstreams);
* Convert N streams of 1 item into 1 stream of N items.
* Repeat ad infinitum.
*/
-class gr_streams_to_stream : public gr_sync_interpolator
+class GR_CORE_API gr_streams_to_stream : public gr_sync_interpolator
{
- friend gr_streams_to_stream_sptr
+ friend GR_CORE_API gr_streams_to_stream_sptr
gr_make_streams_to_stream (size_t item_size, size_t nstreams);
protected:
diff --git a/gnuradio-core/src/lib/general/gr_streams_to_vector.h b/gnuradio-core/src/lib/general/gr_streams_to_vector.h
index 1b2e3ebf7..6a05ac90a 100644
--- a/gnuradio-core/src/lib/general/gr_streams_to_vector.h
+++ b/gnuradio-core/src/lib/general/gr_streams_to_vector.h
@@ -23,12 +23,13 @@
#ifndef INCLUDED_GR_STREAMS_TO_VECTOR_H
#define INCLUDED_GR_STREAMS_TO_VECTOR_H
+#include <gr_core_api.h>
#include <gr_sync_interpolator.h>
class gr_streams_to_vector;
typedef boost::shared_ptr<gr_streams_to_vector> gr_streams_to_vector_sptr;
-gr_streams_to_vector_sptr
+GR_CORE_API gr_streams_to_vector_sptr
gr_make_streams_to_vector (size_t item_size, size_t nstreams);
@@ -36,9 +37,9 @@ gr_make_streams_to_vector (size_t item_size, size_t nstreams);
* \brief convert N streams of items to 1 stream of vector length N
* \ingroup slicedice_blk
*/
-class gr_streams_to_vector : public gr_sync_block
+class GR_CORE_API gr_streams_to_vector : public gr_sync_block
{
- friend gr_streams_to_vector_sptr
+ friend GR_CORE_API gr_streams_to_vector_sptr
gr_make_streams_to_vector (size_t item_size, size_t nstreams);
protected:
diff --git a/gnuradio-core/src/lib/general/gr_stretch_ff.h b/gnuradio-core/src/lib/general/gr_stretch_ff.h
index e75e1969f..578634dd8 100644
--- a/gnuradio-core/src/lib/general/gr_stretch_ff.h
+++ b/gnuradio-core/src/lib/general/gr_stretch_ff.h
@@ -23,6 +23,7 @@
#ifndef INCLUDED_GR_STRETCH_FF_H_
# define INCLUDED_GR_STRETCH_FF_H_
+#include <gr_core_api.h>
#include <gr_sync_block.h>
/*!
@@ -36,11 +37,11 @@
class gr_stretch_ff;
typedef boost::shared_ptr<gr_stretch_ff> gr_stretch_ff_sptr;
-gr_stretch_ff_sptr gr_make_stretch_ff(float lo, size_t vlen);
+GR_CORE_API gr_stretch_ff_sptr gr_make_stretch_ff(float lo, size_t vlen);
-class gr_stretch_ff : public gr_sync_block
+class GR_CORE_API gr_stretch_ff : public gr_sync_block
{
- friend gr_stretch_ff_sptr gr_make_stretch_ff(float lo, size_t vlen);
+ friend GR_CORE_API gr_stretch_ff_sptr gr_make_stretch_ff(float lo, size_t vlen);
float d_lo; // the constant
size_t d_vlen;
diff --git a/gnuradio-core/src/lib/general/gr_test.h b/gnuradio-core/src/lib/general/gr_test.h
index 5438ac701..78e39d518 100644
--- a/gnuradio-core/src/lib/general/gr_test.h
+++ b/gnuradio-core/src/lib/general/gr_test.h
@@ -23,6 +23,7 @@
#ifndef INCLUDED_GR_TEST_H
#define INCLUDED_GR_TEST_H
+#include <gr_core_api.h>
#include <gr_block.h>
#include <string>
#include "gr_test_types.h"
@@ -31,7 +32,7 @@ class gr_test;
typedef boost::shared_ptr<gr_test> gr_test_sptr;
// public constructor
-gr_test_sptr gr_make_test (const std::string &name=std::string("gr_test"),
+GR_CORE_API gr_test_sptr gr_make_test (const std::string &name=std::string("gr_test"),
int min_inputs=1, int max_inputs=1, unsigned int sizeof_input_item=1,
int min_outputs=1, int max_outputs=1, unsigned int sizeof_output_item=1,
unsigned int history=1,unsigned int output_multiple=1,double relative_rate=1.0,
@@ -50,7 +51,7 @@ gr_test_sptr gr_make_test (const std::string &name=std::string("gr_test"),
* The runtime system should detect this and create large enough buffers
* all through the signal chain.
*/
-class gr_test : public gr_block {
+class GR_CORE_API gr_test : public gr_block {
public:
@@ -183,7 +184,7 @@ int general_work (int noutput_items,
- friend gr_test_sptr gr_make_test (const std::string &name,int min_inputs, int max_inputs, unsigned int sizeof_input_item,
+ friend GR_CORE_API gr_test_sptr gr_make_test (const std::string &name,int min_inputs, int max_inputs, unsigned int sizeof_input_item,
int min_outputs, int max_outputs, unsigned int sizeof_output_item,
unsigned int history,unsigned int output_multiple,double relative_rate,
bool fixed_rate,gr_consume_type_t cons_type, gr_produce_type_t prod_type);
diff --git a/gnuradio-core/src/lib/general/gr_threshold_ff.h b/gnuradio-core/src/lib/general/gr_threshold_ff.h
index 65b677a77..3bf3058cd 100644
--- a/gnuradio-core/src/lib/general/gr_threshold_ff.h
+++ b/gnuradio-core/src/lib/general/gr_threshold_ff.h
@@ -23,20 +23,21 @@
#ifndef INCLUDED_GR_THRESHOLD_FF_H
#define INCLUDED_GR_THRESHOLD_FF_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_threshold_ff;
typedef boost::shared_ptr<gr_threshold_ff> gr_threshold_ff_sptr;
-gr_threshold_ff_sptr gr_make_threshold_ff (float lo, float hi, float initial_state=0);
+GR_CORE_API gr_threshold_ff_sptr gr_make_threshold_ff (float lo, float hi, float initial_state=0);
/*!
* \brief Please fix my documentation
* \ingroup misc_blk
*/
-class gr_threshold_ff : public gr_sync_block
+class GR_CORE_API gr_threshold_ff : public gr_sync_block
{
- friend gr_threshold_ff_sptr gr_make_threshold_ff (float lo, float hi, float initial_state);
+ friend GR_CORE_API gr_threshold_ff_sptr gr_make_threshold_ff (float lo, float hi, float initial_state);
float d_lo,d_hi; // the constant
float d_last_state;
diff --git a/gnuradio-core/src/lib/general/gr_throttle.h b/gnuradio-core/src/lib/general/gr_throttle.h
index a82821f77..0b6ada995 100644
--- a/gnuradio-core/src/lib/general/gr_throttle.h
+++ b/gnuradio-core/src/lib/general/gr_throttle.h
@@ -22,6 +22,7 @@
#ifndef INCLUDED_GR_THROTTLE_H
#define INCLUDED_GR_THROTTLE_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
/*!
@@ -35,7 +36,7 @@
* controlling the rate of samples. That should be controlled by a
* source or sink tied to sample clock. E.g., a USRP or audio card.
*/
-class gr_throttle : virtual public gr_sync_block
+class GR_CORE_API gr_throttle : virtual public gr_sync_block
{
public:
typedef boost::shared_ptr<gr_throttle> sptr;
@@ -44,6 +45,6 @@ public:
virtual void set_sample_rate(double rate) = 0;
};
-gr_throttle::sptr gr_make_throttle(size_t itemsize, double samples_per_sec);
+GR_CORE_API gr_throttle::sptr gr_make_throttle(size_t itemsize, double samples_per_sec);
#endif /* INCLUDED_GR_THROTTLE_H */
diff --git a/gnuradio-core/src/lib/general/gr_uchar_to_float.h b/gnuradio-core/src/lib/general/gr_uchar_to_float.h
index 3b83c893f..8e8836c2c 100644
--- a/gnuradio-core/src/lib/general/gr_uchar_to_float.h
+++ b/gnuradio-core/src/lib/general/gr_uchar_to_float.h
@@ -23,12 +23,13 @@
#ifndef INCLUDED_GR_UCHAR_TO_FLOAT_H
#define INCLUDED_GR_UCHAR_TO_FLOAT_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
class gr_uchar_to_float;
typedef boost::shared_ptr<gr_uchar_to_float> gr_uchar_to_float_sptr;
-gr_uchar_to_float_sptr
+GR_CORE_API gr_uchar_to_float_sptr
gr_make_uchar_to_float ();
/*!
@@ -36,9 +37,9 @@ gr_make_uchar_to_float ();
* \ingroup converter_blk
*/
-class gr_uchar_to_float : public gr_sync_block
+class GR_CORE_API gr_uchar_to_float : public gr_sync_block
{
- friend gr_uchar_to_float_sptr gr_make_uchar_to_float ();
+ friend GR_CORE_API gr_uchar_to_float_sptr gr_make_uchar_to_float ();
gr_uchar_to_float ();
public:
diff --git a/gnuradio-core/src/lib/general/gr_unpack_k_bits_bb.h b/gnuradio-core/src/lib/general/gr_unpack_k_bits_bb.h
index e2be2c59c..056c69dc1 100644
--- a/gnuradio-core/src/lib/general/gr_unpack_k_bits_bb.h
+++ b/gnuradio-core/src/lib/general/gr_unpack_k_bits_bb.h
@@ -23,11 +23,12 @@
#ifndef INCLUDED_GR_UNPACK_K_BITS_BB_H
#define INCLUDED_GR_UNPACK_K_BITS_BB_H
+#include <gr_core_api.h>
#include <gr_sync_interpolator.h>
class gr_unpack_k_bits_bb;
typedef boost::shared_ptr<gr_unpack_k_bits_bb> gr_unpack_k_bits_bb_sptr;
-gr_unpack_k_bits_bb_sptr gr_make_unpack_k_bits_bb (unsigned k);
+GR_CORE_API gr_unpack_k_bits_bb_sptr gr_make_unpack_k_bits_bb (unsigned k);
class gr_unpack_k_bits_bb;
@@ -35,10 +36,10 @@ class gr_unpack_k_bits_bb;
* \brief Converts a byte with k relevent bits to k output bytes with 1 bit in the LSB.
* \ingroup converter_blk
*/
-class gr_unpack_k_bits_bb : public gr_sync_interpolator
+class GR_CORE_API gr_unpack_k_bits_bb : public gr_sync_interpolator
{
private:
- friend gr_unpack_k_bits_bb_sptr gr_make_unpack_k_bits_bb (unsigned k);
+ friend GR_CORE_API gr_unpack_k_bits_bb_sptr gr_make_unpack_k_bits_bb (unsigned k);
gr_unpack_k_bits_bb (unsigned k);
diff --git a/gnuradio-core/src/lib/general/gr_vco_f.h b/gnuradio-core/src/lib/general/gr_vco_f.h
index 2bdf60899..b7524d581 100644
--- a/gnuradio-core/src/lib/general/gr_vco_f.h
+++ b/gnuradio-core/src/lib/general/gr_vco_f.h
@@ -22,6 +22,7 @@
#ifndef INCLUDED_GR_VCO_F_H
#define INCLUDED_GR_VCO_F_H
+#include <gr_core_api.h>
#include <gr_sync_block.h>
#include <gr_fxpt_vco.h>
@@ -37,7 +38,7 @@ class gr_vco_f;
typedef boost::shared_ptr<gr_vco_f> gr_vco_f_sptr;
-gr_vco_f_sptr gr_make_vco_f(double sampling_rate, double sensitivity, double amplitude);
+GR_CORE_API gr_vco_f_sptr gr_make_vco_f(double sampling_rate, double sensitivity, double amplitude);
/*!
* \brief VCO - Voltage controlled oscillator
@@ -45,9 +46,9 @@ gr_vco_f_sptr gr_make_vco_f(double sampling_rate, double sensitivity, double amp
*
* input: float stream of control voltages; output: float oscillator output
*/
-class gr_vco_f : public gr_sync_block
+class GR_CORE_API gr_vco_f : public gr_sync_block
{
- friend gr_vco_f_sptr gr_make_vco_f(double sampling_rate, double sensitivity, double amplitude);
+ friend GR_CORE_API gr_vco_f_sptr gr_make_vco_f(double sampling_rate, double sensitivity, double amplitude);
/*!
* \brief VCO - Voltage controlled oscillator
diff --git a/gnuradio-core/src/lib/general/gr_vector_to_stream.h b/gnuradio-core/src/lib/general/gr_vector_to_stream.h
index de6cc2a8b..d2fa8c7ab 100644
--- a/gnuradio-core/src/lib/general/gr_vector_to_stream.h
+++ b/gnuradio-core/src/lib/general/gr_vector_to_stream.h
@@ -23,12 +23,13 @@
#ifndef INCLUDED_GR_VECTOR_TO_STREAM_H
#define INCLUDED_GR_VECTOR_TO_STREAM_H
+#include <gr_core_api.h>
#include <gr_sync_interpolator.h>
class gr_vector_to_stream;
typedef boost::shared_ptr<gr_vector_to_stream> gr_vector_to_stream_sptr;
-gr_vector_to_stream_sptr
+GR_CORE_API gr_vector_to_stream_sptr
gr_make_vector_to_stream (size_t item_size, size_t nitems_per_block);
@@ -36,9 +37,9 @@ gr_make_vector_to_stream (size_t item_size, size_t nitems_per_block);
* \brief convert a stream of blocks of nitems_per_block items into a stream of items
* \ingroup slicedice_blk
*/
-class gr_vector_to_stream : public gr_sync_interpolator
+class GR_CORE_API gr_vector_to_stream : public gr_sync_interpolator
{
- friend gr_vector_to_stream_sptr
+ friend GR_CORE_API gr_vector_to_stream_sptr
gr_make_vector_to_stream (size_t item_size, size_t nitems_per_block);
protected:
diff --git a/gnuradio-core/src/lib/general/gr_vector_to_streams.h b/gnuradio-core/src/lib/general/gr_vector_to_streams.h
index d5ba7acf9..04ac941a1 100644
--- a/gnuradio-core/src/lib/general/gr_vector_to_streams.h
+++ b/gnuradio-core/src/lib/general/gr_vector_to_streams.h
@@ -23,12 +23,13 @@
#ifndef INCLUDED_GR_VECTOR_TO_STREAMS_H
#define INCLUDED_GR_VECTOR_TO_STREAMS_H
+#include <gr_core_api.h>
#include <gr_sync_interpolator.h>
class gr_vector_to_streams;
typedef boost::shared_ptr<gr_vector_to_streams> gr_vector_to_streams_sptr;
-gr_vector_to_streams_sptr
+GR_CORE_API gr_vector_to_streams_sptr
gr_make_vector_to_streams (size_t item_size, size_t nstreams);
@@ -36,9 +37,9 @@ gr_make_vector_to_streams (size_t item_size, size_t nstreams);
* \brief Convert 1 stream of vectors of length N to N streams of items
* \ingroup slicedice_blk
*/
-class gr_vector_to_streams : public gr_sync_block
+class GR_CORE_API gr_vector_to_streams : public gr_sync_block
{
- friend gr_vector_to_streams_sptr
+ friend GR_CORE_API gr_vector_to_streams_sptr
gr_make_vector_to_streams (size_t item_size, size_t nstreams);
protected:
diff --git a/gnuradio-core/src/lib/general/gr_wavelet_ff.h b/gnuradio-core/src/lib/general/gr_wavelet_ff.h
index dcfb595e5..107a50fe2 100644
--- a/gnuradio-core/src/lib/general/gr_wavelet_ff.h
+++ b/gnuradio-core/src/lib/general/gr_wavelet_ff.h
@@ -22,6 +22,7 @@
#ifndef INCLUDED_GR_WAVELET_FF_H
#define INCLUDED_GR_WAVELET_FF_H
+#include <gr_core_api.h>
#include <iostream>
#include <gr_sync_block.h>
@@ -31,7 +32,7 @@
class gr_wavelet_ff;
typedef boost::shared_ptr<gr_wavelet_ff> gr_wavelet_ff_sptr;
-gr_wavelet_ff_sptr
+GR_CORE_API gr_wavelet_ff_sptr
gr_make_wavelet_ff(int size = 1024,
int order = 20,
bool forward = true);
@@ -41,7 +42,7 @@ gr_make_wavelet_ff(int size = 1024,
* \ingroup wavelet_blk
*/
-class gr_wavelet_ff : public gr_sync_block
+class GR_CORE_API gr_wavelet_ff : public gr_sync_block
{
int d_size;
int d_order;
@@ -50,7 +51,7 @@ class gr_wavelet_ff : public gr_sync_block
gsl_wavelet_workspace *d_workspace;
double *d_temp;
- friend gr_wavelet_ff_sptr
+ friend GR_CORE_API gr_wavelet_ff_sptr
gr_make_wavelet_ff(int size,
int order,
bool forward);
diff --git a/gnuradio-core/src/lib/general/gr_wvps_ff.h b/gnuradio-core/src/lib/general/gr_wvps_ff.h
index af122d0fc..7c8f26066 100644
--- a/gnuradio-core/src/lib/general/gr_wvps_ff.h
+++ b/gnuradio-core/src/lib/general/gr_wvps_ff.h
@@ -23,12 +23,13 @@
#ifndef INCLUDED_GR_WVPS_FF_H
#define INCLUDED_GR_WVPS_FF_H
+#include <gr_core_api.h>
#include <gr_sync_decimator.h>
class gr_wvps_ff;
typedef boost::shared_ptr<gr_wvps_ff> gr_wvps_ff_sptr;
-gr_wvps_ff_sptr
+GR_CORE_API gr_wvps_ff_sptr
gr_make_wvps_ff(int ilen);
@@ -36,9 +37,9 @@ gr_make_wvps_ff(int ilen);
* \brief computes the Wavelet Power Spectrum from a set of wavelet coefficients
* \ingroup wavelet_blk
*/
-class gr_wvps_ff : public gr_sync_block
+class GR_CORE_API gr_wvps_ff : public gr_sync_block
{
- friend gr_wvps_ff_sptr
+ friend GR_CORE_API gr_wvps_ff_sptr
gr_make_wvps_ff(int ilen);
int d_ilen;
diff --git a/gnuradio-core/src/lib/general/gri_agc2_cc.h b/gnuradio-core/src/lib/general/gri_agc2_cc.h
index 441d1e459..b0a027aad 100644
--- a/gnuradio-core/src/lib/general/gri_agc2_cc.h
+++ b/gnuradio-core/src/lib/general/gri_agc2_cc.h
@@ -23,6 +23,7 @@
#ifndef _GRI_AGC2_CC_H_
#define _GRI_AGC2_CC_H_
+#include <gr_core_api.h>
#include <math.h>
/*!
@@ -30,7 +31,7 @@
*
* For Power the absolute value of the complex number is used.
*/
-class gri_agc2_cc {
+class GR_CORE_API gri_agc2_cc {
public:
gri_agc2_cc (float attack_rate = 1e-1, float decay_rate = 1e-2, float reference = 1.0,
diff --git a/gnuradio-core/src/lib/general/gri_agc2_ff.h b/gnuradio-core/src/lib/general/gri_agc2_ff.h
index a06dab78c..ee70c2537 100644
--- a/gnuradio-core/src/lib/general/gri_agc2_ff.h
+++ b/gnuradio-core/src/lib/general/gri_agc2_ff.h
@@ -23,6 +23,7 @@
#ifndef _GRI_AGC2_FF_H_
#define _GRI_AGC2_FF_H_
+#include <gr_core_api.h>
#include <math.h>
/*!
@@ -31,7 +32,7 @@
* Power is approximated by absolute value
*/
-class gri_agc2_ff {
+class GR_CORE_API gri_agc2_ff {
public:
gri_agc2_ff (float attack_rate = 1e-1, float decay_rate = 1e-2, float reference = 1.0,
diff --git a/gnuradio-core/src/lib/general/gri_agc_cc.h b/gnuradio-core/src/lib/general/gri_agc_cc.h
index bc31d9a3d..74dfdf1dc 100644
--- a/gnuradio-core/src/lib/general/gri_agc_cc.h
+++ b/gnuradio-core/src/lib/general/gri_agc_cc.h
@@ -23,6 +23,7 @@
#ifndef INCLUDED_GRI_AGC_CC_H
#define INCLUDED_GRI_AGC_CC_H
+#include <gr_core_api.h>
#include <math.h>
/*!
@@ -31,7 +32,7 @@
* For Power the absolute value of the complex number is used.
*/
-class gri_agc_cc {
+class GR_CORE_API gri_agc_cc {
public:
gri_agc_cc (float rate = 1e-4, float reference = 1.0,
diff --git a/gnuradio-core/src/lib/general/gri_agc_ff.h b/gnuradio-core/src/lib/general/gri_agc_ff.h
index de609a8d4..753bbe275 100644
--- a/gnuradio-core/src/lib/general/gri_agc_ff.h
+++ b/gnuradio-core/src/lib/general/gri_agc_ff.h
@@ -23,6 +23,7 @@
#ifndef INCLUDED_GRI_AGC_FF_H
#define INCLUDED_GRI_AGC_FF_H
+#include <gr_core_api.h>
#include <math.h>
/*!
@@ -30,7 +31,7 @@
*
* Power is approximated by absolute value
*/
-class gri_agc_ff {
+class GR_CORE_API gri_agc_ff {
public:
gri_agc_ff (float rate = 1e-4, float reference = 1.0,
diff --git a/gnuradio-core/src/lib/general/gri_char_to_float.h b/gnuradio-core/src/lib/general/gri_char_to_float.h
index f4703bef7..890d482b5 100644
--- a/gnuradio-core/src/lib/general/gri_char_to_float.h
+++ b/gnuradio-core/src/lib/general/gri_char_to_float.h
@@ -23,10 +23,12 @@
#ifndef INCLUDED_GRI_CHAR_TO_FLOAT_H
#define INCLUDED_GRI_CHAR_TO_FLOAT_H
+#include <gr_core_api.h>
+
/*
* convert array of chars to floats
*/
-void gri_char_to_float (const char *in, float *out, int nsamples);
+GR_CORE_API void gri_char_to_float (const char *in, float *out, int nsamples);
-#endif /* INCLUDED_GRI_CHAR_TO_FLOAT_H */
+#endif /* INCLUDED_GRI_CHAR_TO_FLOAT_H */ \ No newline at end of file
diff --git a/gnuradio-core/src/lib/general/gri_control_loop.cc b/gnuradio-core/src/lib/general/gri_control_loop.cc
index affdeefc9..4c64bb922 100644
--- a/gnuradio-core/src/lib/general/gri_control_loop.cc
+++ b/gnuradio-core/src/lib/general/gri_control_loop.cc
@@ -20,6 +20,10 @@
* Boston, MA 02110-1301, USA.
*/
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
#include <gri_control_loop.h>
#include <gr_math.h>
#include <stdexcept>
diff --git a/gnuradio-core/src/lib/general/gri_control_loop.h b/gnuradio-core/src/lib/general/gri_control_loop.h
index a85625bbd..3aeac58f7 100644
--- a/gnuradio-core/src/lib/general/gri_control_loop.h
+++ b/gnuradio-core/src/lib/general/gri_control_loop.h
@@ -23,7 +23,9 @@
#ifndef GRI_CONTROL_LOOP
#define GRI_CONTROL_LOOP
-class gri_control_loop
+#include <gr_core_api.h>
+
+class GR_CORE_API gri_control_loop
{
protected:
float d_phase, d_freq;
diff --git a/gnuradio-core/src/lib/general/gri_debugger_hook.h b/gnuradio-core/src/lib/general/gri_debugger_hook.h
index 60c90685e..cf227af8f 100644
--- a/gnuradio-core/src/lib/general/gri_debugger_hook.h
+++ b/gnuradio-core/src/lib/general/gri_debugger_hook.h
@@ -23,6 +23,8 @@
#ifndef INCLUDED_GRI_DEBUGGER_HOOK_H
#define INCLUDED_GRI_DEBUGGER_HOOK_H
-void gri_debugger_hook ();
+#include <gr_core_api.h>
-#endif /* INCLUDED_GRI_DEBUGGER_HOOK_H */
+GR_CORE_API void gri_debugger_hook ();
+
+#endif /* INCLUDED_GRI_DEBUGGER_HOOK_H */ \ No newline at end of file
diff --git a/gnuradio-core/src/lib/general/gri_fft.cc b/gnuradio-core/src/lib/general/gri_fft.cc
index f20b15ca0..0df1af25d 100644
--- a/gnuradio-core/src/lib/general/gri_fft.cc
+++ b/gnuradio-core/src/lib/general/gri_fft.cc
@@ -23,6 +23,19 @@
#include <gri_fft.h>
#include <gr_sys_paths.h>
#include <fftw3.h>
+
+#ifdef _MSC_VER //http://www.fftw.org/install/windows.html#DLLwisdom
+static void my_fftw_write_char(char c, void *f) { fputc(c, (FILE *) f); }
+#define fftw_export_wisdom_to_file(f) fftw_export_wisdom(my_fftw_write_char, (void*) (f))
+#define fftwf_export_wisdom_to_file(f) fftwf_export_wisdom(my_fftw_write_char, (void*) (f))
+#define fftwl_export_wisdom_to_file(f) fftwl_export_wisdom(my_fftw_write_char, (void*) (f))
+
+static int my_fftw_read_char(void *f) { return fgetc((FILE *) f); }
+#define fftw_import_wisdom_from_file(f) fftw_import_wisdom(my_fftw_read_char, (void*) (f))
+#define fftwf_import_wisdom_from_file(f) fftwf_import_wisdom(my_fftw_read_char, (void*) (f))
+#define fftwl_import_wisdom_from_file(f) fftwl_import_wisdom(my_fftw_read_char, (void*) (f))
+#endif //_MSC_VER
+
#include <gr_complex.h>
#include <stdlib.h>
#include <string.h>
diff --git a/gnuradio-core/src/lib/general/gri_fft.h b/gnuradio-core/src/lib/general/gri_fft.h
index 9ffcc5a50..91a82fb55 100644
--- a/gnuradio-core/src/lib/general/gri_fft.h
+++ b/gnuradio-core/src/lib/general/gri_fft.h
@@ -26,6 +26,7 @@
* Wrappers for FFTW single precision 1d dft
*/
+#include <gr_core_api.h>
#include <gr_complex.h>
#include <boost/thread.hpp>
@@ -33,7 +34,7 @@
* \brief Export reference to planner mutex for those apps that
* want to use FFTW w/o using the gri_fftw* classes.
*/
-class gri_fft_planner {
+class GR_CORE_API gri_fft_planner {
public:
typedef boost::mutex::scoped_lock scoped_lock;
/*!
@@ -46,7 +47,7 @@ public:
* \brief FFT: complex in, complex out
* \ingroup misc
*/
-class gri_fft_complex {
+class GR_CORE_API gri_fft_complex {
int d_fft_size;
gr_complex *d_inbuf;
gr_complex *d_outbuf;
@@ -77,7 +78,7 @@ public:
* \brief FFT: real in, complex out
* \ingroup misc
*/
-class gri_fft_real_fwd {
+class GR_CORE_API gri_fft_real_fwd {
int d_fft_size;
float *d_inbuf;
gr_complex *d_outbuf;
@@ -108,7 +109,7 @@ public:
* \brief FFT: complex in, float out
* \ingroup misc
*/
-class gri_fft_real_rev {
+class GR_CORE_API gri_fft_real_rev {
int d_fft_size;
gr_complex *d_inbuf;
float *d_outbuf;
diff --git a/gnuradio-core/src/lib/general/gri_float_to_char.h b/gnuradio-core/src/lib/general/gri_float_to_char.h
index 95cc8ea8d..184592a69 100644
--- a/gnuradio-core/src/lib/general/gri_float_to_char.h
+++ b/gnuradio-core/src/lib/general/gri_float_to_char.h
@@ -23,10 +23,11 @@
#ifndef INCLUDED_GRI_FLOAT_TO_CHAR_H
#define INCLUDED_GRI_FLOAT_TO_CHAR_H
+#include <gr_core_api.h>
+
/*!
* convert array of floats to chars with rounding and saturation.
*/
-void gri_float_to_char (const float *in, char *out, int nsamples);
+GR_CORE_API void gri_float_to_char (const float *in, char *out, int nsamples);
#endif /* INCLUDED_GRI_FLOAT_TO_CHAR_H */
-
diff --git a/gnuradio-core/src/lib/general/gri_float_to_short.h b/gnuradio-core/src/lib/general/gri_float_to_short.h
index e36e25de6..6d814b2b3 100644
--- a/gnuradio-core/src/lib/general/gri_float_to_short.h
+++ b/gnuradio-core/src/lib/general/gri_float_to_short.h
@@ -23,10 +23,11 @@
#ifndef INCLUDED_GRI_FLOAT_TO_SHORT_H
#define INCLUDED_GRI_FLOAT_TO_SHORT_H
+#include <gr_core_api.h>
+
/*!
* convert array of floats to shorts with rounding and saturation.
*/
-void gri_float_to_short (const float *in, short *out, int nsamples);
+GR_CORE_API void gri_float_to_short (const float *in, short *out, int nsamples);
#endif /* INCLUDED_GRI_FLOAT_TO_SHORT_H */
-
diff --git a/gnuradio-core/src/lib/general/gri_float_to_uchar.h b/gnuradio-core/src/lib/general/gri_float_to_uchar.h
index e413e725f..ff549333e 100644
--- a/gnuradio-core/src/lib/general/gri_float_to_uchar.h
+++ b/gnuradio-core/src/lib/general/gri_float_to_uchar.h
@@ -23,10 +23,11 @@
#ifndef INCLUDED_GRI_FLOAT_TO_UCHAR_H
#define INCLUDED_GRI_FLOAT_TO_UCHAR_H
+#include <gr_core_api.h>
+
/*!
* convert array of floats to unsigned chars with rounding and saturation.
*/
-void gri_float_to_uchar (const float *in, unsigned char *out, int nsamples);
+GR_CORE_API void gri_float_to_uchar (const float *in, unsigned char *out, int nsamples);
#endif /* INCLUDED_GRI_FLOAT_TO_UCHAR_H */
-
diff --git a/gnuradio-core/src/lib/general/gri_glfsr.h b/gnuradio-core/src/lib/general/gri_glfsr.h
index 7dd5f8660..e6d28cf45 100644
--- a/gnuradio-core/src/lib/general/gri_glfsr.h
+++ b/gnuradio-core/src/lib/general/gri_glfsr.h
@@ -23,6 +23,8 @@
#ifndef INCLUDED_GRI_GLFSR_H
#define INCLUDED_GRI_GLFSR_H
+#include <gr_core_api.h>
+
/*!
* \brief Galois Linear Feedback Shift Register using specified polynomial mask
* \ingroup misc
@@ -30,7 +32,7 @@
* Generates a maximal length pseudo-random sequence of length 2^degree-1
*/
-class gri_glfsr
+class GR_CORE_API gri_glfsr
{
private:
int d_shift_register;
@@ -52,4 +54,4 @@ class gri_glfsr
int mask() const { return d_mask; }
};
-#endif /* INCLUDED_GRI_GLFSR_H */
+#endif /* INCLUDED_GRI_GLFSR_H */ \ No newline at end of file
diff --git a/gnuradio-core/src/lib/general/gri_interleaved_short_to_complex.h b/gnuradio-core/src/lib/general/gri_interleaved_short_to_complex.h
index 09d915f7a..107e2f778 100644
--- a/gnuradio-core/src/lib/general/gri_interleaved_short_to_complex.h
+++ b/gnuradio-core/src/lib/general/gri_interleaved_short_to_complex.h
@@ -23,6 +23,7 @@
#ifndef INCLUDED_GRI_INTERLEAVED_SHORT_TO_COMPLEX_H
#define INCLUDED_GRI_INTERLEAVED_SHORT_TO_COMPLEX_H
+#include <gr_core_api.h>
#include <gr_complex.h>
/*
@@ -30,7 +31,7 @@
* the shorts contains real, imaginary, real, imaginary...
* nsamples is the number of shorts; it must be even.
*/
-void gri_interleaved_short_to_complex (const short *in, gr_complex *out, int nsamples);
+GR_CORE_API void gri_interleaved_short_to_complex (const short *in, gr_complex *out, int nsamples);
#endif /* INCLUDED_GRI_INTERLEAVED_SHORT_TO_COMPLEX_H */
diff --git a/gnuradio-core/src/lib/general/gri_lfsr.h b/gnuradio-core/src/lib/general/gri_lfsr.h
index f691e36ec..dc9358572 100644
--- a/gnuradio-core/src/lib/general/gri_lfsr.h
+++ b/gnuradio-core/src/lib/general/gri_lfsr.h
@@ -23,6 +23,7 @@
#ifndef INCLUDED_GRI_LFSR_H
#define INCLUDED_GRI_LFSR_H
+#include <gr_core_api.h>
#include <stdexcept>
#include <stdint.h>
@@ -81,7 +82,7 @@
*
*/
-class gri_lfsr
+class GR_CORE_API gri_lfsr
{
private:
uint32_t d_shift_register;
diff --git a/gnuradio-core/src/lib/general/gri_lfsr_15_1_0.h b/gnuradio-core/src/lib/general/gri_lfsr_15_1_0.h
index 798f2faad..7405ffbaa 100644
--- a/gnuradio-core/src/lib/general/gri_lfsr_15_1_0.h
+++ b/gnuradio-core/src/lib/general/gri_lfsr_15_1_0.h
@@ -23,6 +23,8 @@
#ifndef INCLUDED_GRI_LFSR_15_1_0_H
#define INCLUDED_GRI_LFSR_15_1_0_H
+#include <gr_core_api.h>
+
/*!
* \brief Linear Feedback Shift Register using primitive polynomial x^15 + x + 1
* \ingroup misc
@@ -30,7 +32,7 @@
* Generates a maximal length pseudo-random sequence of length 2^15 - 1 bits.
*/
-class gri_lfsr_15_1_0 {
+class GR_CORE_API gri_lfsr_15_1_0 {
unsigned long d_sr; // shift register
public:
@@ -55,4 +57,4 @@ class gri_lfsr_15_1_0 {
}
};
-#endif /* INCLUDED_GRI_LFSR_15_1_0_H */
+#endif /* INCLUDED_GRI_LFSR_15_1_0_H */ \ No newline at end of file
diff --git a/gnuradio-core/src/lib/general/gri_lfsr_32k.h b/gnuradio-core/src/lib/general/gri_lfsr_32k.h
index 33e7ae3a1..5c0396b50 100644
--- a/gnuradio-core/src/lib/general/gri_lfsr_32k.h
+++ b/gnuradio-core/src/lib/general/gri_lfsr_32k.h
@@ -23,6 +23,7 @@
#ifndef INCLUDED_GRI_LFSR_32k_H
#define INCLUDED_GRI_LFSR_32k_H
+#include <gr_core_api.h>
#include <gri_lfsr_15_1_0.h>
/*!
@@ -33,7 +34,7 @@
* of the sequence.
*/
-class gri_lfsr_32k {
+class GR_CORE_API gri_lfsr_32k {
gri_lfsr_15_1_0 d_lfsr;
unsigned int d_count;
diff --git a/gnuradio-core/src/lib/general/gri_short_to_float.h b/gnuradio-core/src/lib/general/gri_short_to_float.h
index ce4193062..51767efab 100644
--- a/gnuradio-core/src/lib/general/gri_short_to_float.h
+++ b/gnuradio-core/src/lib/general/gri_short_to_float.h
@@ -23,10 +23,12 @@
#ifndef INCLUDED_GRI_SHORT_TO_FLOAT_H
#define INCLUDED_GRI_SHORT_TO_FLOAT_H
+#include <gr_core_api.h>
+
/*
* convert array of shorts to floats
*/
-void gri_short_to_float (const short *in, float *out, int nsamples);
+GR_CORE_API void gri_short_to_float (const short *in, float *out, int nsamples);
-#endif /* INCLUDED_GRI_SHORT_TO_FLOAT_H */
+#endif /* INCLUDED_GRI_SHORT_TO_FLOAT_H */ \ No newline at end of file
diff --git a/gnuradio-core/src/lib/general/gri_uchar_to_float.h b/gnuradio-core/src/lib/general/gri_uchar_to_float.h
index 7a9f11ba6..9f342989d 100644
--- a/gnuradio-core/src/lib/general/gri_uchar_to_float.h
+++ b/gnuradio-core/src/lib/general/gri_uchar_to_float.h
@@ -23,10 +23,12 @@
#ifndef INCLUDED_GRI_UCHAR_TO_FLOAT_H
#define INCLUDED_GRI_UCHAR_TO_FLOAT_H
+#include <gr_core_api.h>
+
/*
* convert array of unsigned chars to floats
*/
-void gri_uchar_to_float (const unsigned char *in, float *out, int nsamples);
+GR_CORE_API void gri_uchar_to_float (const unsigned char *in, float *out, int nsamples);
-#endif /* INCLUDED_GRI_UCHAR_TO_FLOAT_H */
+#endif /* INCLUDED_GRI_UCHAR_TO_FLOAT_H */ \ No newline at end of file
diff --git a/gnuradio-core/src/lib/general/malloc16.c b/gnuradio-core/src/lib/general/malloc16.c
index 331751499..2cc6135e7 100644
--- a/gnuradio-core/src/lib/general/malloc16.c
+++ b/gnuradio-core/src/lib/general/malloc16.c
@@ -7,7 +7,6 @@
#include "malloc16.h"
#include <string.h>
-#include <strings.h>
void *malloc16Align(int size){
void *p;
diff --git a/gnuradio-core/src/lib/general/malloc16.h b/gnuradio-core/src/lib/general/malloc16.h
index fc97f267d..6b1a3fb08 100644
--- a/gnuradio-core/src/lib/general/malloc16.h
+++ b/gnuradio-core/src/lib/general/malloc16.h
@@ -20,15 +20,17 @@
* Boston, MA 02110-1301, USA.
*/
+#include <gr_core_api.h>
+
#ifdef __cplusplus
extern "C" {
#endif
#include <stdlib.h>
-void *malloc16Align(int size);
-void *calloc16Align(size_t nmemb,size_t size);
-void free16Align(void *p);
+GR_CORE_API void *malloc16Align(int size);
+GR_CORE_API void *calloc16Align(size_t nmemb,size_t size);
+GR_CORE_API void free16Align(void *p);
#ifdef __cplusplus
}
diff --git a/gnuradio-core/src/lib/general/qa_general.h b/gnuradio-core/src/lib/general/qa_general.h
index 577c9d7fb..7da188266 100644
--- a/gnuradio-core/src/lib/general/qa_general.h
+++ b/gnuradio-core/src/lib/general/qa_general.h
@@ -23,11 +23,12 @@
#ifndef _QA_GENERAL_H_
#define _QA_GENERAL_H_
+#include <gruel/attributes.h>
#include <cppunit/TestSuite.h>
//! collect all the tests for the gr directory
-class qa_general {
+class __GR_ATTR_EXPORT qa_general {
public:
//! return suite of tests for all of gr directory
static CppUnit::TestSuite *suite ();
diff --git a/gnuradio-core/src/lib/general/qa_gri_lfsr.cc b/gnuradio-core/src/lib/general/qa_gri_lfsr.cc
index 9f8b62dcf..9625071d8 100644
--- a/gnuradio-core/src/lib/general/qa_gri_lfsr.cc
+++ b/gnuradio-core/src/lib/general/qa_gri_lfsr.cc
@@ -24,6 +24,7 @@
#include <cppunit/TestAssert.h>
#include <stdio.h>
#include <string.h>
+#include <vector>
void
qa_gri_lfsr::test_lfsr ()
@@ -90,12 +91,12 @@ qa_gri_lfsr::test_scrambler()
1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, };
int len = sizeof(src);
- unsigned char actual[len];
+ std::vector<unsigned char> actual(len);
for (int i = 0; i < len; i++)
actual[i] = scrambler.next_bit_scramble(src[i]);
- CPPUNIT_ASSERT(memcmp(expected, actual, len) == 0);
+ CPPUNIT_ASSERT(memcmp(expected, &actual[0], len) == 0);
}
void
@@ -132,10 +133,10 @@ qa_gri_lfsr::test_descrambler()
0, 0, 0, 0, 0, 0, 0, 0, 0 };
int len = sizeof(src);
- unsigned char actual[len];
+ std::vector<unsigned char> actual(len);
for (int i = 0; i < len; i++)
actual[i] = descrambler.next_bit_descramble(src[i]);
- CPPUNIT_ASSERT(memcmp(expected, actual, len) == 0);
+ CPPUNIT_ASSERT(memcmp(expected, &actual[0], len) == 0);
}