summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt4
-rw-r--r--README2
-rw-r--r--README.building-boost2
-rw-r--r--README.hacking8
-rw-r--r--cmake/Modules/FindZeroMQ.cmake2
-rw-r--r--cmake/Modules/GrMiscUtils.cmake2
-rw-r--r--cmake/Modules/GrSetupQt4.cmake2
-rw-r--r--cmake/Modules/GrTest.cmake2
-rw-r--r--cmake/Modules/NSIS.template.in148
-rw-r--r--docs/doxygen/doxyxml/doxyindex.py40
-rw-r--r--docs/doxygen/other/logger.dox4
-rw-r--r--docs/doxygen/other/msg_passing.dox4
-rw-r--r--docs/doxygen/other/thread_affinity.dox2
-rw-r--r--docs/doxygen/swig_doc.py24
-rw-r--r--docs/exploring-gnuradio/fm_rx.grc12
-rw-r--r--docs/exploring-gnuradio/fm_tx.grc8
-rw-r--r--docs/sphinx/CMakeLists.txt8
-rw-r--r--docs/sphinx/README2
-rw-r--r--docs/sphinx/gnuradio_sphinx.py64
-rw-r--r--docs/sphinx/hieroglyph/errors.py18
-rw-r--r--docs/sphinx/hieroglyph/nodes.py534
-rw-r--r--docs/sphinx/hieroglyph/test/__init__.py1
-rw-r--r--docs/sphinx/hieroglyph/test/test_hierglyph.py528
-rw-r--r--docs/sphinx/hieroglyph/test/test_nodes.py772
-rw-r--r--docs/sphinx/hieroglyph/version.py6
-rw-r--r--docs/sphinx/source/analog/get_blocks.py4
-rw-r--r--docs/sphinx/source/atsc/index.rst8
-rw-r--r--docs/sphinx/source/blocks/get_blocks.py4
-rw-r--r--docs/sphinx/source/gr/index.rst2
-rw-r--r--docs/sphinx/source/index.rst18
-rw-r--r--docs/sphinx/source/pmt/index.rst2
-rw-r--r--docs/sphinx/source/trellis/index.rst4
-rw-r--r--gnuradio-runtime/CMakeLists.txt40
-rw-r--r--gnuradio-runtime/ctrlport.conf.example4
-rwxr-xr-xgnuradio-runtime/examples/mp-sched/affinity_set.py4
-rw-r--r--gnuradio-runtime/gr_log_default.conf12
-rw-r--r--gnuradio-runtime/include/gnuradio/basic_block.h2
-rw-r--r--gnuradio-runtime/include/gnuradio/block_detail.h4
-rw-r--r--gnuradio-runtime/include/gnuradio/fxpt_vco.h2
-rw-r--r--gnuradio-runtime/include/gnuradio/ice_application_base.h50
-rw-r--r--gnuradio-runtime/include/gnuradio/ice_server_template.h14
-rw-r--r--gnuradio-runtime/include/gnuradio/logger.h.in86
-rw-r--r--gnuradio-runtime/include/gnuradio/messages/msg_passing.h2
-rw-r--r--gnuradio-runtime/include/gnuradio/messages/msg_producer.h2
-rw-r--r--gnuradio-runtime/include/gnuradio/prefs.h1
-rw-r--r--gnuradio-runtime/include/gnuradio/pycallback_object.h26
-rw-r--r--gnuradio-runtime/include/gnuradio/realtime.h2
-rw-r--r--gnuradio-runtime/include/gnuradio/rpcmanager.h6
-rw-r--r--gnuradio-runtime/include/gnuradio/rpcmanager_base.h4
-rw-r--r--gnuradio-runtime/include/gnuradio/rpcpmtconverters_ice.h6
-rw-r--r--gnuradio-runtime/include/gnuradio/rpcserver_aggregator.h4
-rw-r--r--gnuradio-runtime/include/gnuradio/rpcserver_base.h4
-rw-r--r--gnuradio-runtime/include/gnuradio/rpcserver_booter_aggregator.h4
-rw-r--r--gnuradio-runtime/include/gnuradio/rpcserver_booter_base.h4
-rw-r--r--gnuradio-runtime/include/gnuradio/rpcserver_booter_ice.h4
-rw-r--r--gnuradio-runtime/include/gnuradio/rpcserver_ice.h8
-rw-r--r--gnuradio-runtime/include/gnuradio/rpcserver_selector.h4
-rw-r--r--gnuradio-runtime/include/gnuradio/tags.h2
-rw-r--r--gnuradio-runtime/include/gnuradio/thread/thread.h4
-rw-r--r--gnuradio-runtime/include/pmt/pmt.h3
-rw-r--r--gnuradio-runtime/lib/CMakeLists.txt16
-rw-r--r--gnuradio-runtime/lib/block.cc14
-rw-r--r--gnuradio-runtime/lib/block_detail.cc8
-rw-r--r--gnuradio-runtime/lib/block_executor.cc8
-rw-r--r--gnuradio-runtime/lib/block_gateway_impl.cc2
-rw-r--r--gnuradio-runtime/lib/circular_file.cc2
-rw-r--r--gnuradio-runtime/lib/constants.cc.in6
-rw-r--r--gnuradio-runtime/lib/controlport/CMakeLists.txt2
-rw-r--r--gnuradio-runtime/lib/controlport/ICE_LICENSE30
-rw-r--r--gnuradio-runtime/lib/controlport/frontend.ice10
-rw-r--r--gnuradio-runtime/lib/controlport/gnuradio.ice26
-rw-r--r--gnuradio-runtime/lib/controlport/rpcmanager.cc2
-rw-r--r--gnuradio-runtime/lib/controlport/rpcserver_booter_aggregator.cc2
-rw-r--r--gnuradio-runtime/lib/controlport/rpcserver_booter_ice.cc4
-rw-r--r--gnuradio-runtime/lib/controlport/rpcserver_ice.cc6
-rw-r--r--gnuradio-runtime/lib/controlport/rpcserver_selector.cc2
-rw-r--r--gnuradio-runtime/lib/flat_flowgraph.h2
-rw-r--r--gnuradio-runtime/lib/hier_block2_detail.cc6
-rw-r--r--gnuradio-runtime/lib/logger.cc15
-rw-r--r--gnuradio-runtime/lib/math/qa_fast_atan2f.cc12
-rw-r--r--gnuradio-runtime/lib/math/qa_sincos.cc12
-rw-r--r--gnuradio-runtime/lib/math/qa_sincos.h2
-rw-r--r--gnuradio-runtime/lib/messages/msg_queue.cc2
-rw-r--r--gnuradio-runtime/lib/msg_handler.cc2
-rw-r--r--gnuradio-runtime/lib/pmt/CMakeLists.txt19
-rw-r--r--gnuradio-runtime/lib/pmt/pmt.cc9
-rw-r--r--gnuradio-runtime/lib/pmt/pmt_serialize.cc8
-rw-r--r--gnuradio-runtime/lib/pmt/qa_pmt_prims.cc4
-rw-r--r--gnuradio-runtime/lib/pmt/unv_template.cc.t2
-rw-r--r--gnuradio-runtime/lib/prefs.cc16
-rw-r--r--gnuradio-runtime/lib/qa_logger.cc8
-rw-r--r--gnuradio-runtime/lib/qa_logger.h10
-rw-r--r--gnuradio-runtime/lib/realtime.cc2
-rw-r--r--gnuradio-runtime/lib/scheduler_tpb.cc6
-rw-r--r--gnuradio-runtime/lib/test.cc4
-rw-r--r--gnuradio-runtime/lib/test.h2
-rw-r--r--gnuradio-runtime/lib/thread/thread.cc44
-rw-r--r--gnuradio-runtime/lib/tpb_thread_body.cc45
-rw-r--r--gnuradio-runtime/lib/vmcircbuf.cc2
-rw-r--r--gnuradio-runtime/lib/vmcircbuf_sysv_shm.cc10
-rw-r--r--gnuradio-runtime/python/gnuradio/ctrlport/CMakeLists.txt10
-rw-r--r--gnuradio-runtime/python/gnuradio/ctrlport/GrDataPlotter.py6
-rw-r--r--gnuradio-runtime/python/gnuradio/ctrlport/IceRadioClient.py2
-rw-r--r--gnuradio-runtime/python/gnuradio/ctrlport/__init__.py8
-rwxr-xr-xgnuradio-runtime/python/gnuradio/ctrlport/gr-ctrlport-curses6
-rwxr-xr-xgnuradio-runtime/python/gnuradio/ctrlport/gr-ctrlport-monitor44
-rwxr-xr-xgnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitor30
-rw-r--r--gnuradio-runtime/python/gnuradio/gr/packet_utils.py10
-rw-r--r--gnuradio-runtime/python/gnuradio/gr/prefs.py127
-rw-r--r--gnuradio-runtime/python/gnuradio/gru/socket_stuff.py8
-rw-r--r--gnuradio-runtime/python/pmt/__init__.py5
-rw-r--r--gnuradio-runtime/python/pmt/pmt_to_python.py11
-rwxr-xr-xgnuradio-runtime/python/pmt/qa_pmt_to_python.py2
-rw-r--r--gnuradio-runtime/swig/CMakeLists.txt6
-rw-r--r--gnuradio-runtime/swig/buffer.i2
-rw-r--r--gnuradio-runtime/swig/pmt_swig.i6
-rw-r--r--gnuradio-runtime/swig/prefs.i2
-rw-r--r--gr-analog/CMakeLists.txt8
-rw-r--r--gr-analog/doc/CMakeLists.txt8
-rw-r--r--gr-analog/doc/README.analog2
-rw-r--r--gr-analog/grc/analog_block_tree.xml8
-rw-r--r--gr-analog/include/gnuradio/analog/CMakeLists.txt4
-rw-r--r--gr-analog/include/gnuradio/analog/agc.h2
-rw-r--r--gr-analog/include/gnuradio/analog/agc2.h2
-rw-r--r--gr-analog/include/gnuradio/analog/agc2_cc.h4
-rw-r--r--gr-analog/include/gnuradio/analog/agc2_ff.h4
-rw-r--r--gr-analog/include/gnuradio/analog/agc3_cc.h8
-rw-r--r--gr-analog/include/gnuradio/analog/agc_cc.h4
-rw-r--r--gr-analog/include/gnuradio/analog/agc_ff.h6
-rw-r--r--gr-analog/include/gnuradio/analog/cpfsk_bc.h4
-rw-r--r--gr-analog/include/gnuradio/analog/cpm.h2
-rw-r--r--gr-analog/include/gnuradio/analog/ctcss_squelch_ff.h2
-rw-r--r--gr-analog/include/gnuradio/analog/dpll_bb.h4
-rw-r--r--gr-analog/include/gnuradio/analog/feedforward_agc_cc.h2
-rw-r--r--gr-analog/include/gnuradio/analog/fmdet_cf.h2
-rw-r--r--gr-analog/include/gnuradio/analog/frequency_modulator_fc.h2
-rw-r--r--gr-analog/include/gnuradio/analog/noise_source_X.h.t4
-rw-r--r--gr-analog/include/gnuradio/analog/noise_type.h2
-rw-r--r--gr-analog/include/gnuradio/analog/phase_modulator_fc.h2
-rw-r--r--gr-analog/include/gnuradio/analog/pll_carriertracking_cc.h2
-rw-r--r--gr-analog/include/gnuradio/analog/pll_freqdet_cf.h4
-rw-r--r--gr-analog/include/gnuradio/analog/pll_refout_cc.h6
-rw-r--r--gr-analog/include/gnuradio/analog/probe_avg_mag_sqrd_c.h2
-rw-r--r--gr-analog/include/gnuradio/analog/probe_avg_mag_sqrd_cf.h2
-rw-r--r--gr-analog/include/gnuradio/analog/probe_avg_mag_sqrd_f.h2
-rw-r--r--gr-analog/include/gnuradio/analog/pwr_squelch_cc.h4
-rw-r--r--gr-analog/include/gnuradio/analog/pwr_squelch_ff.h4
-rw-r--r--gr-analog/include/gnuradio/analog/quadrature_demod_cf.h2
-rw-r--r--gr-analog/include/gnuradio/analog/rail_ff.h2
-rw-r--r--gr-analog/include/gnuradio/analog/sig_source_X.h.t2
-rw-r--r--gr-analog/include/gnuradio/analog/simple_squelch_cc.h2
-rw-r--r--gr-analog/lib/CMakeLists.txt28
-rw-r--r--gr-analog/lib/agc3_cc_impl.cc8
-rw-r--r--gr-analog/lib/cpfsk_bc_impl.cc2
-rw-r--r--gr-analog/lib/cpfsk_bc_impl.h2
-rw-r--r--gr-analog/lib/ctcss_squelch_ff_impl.cc2
-rw-r--r--gr-analog/lib/ctcss_squelch_ff_impl.h2
-rw-r--r--gr-analog/lib/dpll_bb_impl.h4
-rw-r--r--gr-analog/lib/fastnoise_source_X_impl.cc.t8
-rw-r--r--gr-analog/lib/feedforward_agc_cc_impl.cc2
-rw-r--r--gr-analog/lib/frequency_modulator_fc_impl.h4
-rw-r--r--gr-analog/lib/noise_source_X_impl.cc.t4
-rw-r--r--gr-analog/lib/pll_carriertracking_cc_impl.h2
-rw-r--r--gr-analog/lib/pll_freqdet_cf_impl.h2
-rw-r--r--gr-analog/lib/pll_refout_cc_impl.cc2
-rw-r--r--gr-analog/lib/pll_refout_cc_impl.h2
-rw-r--r--gr-analog/lib/pwr_squelch_cc_impl.cc2
-rw-r--r--gr-analog/lib/pwr_squelch_cc_impl.h4
-rw-r--r--gr-analog/lib/pwr_squelch_ff_impl.h4
-rw-r--r--gr-analog/lib/quadrature_demod_cf_impl.cc2
-rw-r--r--gr-analog/lib/quadrature_demod_cf_impl.h2
-rw-r--r--gr-analog/lib/rail_ff_impl.cc4
-rw-r--r--gr-analog/lib/rail_ff_impl.h2
-rw-r--r--gr-analog/lib/sig_source_X_impl.cc.t4
-rw-r--r--gr-analog/lib/simple_squelch_cc_impl.cc2
-rw-r--r--gr-analog/lib/simple_squelch_cc_impl.h2
-rw-r--r--gr-analog/lib/squelch_base_cc_impl.cc14
-rw-r--r--gr-analog/lib/squelch_base_ff_impl.cc16
-rw-r--r--gr-analog/python/analog/__init__.py10
-rwxr-xr-xgr-analog/python/analog/qa_agc.py2
-rwxr-xr-xgr-analog/python/analog/qa_cpfsk.py2
-rwxr-xr-xgr-analog/python/analog/qa_ctcss_squelch.py2
-rwxr-xr-xgr-analog/python/analog/qa_dpll.py2
-rwxr-xr-xgr-analog/python/analog/qa_phase_modulator.py4
-rwxr-xr-xgr-analog/python/analog/qa_pwr_squelch.py4
-rwxr-xr-xgr-analog/python/analog/qa_quadrature_demod.py4
-rwxr-xr-xgr-analog/python/analog/qa_rail_ff.py2
-rwxr-xr-xgr-analog/python/analog/qa_simple_squelch.py2
-rw-r--r--gr-analog/swig/analog_swig.i8
-rw-r--r--gr-atsc/lib/CMakeLists.txt13
-rw-r--r--gr-atsc/lib/atsc_bit_timing_loop.cc2
-rwxr-xr-xgr-atsc/python/atsc/atsc_rx.py6
-rw-r--r--gr-audio/examples/c++/CMakeLists.txt2
-rw-r--r--gr-audio/lib/CMakeLists.txt13
-rw-r--r--gr-audio/lib/alsa/alsa_sink.cc2
-rw-r--r--gr-audio/lib/jack/jack_sink.cc2
-rw-r--r--gr-audio/lib/jack/jack_sink.h2
-rw-r--r--gr-audio/lib/jack/jack_source.cc6
-rw-r--r--gr-audio/lib/jack/jack_source.h6
-rw-r--r--gr-audio/lib/oss/oss_sink.h2
-rw-r--r--gr-audio/lib/oss/oss_source.h2
-rw-r--r--gr-audio/lib/osx/gr-audio-osx.conf4
-rw-r--r--gr-audio/lib/osx/osx_common.h12
-rw-r--r--gr-audio/lib/osx/osx_source.cc6
-rw-r--r--gr-audio/lib/portaudio/portaudio_sink.cc2
-rw-r--r--gr-audio/lib/portaudio/portaudio_source.cc2
-rw-r--r--gr-audio/lib/windows/windows_sink.cc4
-rw-r--r--gr-audio/lib/windows/windows_source.cc2
-rw-r--r--gr-blocks/doc/CMakeLists.txt8
-rw-r--r--gr-blocks/doc/README.blocks2
-rw-r--r--gr-blocks/examples/ctrlport/pfb_sync_test-qt.grc2
-rw-r--r--gr-blocks/examples/metadata/file_metadata_source.grc2
-rw-r--r--gr-blocks/grc/blocks_block_tree.xml8
-rw-r--r--gr-blocks/grc/blocks_ctrlport_performance.xml8
-rw-r--r--gr-blocks/grc/blocks_ctrlport_probe2_c.xml10
-rw-r--r--gr-blocks/grc/blocks_ctrlport_probe2_x.xml10
-rw-r--r--gr-blocks/grc/blocks_ctrlport_probe_c.xml8
-rw-r--r--gr-blocks/grc/blocks_ctrlport_viewer.xml8
-rw-r--r--gr-blocks/grc/blocks_message_strobe.xml2
-rw-r--r--gr-blocks/grc/blocks_message_strobe_random.xml4
-rw-r--r--gr-blocks/grc/blocks_tags_strobe.xml2
-rw-r--r--gr-blocks/include/gnuradio/blocks/abs_XX.h.t4
-rw-r--r--gr-blocks/include/gnuradio/blocks/add_XX.h.t4
-rw-r--r--gr-blocks/include/gnuradio/blocks/add_const_XX.h.t6
-rw-r--r--gr-blocks/include/gnuradio/blocks/add_const_vXX.h.t6
-rw-r--r--gr-blocks/include/gnuradio/blocks/and_XX.h.t2
-rw-r--r--gr-blocks/include/gnuradio/blocks/and_const_XX.h.t6
-rw-r--r--gr-blocks/include/gnuradio/blocks/char_to_float.h2
-rw-r--r--gr-blocks/include/gnuradio/blocks/char_to_short.h9
-rw-r--r--gr-blocks/include/gnuradio/blocks/conjugate_cc.h2
-rw-r--r--gr-blocks/include/gnuradio/blocks/control_loop.h4
-rw-r--r--gr-blocks/include/gnuradio/blocks/count_bits.h2
-rw-r--r--gr-blocks/include/gnuradio/blocks/delay.h3
-rw-r--r--gr-blocks/include/gnuradio/blocks/divide_XX.h.t2
-rw-r--r--gr-blocks/include/gnuradio/blocks/endian_swap.h2
-rw-r--r--gr-blocks/include/gnuradio/blocks/file_descriptor_sink.h3
-rw-r--r--gr-blocks/include/gnuradio/blocks/file_descriptor_source.h3
-rw-r--r--gr-blocks/include/gnuradio/blocks/float_to_uchar.h2
-rw-r--r--gr-blocks/include/gnuradio/blocks/integrate_XX.h.t4
-rw-r--r--gr-blocks/include/gnuradio/blocks/interleaved_short_to_complex.h2
-rw-r--r--gr-blocks/include/gnuradio/blocks/keep_m_in_n.h2
-rw-r--r--gr-blocks/include/gnuradio/blocks/keep_one_in_n.h2
-rw-r--r--gr-blocks/include/gnuradio/blocks/message_burst_source.h8
-rw-r--r--gr-blocks/include/gnuradio/blocks/message_debug.h4
-rw-r--r--gr-blocks/include/gnuradio/blocks/moving_average_XX.h.t2
-rw-r--r--gr-blocks/include/gnuradio/blocks/multiply_const_XX.h.t6
-rw-r--r--gr-blocks/include/gnuradio/blocks/multiply_const_cc.h6
-rw-r--r--gr-blocks/include/gnuradio/blocks/multiply_const_ff.h6
-rw-r--r--gr-blocks/include/gnuradio/blocks/multiply_const_vXX.h.t6
-rw-r--r--gr-blocks/include/gnuradio/blocks/nlog10_ff.h2
-rw-r--r--gr-blocks/include/gnuradio/blocks/not_XX.h.t2
-rw-r--r--gr-blocks/include/gnuradio/blocks/or_XX.h.t2
-rw-r--r--gr-blocks/include/gnuradio/blocks/pack_k_bits_bb.h10
-rw-r--r--gr-blocks/include/gnuradio/blocks/peak_detector_XX.h.t2
-rw-r--r--gr-blocks/include/gnuradio/blocks/probe_rate.h2
-rw-r--r--gr-blocks/include/gnuradio/blocks/probe_signal_X.h.t2
-rw-r--r--gr-blocks/include/gnuradio/blocks/probe_signal_vX.h.t2
-rw-r--r--gr-blocks/include/gnuradio/blocks/repeat.h2
-rw-r--r--gr-blocks/include/gnuradio/blocks/rotator.h2
-rw-r--r--gr-blocks/include/gnuradio/blocks/sample_and_hold_XX.h.t2
-rw-r--r--gr-blocks/include/gnuradio/blocks/short_to_char.h8
-rw-r--r--gr-blocks/include/gnuradio/blocks/stream_mux.h2
-rw-r--r--gr-blocks/include/gnuradio/blocks/stretch_ff.h4
-rw-r--r--gr-blocks/include/gnuradio/blocks/sub_XX.h.t2
-rw-r--r--gr-blocks/include/gnuradio/blocks/tagged_file_sink.h2
-rw-r--r--gr-blocks/include/gnuradio/blocks/tagged_stream_multiply_length.h8
-rw-r--r--gr-blocks/include/gnuradio/blocks/tagged_stream_mux.h8
-rw-r--r--gr-blocks/include/gnuradio/blocks/tsb_vector_sink_X.h.t10
-rw-r--r--gr-blocks/include/gnuradio/blocks/unpack_k_bits_bb.h4
-rw-r--r--gr-blocks/include/gnuradio/blocks/vector_insert_X.h.t10
-rw-r--r--gr-blocks/include/gnuradio/blocks/wavfile.h2
-rw-r--r--gr-blocks/include/gnuradio/blocks/xor_XX.h.t2
-rw-r--r--gr-blocks/lib/CMakeLists.txt15
-rw-r--r--gr-blocks/lib/add_XX_impl.cc.t6
-rw-r--r--gr-blocks/lib/add_const_XX_impl.cc.t6
-rw-r--r--gr-blocks/lib/add_const_vXX_impl.cc.t6
-rw-r--r--gr-blocks/lib/add_ff_impl.cc2
-rw-r--r--gr-blocks/lib/add_ff_impl.h2
-rw-r--r--gr-blocks/lib/and_XX_impl.cc.t6
-rw-r--r--gr-blocks/lib/and_const_XX_impl.cc.t6
-rw-r--r--gr-blocks/lib/annotator_raw_impl.cc12
-rw-r--r--gr-blocks/lib/char_to_float_impl.cc2
-rw-r--r--gr-blocks/lib/char_to_float_impl.h2
-rw-r--r--gr-blocks/lib/char_to_short_impl.h2
-rw-r--r--gr-blocks/lib/complex_to_arg_impl.cc4
-rw-r--r--gr-blocks/lib/complex_to_arg_impl.h2
-rw-r--r--gr-blocks/lib/complex_to_float_impl.cc2
-rw-r--r--gr-blocks/lib/complex_to_float_impl.h2
-rw-r--r--gr-blocks/lib/complex_to_imag_impl.cc2
-rw-r--r--gr-blocks/lib/complex_to_imag_impl.h2
-rw-r--r--gr-blocks/lib/complex_to_interleaved_short_impl.cc4
-rw-r--r--gr-blocks/lib/complex_to_interleaved_short_impl.h2
-rw-r--r--gr-blocks/lib/complex_to_mag_impl.cc2
-rw-r--r--gr-blocks/lib/complex_to_mag_impl.h2
-rw-r--r--gr-blocks/lib/complex_to_mag_squared_impl.cc2
-rw-r--r--gr-blocks/lib/complex_to_mag_squared_impl.h2
-rw-r--r--gr-blocks/lib/complex_to_real_impl.cc2
-rw-r--r--gr-blocks/lib/complex_to_real_impl.h2
-rw-r--r--gr-blocks/lib/conjugate_cc_impl.cc4
-rw-r--r--gr-blocks/lib/ctrlport_probe2_b_impl.cc8
-rw-r--r--gr-blocks/lib/ctrlport_probe2_c_impl.cc8
-rw-r--r--gr-blocks/lib/ctrlport_probe2_f_impl.cc8
-rw-r--r--gr-blocks/lib/ctrlport_probe2_i_impl.cc8
-rw-r--r--gr-blocks/lib/ctrlport_probe2_s_impl.cc8
-rw-r--r--gr-blocks/lib/ctrlport_probe_c_impl.cc6
-rw-r--r--gr-blocks/lib/deinterleave_impl.cc10
-rw-r--r--gr-blocks/lib/deinterleave_impl.h4
-rw-r--r--gr-blocks/lib/divide_XX_impl.cc.t6
-rw-r--r--gr-blocks/lib/file_meta_sink_impl.cc2
-rw-r--r--gr-blocks/lib/file_meta_source_impl.cc2
-rw-r--r--gr-blocks/lib/file_source_impl.cc2
-rw-r--r--gr-blocks/lib/file_source_impl.h2
-rw-r--r--gr-blocks/lib/float_to_char_impl.cc2
-rw-r--r--gr-blocks/lib/float_to_char_impl.h2
-rw-r--r--gr-blocks/lib/float_to_complex_impl.cc4
-rw-r--r--gr-blocks/lib/float_to_complex_impl.h2
-rw-r--r--gr-blocks/lib/float_to_int_impl.cc6
-rw-r--r--gr-blocks/lib/float_to_int_impl.h2
-rw-r--r--gr-blocks/lib/float_to_short_impl.h2
-rw-r--r--gr-blocks/lib/float_to_uchar_impl.cc4
-rw-r--r--gr-blocks/lib/float_to_uchar_impl.h2
-rw-r--r--gr-blocks/lib/int_to_float_impl.cc2
-rw-r--r--gr-blocks/lib/int_to_float_impl.h2
-rw-r--r--gr-blocks/lib/integrate_XX_impl.cc.t2
-rw-r--r--gr-blocks/lib/interleave_impl.cc16
-rw-r--r--gr-blocks/lib/interleave_impl.h2
-rw-r--r--gr-blocks/lib/interleaved_char_to_complex_impl.cc4
-rw-r--r--gr-blocks/lib/interleaved_char_to_complex_impl.h2
-rw-r--r--gr-blocks/lib/interleaved_short_to_complex_impl.cc8
-rw-r--r--gr-blocks/lib/interleaved_short_to_complex_impl.h4
-rw-r--r--gr-blocks/lib/keep_m_in_n_impl.cc8
-rw-r--r--gr-blocks/lib/keep_m_in_n_impl.h6
-rw-r--r--gr-blocks/lib/keep_one_in_n_impl.cc4
-rw-r--r--gr-blocks/lib/keep_one_in_n_impl.h4
-rw-r--r--gr-blocks/lib/message_burst_source_impl.cc16
-rw-r--r--gr-blocks/lib/message_burst_source_impl.h8
-rw-r--r--gr-blocks/lib/message_debug_impl.cc4
-rw-r--r--gr-blocks/lib/message_sink_impl.cc8
-rw-r--r--gr-blocks/lib/message_source_impl.cc10
-rw-r--r--gr-blocks/lib/message_strobe_random_impl.cc6
-rw-r--r--gr-blocks/lib/multiply_XX_impl.cc.t6
-rw-r--r--gr-blocks/lib/multiply_cc_impl.cc2
-rw-r--r--gr-blocks/lib/multiply_cc_impl.h2
-rw-r--r--gr-blocks/lib/multiply_conjugate_cc_impl.cc4
-rw-r--r--gr-blocks/lib/multiply_conjugate_cc_impl.h2
-rw-r--r--gr-blocks/lib/multiply_const_XX_impl.cc.t6
-rw-r--r--gr-blocks/lib/multiply_const_vXX_impl.cc.t6
-rw-r--r--gr-blocks/lib/multiply_ff_impl.cc2
-rw-r--r--gr-blocks/lib/multiply_ff_impl.h2
-rw-r--r--gr-blocks/lib/nlog10_ff_impl.h2
-rw-r--r--gr-blocks/lib/or_XX_impl.cc.t6
-rw-r--r--gr-blocks/lib/packed_to_unpacked_XX_impl.cc.t2
-rw-r--r--gr-blocks/lib/patterned_interleaver_impl.cc6
-rw-r--r--gr-blocks/lib/patterned_interleaver_impl.h2
-rw-r--r--gr-blocks/lib/pdu.cc2
-rw-r--r--gr-blocks/lib/pdu_filter_impl.cc4
-rw-r--r--gr-blocks/lib/pdu_remove_impl.cc4
-rw-r--r--gr-blocks/lib/pdu_set_impl.cc4
-rw-r--r--gr-blocks/lib/pdu_to_tagged_stream_impl.cc10
-rw-r--r--gr-blocks/lib/pdu_to_tagged_stream_impl.h2
-rw-r--r--gr-blocks/lib/probe_rate_impl.cc6
-rw-r--r--gr-blocks/lib/qa_rotator.h2
-rw-r--r--gr-blocks/lib/random_pdu_impl.cc4
-rw-r--r--gr-blocks/lib/regenerate_bb_impl.cc2
-rw-r--r--gr-blocks/lib/repeat_impl.cc6
-rw-r--r--gr-blocks/lib/rms_cf_impl.h2
-rw-r--r--gr-blocks/lib/rotator_cc_impl.h2
-rw-r--r--gr-blocks/lib/short_to_char_impl.cc4
-rw-r--r--gr-blocks/lib/short_to_char_impl.h2
-rw-r--r--gr-blocks/lib/short_to_float_impl.cc2
-rw-r--r--gr-blocks/lib/short_to_float_impl.h2
-rw-r--r--gr-blocks/lib/socket_pdu_impl.cc28
-rw-r--r--gr-blocks/lib/socket_pdu_impl.h2
-rw-r--r--gr-blocks/lib/stream_pdu_base.cc16
-rw-r--r--gr-blocks/lib/stream_pdu_base.h2
-rw-r--r--gr-blocks/lib/stream_to_streams_impl.cc4
-rw-r--r--gr-blocks/lib/stream_to_tagged_stream_impl.cc8
-rw-r--r--gr-blocks/lib/stream_to_vector_impl.cc10
-rw-r--r--gr-blocks/lib/streams_to_stream_impl.cc8
-rw-r--r--gr-blocks/lib/streams_to_vector_impl.cc4
-rw-r--r--gr-blocks/lib/stretch_ff_impl.h4
-rw-r--r--gr-blocks/lib/sub_XX_impl.cc.t6
-rw-r--r--gr-blocks/lib/tag_debug_impl.cc4
-rw-r--r--gr-blocks/lib/tagged_stream_multiply_length_impl.cc4
-rw-r--r--gr-blocks/lib/tagged_stream_to_pdu_impl.h2
-rw-r--r--gr-blocks/lib/tags_strobe_impl.cc6
-rw-r--r--gr-blocks/lib/tcp_connection.cc2
-rw-r--r--gr-blocks/lib/tcp_connection.h6
-rw-r--r--gr-blocks/lib/tsb_vector_sink_X_impl.cc.t10
-rw-r--r--gr-blocks/lib/tsb_vector_sink_X_impl.h.t10
-rw-r--r--gr-blocks/lib/tuntap_pdu_impl.cc4
-rw-r--r--gr-blocks/lib/uchar_to_float_impl.cc4
-rw-r--r--gr-blocks/lib/uchar_to_float_impl.h2
-rw-r--r--gr-blocks/lib/udp_source_impl.cc2
-rw-r--r--gr-blocks/lib/unpack_k_bits.cc2
-rw-r--r--gr-blocks/lib/vector_insert_X_impl.cc.t16
-rw-r--r--gr-blocks/lib/vector_insert_X_impl.h.t8
-rw-r--r--gr-blocks/lib/vector_map_impl.cc2
-rw-r--r--gr-blocks/lib/vector_sink_X_impl.cc.t2
-rw-r--r--gr-blocks/lib/vector_to_stream_impl.cc6
-rw-r--r--gr-blocks/lib/vector_to_streams_impl.cc4
-rw-r--r--gr-blocks/lib/wavfile_sink_impl.cc2
-rw-r--r--gr-blocks/lib/xor_XX_impl.cc.t6
-rw-r--r--gr-blocks/python/blocks/CMakeLists.txt2
-rw-r--r--gr-blocks/python/blocks/__init__.py2
-rw-r--r--gr-blocks/python/blocks/qa_burst_tagger.py2
-rwxr-xr-xgr-blocks/python/blocks/qa_cpp_py_binding.py4
-rwxr-xr-xgr-blocks/python/blocks/qa_cpp_py_binding_set.py2
-rw-r--r--gr-blocks/python/blocks/qa_endian_swap.py2
-rw-r--r--gr-blocks/python/blocks/qa_file_metadata.py4
-rw-r--r--gr-blocks/python/blocks/qa_hier_block2_message_connections.py4
-rwxr-xr-xgr-blocks/python/blocks/qa_keep_one_in_n.py1
-rwxr-xr-xgr-blocks/python/blocks/qa_message.py2
-rwxr-xr-xgr-blocks/python/blocks/qa_pack_k_bits.py2
-rwxr-xr-xgr-blocks/python/blocks/qa_patterned_interleaver.py6
-rw-r--r--gr-blocks/python/blocks/qa_python_message_passing.py16
-rw-r--r--gr-blocks/python/blocks/qa_sample_and_hold.py2
-rwxr-xr-xgr-blocks/python/blocks/qa_stretch.py2
-rwxr-xr-xgr-blocks/python/blocks/qa_tag_gate.py10
-rw-r--r--gr-blocks/python/blocks/qa_tags_strobe.py6
-rwxr-xr-xgr-blocks/python/blocks/qa_tsb_vector_sink_X.py12
-rwxr-xr-xgr-blocks/python/blocks/qa_vector_insert.py10
-rw-r--r--gr-blocks/python/blocks/qa_vector_map.py6
-rw-r--r--gr-blocks/python/blocks/stream_to_vector_decimator.py8
-rw-r--r--gr-blocks/swig/CMakeLists.txt2
-rw-r--r--gr-channels/doc/channels.dox4
-rw-r--r--gr-channels/examples/channel_tone_response.grc4
-rw-r--r--gr-channels/examples/demo_gmsk.grc4
-rw-r--r--gr-channels/examples/demo_ofdm.grc4
-rw-r--r--gr-channels/examples/demo_qam.grc4
-rw-r--r--gr-channels/examples/demo_quantization.grc4
-rw-r--r--gr-channels/grc/channels_block_tree.xml8
-rw-r--r--gr-channels/grc/channels_dynamic_channel_model.xml2
-rw-r--r--gr-channels/grc/channels_fading_model.xml2
-rw-r--r--gr-channels/grc/channels_selective_fading_model.xml10
-rw-r--r--gr-channels/include/gnuradio/channels/cfo_model.h4
-rw-r--r--gr-channels/include/gnuradio/channels/channel_model.h2
-rw-r--r--gr-channels/include/gnuradio/channels/channel_model2.h2
-rw-r--r--gr-channels/include/gnuradio/channels/dynamic_channel_model.h8
-rw-r--r--gr-channels/include/gnuradio/channels/fading_model.h6
-rw-r--r--gr-channels/include/gnuradio/channels/selective_fading_model.h8
-rw-r--r--gr-channels/include/gnuradio/channels/sro_model.h4
-rw-r--r--gr-channels/lib/CMakeLists.txt20
-rw-r--r--gr-channels/lib/cfo_model_impl.cc8
-rw-r--r--gr-channels/lib/cfo_model_impl.h2
-rw-r--r--gr-channels/lib/channel_model2_impl.cc6
-rw-r--r--gr-channels/lib/channel_model2_impl.h2
-rw-r--r--gr-channels/lib/channel_model_impl.cc4
-rw-r--r--gr-channels/lib/channel_model_impl.h2
-rw-r--r--gr-channels/lib/dynamic_channel_model_impl.cc6
-rw-r--r--gr-channels/lib/dynamic_channel_model_impl.h6
-rw-r--r--gr-channels/lib/fading_model_impl.cc4
-rw-r--r--gr-channels/lib/flat_fader_impl.cc14
-rw-r--r--gr-channels/lib/flat_fader_impl.h22
-rw-r--r--gr-channels/lib/selective_fading_model_impl.cc12
-rw-r--r--gr-channels/lib/selective_fading_model_impl.h6
-rw-r--r--gr-channels/lib/sro_model_impl.cc4
-rw-r--r--gr-channels/lib/sro_model_impl.h2
-rwxr-xr-xgr-channels/python/channels/qa_channel_model.py6
-rw-r--r--gr-channels/python/channels/qa_fading_model.py6
-rw-r--r--gr-comedi/CMakeLists.txt8
-rw-r--r--gr-comedi/include/gnuradio/comedi/sink_s.h2
-rw-r--r--gr-comedi/include/gnuradio/comedi/source_s.h2
-rw-r--r--gr-comedi/lib/CMakeLists.txt13
-rw-r--r--gr-comedi/lib/sink_s_impl.h2
-rw-r--r--gr-comedi/lib/source_s_impl.cc4
-rw-r--r--gr-comedi/lib/source_s_impl.h2
-rw-r--r--gr-comedi/python/comedi/__init__.py10
-rw-r--r--gr-digital/examples/demod/gfsk_loopback.grc4
-rw-r--r--gr-digital/examples/demod/gmsk_loopback.grc4
-rw-r--r--gr-digital/examples/demod/mpsk_demod.grc4
-rw-r--r--gr-digital/examples/demod/test_corr_and_sync.grc8
-rw-r--r--gr-digital/examples/demod/uhd_corr_and_sync_rx.grc6
-rw-r--r--gr-digital/lib/CMakeLists.txt20
-rw-r--r--gr-digital/python/digital/constellation_map_generator.py14
-rwxr-xr-xgr-digital/python/digital/psk_constellations.py25
-rwxr-xr-xgr-digital/python/digital/qam_constellations.py24
-rw-r--r--gr-fec/doc/CMakeLists.txt8
-rw-r--r--gr-fec/doc/README.fec2
-rw-r--r--gr-fec/examples/fecapi_async_decoders.grc4
-rw-r--r--gr-fec/examples/fecapi_async_packed_decoders.grc2
-rw-r--r--gr-fec/examples/fecapi_async_to_stream.grc4
-rw-r--r--gr-fec/examples/fecapi_decoders.grc2
-rw-r--r--gr-fec/examples/fecapi_encoders.grc4
-rw-r--r--gr-fec/examples/fecapi_tagged_decoders.grc2
-rw-r--r--gr-fec/examples/fecapi_tagged_encoders.grc8
-rw-r--r--gr-fec/include/gnuradio/fec/decode_ccsds_27_fb.h4
-rw-r--r--gr-fec/include/gnuradio/fec/encode_ccsds_27_bb.h4
-rw-r--r--gr-fec/lib/CMakeLists.txt13
-rw-r--r--gr-fec/lib/ber_tools.cc11
-rw-r--r--gr-fec/lib/generic_decoder.cc6
-rw-r--r--gr-fec/lib/generic_encoder.cc6
-rw-r--r--gr-fft/grc/fft_block_tree.xml8
-rw-r--r--gr-fft/grc/fft_ctrlport_probe_psd.xml10
-rw-r--r--gr-fft/include/gnuradio/fft/fft.h34
-rw-r--r--gr-fft/include/gnuradio/fft/fft_vcc.h2
-rw-r--r--gr-fft/include/gnuradio/fft/fft_vfc.h2
-rw-r--r--gr-fft/include/gnuradio/fft/goertzel.h10
-rw-r--r--gr-fft/include/gnuradio/fft/goertzel_fc.h4
-rw-r--r--gr-fft/include/gnuradio/fft/window.h4
-rw-r--r--gr-fft/lib/CMakeLists.txt13
-rw-r--r--gr-fft/lib/ctrlport_probe_psd_impl.cc10
-rw-r--r--gr-fft/lib/fft.cc14
-rw-r--r--gr-fft/lib/fft_vcc_fftw.cc20
-rw-r--r--gr-fft/lib/fft_vcc_fftw.h8
-rw-r--r--gr-fft/lib/fft_vfc_fftw.cc24
-rw-r--r--gr-fft/lib/fft_vfc_fftw.h10
-rw-r--r--gr-fft/lib/goertzel.cc10
-rw-r--r--gr-fft/lib/goertzel_fc_impl.cc12
-rw-r--r--gr-fft/lib/goertzel_fc_impl.h6
-rw-r--r--gr-fft/lib/window.cc6
-rw-r--r--gr-fft/python/fft/logpwrfft.py12
-rwxr-xr-xgr-filter/apps/gr_filter_design2
-rw-r--r--gr-filter/doc/filter.dox2
-rw-r--r--gr-filter/examples/channelizer_demo.grc8
-rwxr-xr-xgr-filter/examples/fft_filter_ccc.py2
-rwxr-xr-xgr-filter/examples/fir_filter_ccc.py2
-rwxr-xr-xgr-filter/examples/fir_filter_fff.py2
-rwxr-xr-xgr-filter/examples/gr_filtdes_api.py6
-rwxr-xr-xgr-filter/examples/gr_filtdes_callback.py2
-rwxr-xr-xgr-filter/examples/gr_filtdes_live_upd.py2
-rw-r--r--gr-filter/grc/filter_block_tree.xml8
-rw-r--r--gr-filter/include/gnuradio/filter/dc_blocker_cc.h2
-rw-r--r--gr-filter/include/gnuradio/filter/dc_blocker_ff.h2
-rw-r--r--gr-filter/include/gnuradio/filter/fft_filter_ccc.h2
-rw-r--r--gr-filter/include/gnuradio/filter/fft_filter_fff.h2
-rw-r--r--gr-filter/include/gnuradio/filter/filter_delay_fc.h2
-rw-r--r--gr-filter/include/gnuradio/filter/filterbank.h10
-rw-r--r--gr-filter/include/gnuradio/filter/fir_filter.h14
-rw-r--r--gr-filter/include/gnuradio/filter/fir_filter_with_buffer.h6
-rw-r--r--gr-filter/include/gnuradio/filter/firdes.h44
-rw-r--r--gr-filter/include/gnuradio/filter/fractional_interpolator_cc.h2
-rw-r--r--gr-filter/include/gnuradio/filter/fractional_interpolator_ff.h2
-rw-r--r--gr-filter/include/gnuradio/filter/fractional_resampler_cc.h2
-rw-r--r--gr-filter/include/gnuradio/filter/fractional_resampler_ff.h2
-rw-r--r--gr-filter/include/gnuradio/filter/hilbert_fc.h2
-rw-r--r--gr-filter/include/gnuradio/filter/iir_filter.h2
-rw-r--r--gr-filter/include/gnuradio/filter/iir_filter_ccc.h2
-rw-r--r--gr-filter/include/gnuradio/filter/iir_filter_ccd.h2
-rw-r--r--gr-filter/include/gnuradio/filter/iir_filter_ccf.h2
-rw-r--r--gr-filter/include/gnuradio/filter/iir_filter_ccz.h2
-rw-r--r--gr-filter/include/gnuradio/filter/iir_filter_ffd.h2
-rw-r--r--gr-filter/include/gnuradio/filter/mmse_fir_interpolator_cc.h2
-rw-r--r--gr-filter/include/gnuradio/filter/mmse_fir_interpolator_ff.h2
-rw-r--r--gr-filter/include/gnuradio/filter/pfb_arb_resampler_ccf.h8
-rw-r--r--gr-filter/include/gnuradio/filter/pfb_arb_resampler_fff.h6
-rw-r--r--gr-filter/include/gnuradio/filter/pm_remez.h2
-rw-r--r--gr-filter/include/gnuradio/filter/single_pole_iir.h2
-rw-r--r--gr-filter/include/gnuradio/filter/single_pole_iir_filter_cc.h4
-rw-r--r--gr-filter/include/gnuradio/filter/single_pole_iir_filter_ff.h4
-rw-r--r--gr-filter/lib/CMakeLists.txt18
-rw-r--r--gr-filter/lib/dc_blocker_cc_impl.cc14
-rw-r--r--gr-filter/lib/dc_blocker_cc_impl.h12
-rw-r--r--gr-filter/lib/dc_blocker_ff_impl.cc10
-rw-r--r--gr-filter/lib/dc_blocker_ff_impl.h12
-rw-r--r--gr-filter/lib/fft_filter_ccc_impl.cc12
-rw-r--r--gr-filter/lib/fft_filter_ccc_impl.h4
-rw-r--r--gr-filter/lib/fft_filter_fff_impl.cc24
-rw-r--r--gr-filter/lib/fft_filter_fff_impl.h2
-rw-r--r--gr-filter/lib/filter_delay_fc_impl.cc6
-rw-r--r--gr-filter/lib/filter_delay_fc_impl.h4
-rw-r--r--gr-filter/lib/fir_filter.cc96
-rw-r--r--gr-filter/lib/fir_filter_XXX_impl.cc.t10
-rw-r--r--gr-filter/lib/fir_filter_XXX_impl.h.t2
-rw-r--r--gr-filter/lib/fir_filter_with_buffer.cc10
-rw-r--r--gr-filter/lib/firdes.cc50
-rw-r--r--gr-filter/lib/fractional_interpolator_cc_impl.cc2
-rw-r--r--gr-filter/lib/fractional_interpolator_cc_impl.h2
-rw-r--r--gr-filter/lib/fractional_interpolator_ff_impl.cc2
-rw-r--r--gr-filter/lib/fractional_interpolator_ff_impl.h2
-rw-r--r--gr-filter/lib/fractional_resampler_cc_impl.cc2
-rw-r--r--gr-filter/lib/fractional_resampler_cc_impl.h2
-rw-r--r--gr-filter/lib/fractional_resampler_ff_impl.cc2
-rw-r--r--gr-filter/lib/fractional_resampler_ff_impl.h2
-rw-r--r--gr-filter/lib/freq_xlating_fir_filter_XXX_impl.cc.t2
-rw-r--r--gr-filter/lib/hilbert_fc_impl.cc8
-rw-r--r--gr-filter/lib/hilbert_fc_impl.h2
-rw-r--r--gr-filter/lib/iir_filter_ccc_impl.cc2
-rw-r--r--gr-filter/lib/iir_filter_ccd_impl.cc2
-rw-r--r--gr-filter/lib/iir_filter_ccf_impl.cc2
-rw-r--r--gr-filter/lib/iir_filter_ccz_impl.cc2
-rw-r--r--gr-filter/lib/iir_filter_ffd_impl.cc2
-rw-r--r--gr-filter/lib/interp_fir_filter_XXX_impl.cc.t2
-rw-r--r--gr-filter/lib/mmse_fir_interpolator_cc.cc2
-rw-r--r--gr-filter/lib/mmse_fir_interpolator_ff.cc2
-rw-r--r--gr-filter/lib/pfb_arb_resampler_ccf_impl.cc6
-rw-r--r--gr-filter/lib/pfb_arb_resampler_fff_impl.cc6
-rw-r--r--gr-filter/lib/pfb_channelizer_ccf_impl.cc4
-rw-r--r--gr-filter/lib/pfb_interpolator_ccf_impl.h2
-rw-r--r--gr-filter/lib/pfb_synthesizer_ccf_impl.h2
-rw-r--r--gr-filter/lib/pm_remez.cc60
-rw-r--r--gr-filter/lib/qa_fir_filter_with_buffer.cc4
-rw-r--r--gr-filter/lib/qa_fir_filter_with_buffer.h6
-rw-r--r--gr-filter/lib/qa_firdes.h8
-rw-r--r--gr-filter/lib/qa_mmse_fir_interpolator_cc.cc2
-rw-r--r--gr-filter/lib/qa_mmse_fir_interpolator_cc.h4
-rw-r--r--gr-filter/lib/qa_mmse_fir_interpolator_ff.cc2
-rw-r--r--gr-filter/lib/qa_mmse_fir_interpolator_ff.h2
-rw-r--r--gr-filter/lib/rational_resampler_base_XXX_impl.cc.t2
-rw-r--r--gr-filter/lib/single_pole_iir_filter_cc_impl.cc2
-rw-r--r--gr-filter/lib/single_pole_iir_filter_ff_impl.cc2
-rw-r--r--gr-filter/python/filter/CMakeLists.txt4
-rw-r--r--gr-filter/python/filter/design/api_object.py24
-rw-r--r--gr-filter/python/filter/design/filter_design.py146
-rw-r--r--gr-filter/python/filter/design/fir_design.py2
-rw-r--r--gr-filter/python/filter/gui/banditems.py10
-rw-r--r--gr-filter/python/filter/gui/idealbanditems.py112
-rw-r--r--gr-filter/python/filter/gui/polezero_plot.py54
-rw-r--r--gr-filter/python/filter/gui/pyqt_filter_stacked.ui2
-rw-r--r--gr-filter/python/filter/optfir.py10
-rwxr-xr-xgr-filter/python/filter/qa_fir_filter.py4
-rwxr-xr-xgr-filter/python/filter/qa_fractional_interpolator.py4
-rw-r--r--gr-filter/python/filter/qa_fractional_resampler.py8
-rwxr-xr-xgr-filter/python/filter/qa_freq_xlating_fft_filter.py3
-rwxr-xr-xgr-filter/python/filter/qa_hilbert.py2
-rw-r--r--gr-noaa/lib/CMakeLists.txt13
-rw-r--r--gr-noaa/lib/hrpt_pll_cf_impl.cc2
-rw-r--r--gr-noaa/python/noaa/__init__.py10
-rw-r--r--gr-pager/include/gnuradio/pager/flex_deinterleave.h2
-rw-r--r--gr-pager/include/gnuradio/pager/flex_frame.h2
-rw-r--r--gr-pager/include/gnuradio/pager/slicer_fb.h2
-rw-r--r--gr-pager/lib/CMakeLists.txt13
-rw-r--r--gr-pager/lib/flex_parse_impl.cc2
-rwxr-xr-xgr-qtgui/apps/gr_constellation_plot2
-rwxr-xr-xgr-qtgui/apps/gr_psd_plot_c2
-rwxr-xr-xgr-qtgui/apps/gr_psd_plot_f2
-rwxr-xr-xgr-qtgui/apps/gr_psd_plot_i2
-rwxr-xr-xgr-qtgui/apps/gr_spectrogram_plot_b2
-rwxr-xr-xgr-qtgui/apps/gr_spectrogram_plot_c2
-rwxr-xr-xgr-qtgui/apps/gr_spectrogram_plot_f2
-rwxr-xr-xgr-qtgui/apps/gr_spectrogram_plot_i2
-rwxr-xr-xgr-qtgui/apps/gr_spectrogram_plot_s2
-rwxr-xr-xgr-qtgui/apps/gr_time_plot_c2
-rw-r--r--gr-qtgui/apps/plot_constellation_form.py2
-rw-r--r--gr-qtgui/apps/plot_form.py6
-rw-r--r--gr-qtgui/apps/plot_psd_base.py2
-rw-r--r--gr-qtgui/apps/plot_psd_form.py2
-rw-r--r--gr-qtgui/apps/plot_spectrogram_base.py4
-rw-r--r--gr-qtgui/apps/plot_spectrogram_form.py4
-rw-r--r--gr-qtgui/apps/plot_time_base.py2
-rw-r--r--gr-qtgui/apps/plot_time_form.py2
-rw-r--r--gr-qtgui/apps/plot_time_raster_base.py2
-rw-r--r--gr-qtgui/apps/plot_time_raster_form.py4
-rwxr-xr-xgr-qtgui/examples/pyqt_histogram_f.py2
-rw-r--r--gr-qtgui/examples/qtgui_tags_viewing.grc8
-rw-r--r--gr-qtgui/grc/qtgui_const_sink_x.xml5
-rw-r--r--gr-qtgui/grc/qtgui_freq_sink_x.xml4
-rw-r--r--gr-qtgui/grc/qtgui_histogram_sink_x.xml4
-rw-r--r--gr-qtgui/grc/qtgui_sink_x.xml3
-rw-r--r--gr-qtgui/grc/qtgui_time_raster_x.xml5
-rw-r--r--gr-qtgui/grc/qtgui_time_sink_x.xml5
-rw-r--r--gr-qtgui/grc/qtgui_waterfall_sink_x.xml5
-rw-r--r--gr-qtgui/include/gnuradio/qtgui/WaterfallDisplayPlot.h2
-rw-r--r--gr-qtgui/include/gnuradio/qtgui/freq_sink_c.h16
-rw-r--r--gr-qtgui/include/gnuradio/qtgui/freq_sink_f.h16
-rw-r--r--gr-qtgui/include/gnuradio/qtgui/freqdisplayform.h4
-rw-r--r--gr-qtgui/include/gnuradio/qtgui/histogram_sink_f.h2
-rw-r--r--gr-qtgui/include/gnuradio/qtgui/plot_raster.h2
-rw-r--r--gr-qtgui/include/gnuradio/qtgui/sink_c.h14
-rw-r--r--gr-qtgui/include/gnuradio/qtgui/sink_f.h15
-rw-r--r--gr-qtgui/include/gnuradio/qtgui/timedisplayform.h4
-rw-r--r--gr-qtgui/include/gnuradio/qtgui/waterfall_sink_c.h14
-rw-r--r--gr-qtgui/include/gnuradio/qtgui/waterfall_sink_f.h14
-rw-r--r--gr-qtgui/lib/CMakeLists.txt23
-rw-r--r--gr-qtgui/lib/ConstellationDisplayPlot.cc6
-rw-r--r--gr-qtgui/lib/DisplayPlot.cc8
-rw-r--r--gr-qtgui/lib/FrequencyDisplayPlot.cc4
-rw-r--r--gr-qtgui/lib/HistogramDisplayPlot.cc6
-rw-r--r--gr-qtgui/lib/TimeDomainDisplayPlot.cc8
-rw-r--r--gr-qtgui/lib/ber_sink_b_impl.cc4
-rw-r--r--gr-qtgui/lib/const_sink_c_impl.cc4
-rw-r--r--gr-qtgui/lib/freq_sink_c_impl.cc25
-rw-r--r--gr-qtgui/lib/freq_sink_c_impl.h2
-rw-r--r--gr-qtgui/lib/freq_sink_f_impl.cc25
-rw-r--r--gr-qtgui/lib/freq_sink_f_impl.h2
-rw-r--r--gr-qtgui/lib/freqdisplayform.cc27
-rw-r--r--gr-qtgui/lib/histogram_sink_f_impl.cc3
-rw-r--r--gr-qtgui/lib/histogram_sink_f_impl.h2
-rw-r--r--gr-qtgui/lib/plot_raster.cc2
-rw-r--r--gr-qtgui/lib/sink_c_impl.cc11
-rw-r--r--gr-qtgui/lib/sink_c_impl.h2
-rw-r--r--gr-qtgui/lib/sink_f_impl.cc20
-rw-r--r--gr-qtgui/lib/sink_f_impl.h3
-rw-r--r--gr-qtgui/lib/spectrumdisplayform.cc2
-rw-r--r--gr-qtgui/lib/timeRasterGlobalData.cc4
-rw-r--r--gr-qtgui/lib/time_raster_sink_b_impl.cc3
-rw-r--r--gr-qtgui/lib/time_raster_sink_f_impl.cc3
-rw-r--r--gr-qtgui/lib/time_sink_c_impl.cc3
-rw-r--r--gr-qtgui/lib/time_sink_c_impl.h4
-rw-r--r--gr-qtgui/lib/time_sink_f_impl.cc3
-rw-r--r--gr-qtgui/lib/time_sink_f_impl.h2
-rw-r--r--gr-qtgui/lib/waterfall_sink_c_impl.cc13
-rw-r--r--gr-qtgui/lib/waterfall_sink_f_impl.cc13
-rw-r--r--gr-qtgui/lib/waterfalldisplayform.cc4
-rw-r--r--gr-qtgui/python/qtgui/CMakeLists.txt2
-rw-r--r--gr-trellis/include/gnuradio/trellis/CMakeLists.txt2
-rw-r--r--gr-trellis/include/gnuradio/trellis/siso_f.h2
-rw-r--r--gr-trellis/include/gnuradio/trellis/siso_type.h2
-rw-r--r--gr-trellis/lib/CMakeLists.txt28
-rw-r--r--gr-trellis/lib/metrics_X_impl.h.t2
-rw-r--r--gr-trellis/lib/pccc_encoder_XX_impl.h.t4
-rw-r--r--gr-trellis/python/trellis/__init__.py10
-rw-r--r--gr-trellis/swig/trellis_swig.i8
-rw-r--r--gr-uhd/apps/hf_explorer/README2
-rwxr-xr-xgr-uhd/apps/uhd_fft2
-rw-r--r--gr-uhd/apps/uhd_rx_cfile2
-rw-r--r--gr-uhd/apps/uhd_siggen_base.py2
-rwxr-xr-xgr-uhd/examples/python/freq_hopping.py2
-rwxr-xr-xgr-uhd/examples/python/usrp_spectrum_sense.py22
-rwxr-xr-xgr-uhd/examples/python/usrp_wfm_rcv_sca.py2
-rw-r--r--gr-uhd/include/gnuradio/uhd/usrp_sink.h4
-rw-r--r--gr-uhd/include/gnuradio/uhd/usrp_source.h4
-rw-r--r--gr-uhd/swig/uhd_swig.i8
-rw-r--r--gr-utils/python/modtool/gr-newmod/CMakeLists.txt2
-rw-r--r--gr-utils/python/modtool/gr-newmod/docs/README.howto2
-rw-r--r--gr-utils/python/utils/gr_read_file_metadata2
-rwxr-xr-xgr-utils/python/utils/grcc2
-rw-r--r--gr-video-sdl/include/gnuradio/video_sdl/sink_s.h2
-rw-r--r--gr-video-sdl/include/gnuradio/video_sdl/sink_uc.h2
-rw-r--r--gr-video-sdl/lib/CMakeLists.txt18
-rw-r--r--gr-video-sdl/python/video_sdl/__init__.py10
-rw-r--r--gr-vocoder/include/gnuradio/vocoder/alaw_decode_bs.h2
-rw-r--r--gr-vocoder/include/gnuradio/vocoder/alaw_encode_sb.h2
-rw-r--r--gr-vocoder/include/gnuradio/vocoder/codec2.h4
-rw-r--r--gr-vocoder/include/gnuradio/vocoder/g721_decode_bs.h2
-rw-r--r--gr-vocoder/include/gnuradio/vocoder/g721_encode_sb.h2
-rw-r--r--gr-vocoder/include/gnuradio/vocoder/g723_24_decode_bs.h2
-rw-r--r--gr-vocoder/include/gnuradio/vocoder/g723_24_encode_sb.h2
-rw-r--r--gr-vocoder/include/gnuradio/vocoder/g723_40_decode_bs.h2
-rw-r--r--gr-vocoder/include/gnuradio/vocoder/g723_40_encode_sb.h2
-rw-r--r--gr-vocoder/include/gnuradio/vocoder/ulaw_decode_bs.h2
-rw-r--r--gr-vocoder/include/gnuradio/vocoder/ulaw_encode_sb.h2
-rw-r--r--gr-vocoder/lib/CMakeLists.txt13
-rw-r--r--gr-vocoder/lib/alaw_decode_bs_impl.h2
-rw-r--r--gr-vocoder/lib/alaw_encode_sb_impl.h2
-rw-r--r--gr-vocoder/lib/codec2/fdmdv.c4
-rw-r--r--gr-vocoder/lib/cvsd_decode_bs_impl.cc2
-rw-r--r--gr-vocoder/lib/cvsd_decode_bs_impl.h2
-rw-r--r--gr-vocoder/lib/cvsd_encode_sb_impl.cc2
-rw-r--r--gr-vocoder/lib/cvsd_encode_sb_impl.h2
-rw-r--r--gr-vocoder/lib/g721_decode_bs_impl.cc2
-rw-r--r--gr-vocoder/lib/g721_decode_bs_impl.h2
-rw-r--r--gr-vocoder/lib/g721_encode_sb_impl.cc2
-rw-r--r--gr-vocoder/lib/g721_encode_sb_impl.h2
-rw-r--r--gr-vocoder/lib/g723_24_encode_sb_impl.h2
-rw-r--r--gr-vocoder/lib/g723_40_decode_bs_impl.cc2
-rw-r--r--gr-vocoder/lib/g723_40_decode_bs_impl.h2
-rw-r--r--gr-vocoder/lib/g723_40_encode_sb_impl.h2
-rw-r--r--gr-vocoder/lib/gsm_fr_decode_ps_impl.cc2
-rw-r--r--gr-vocoder/lib/gsm_fr_decode_ps_impl.h2
-rw-r--r--gr-vocoder/lib/gsm_fr_encode_sp_impl.h2
-rw-r--r--gr-vocoder/lib/ulaw_decode_bs_impl.h2
-rw-r--r--gr-vocoder/lib/ulaw_encode_sb_impl.h2
-rwxr-xr-xgr-vocoder/python/vocoder/qa_alaw_vocoder.py2
-rw-r--r--gr-wavelet/include/gnuradio/wavelet/squash_ff.h6
-rw-r--r--gr-wavelet/include/gnuradio/wavelet/wavelet_ff.h4
-rw-r--r--gr-wavelet/include/gnuradio/wavelet/wvps_ff.h2
-rw-r--r--gr-wavelet/lib/CMakeLists.txt16
-rw-r--r--gr-wavelet/lib/squash_ff_impl.cc14
-rw-r--r--gr-wavelet/lib/squash_ff_impl.h2
-rw-r--r--gr-wavelet/lib/wavelet_ff_impl.cc14
-rw-r--r--gr-wavelet/lib/wvps_ff_impl.cc24
-rw-r--r--gr-wxgui/grc/panel.py4
-rw-r--r--gr-wxgui/grc/top_block_gui.py2
-rw-r--r--gr-wxgui/include/gnuradio/wxgui/oscope_guts.h4
-rw-r--r--gr-wxgui/lib/CMakeLists.txt13
-rw-r--r--gr-wxgui/lib/oscope_guts.cc2
-rw-r--r--gr-wxgui/lib/oscope_sink_x.cc2
-rw-r--r--gr-wxgui/python/wxgui/common.py32
-rw-r--r--gr-wxgui/python/wxgui/fft_window.py4
-rw-r--r--gr-wxgui/python/wxgui/fftsink_gl.py2
-rw-r--r--gr-wxgui/python/wxgui/fftsink_nongl.py2
-rw-r--r--gr-wxgui/python/wxgui/forms/__init__.py2
-rw-r--r--gr-wxgui/python/wxgui/forms/forms.py2
-rw-r--r--gr-wxgui/python/wxgui/histo_window.py4
-rw-r--r--gr-wxgui/python/wxgui/number_window.py6
-rw-r--r--gr-wxgui/python/wxgui/plotter/common.py6
-rw-r--r--gr-wxgui/python/wxgui/plotter/grid_plotter_base.py8
-rw-r--r--gr-wxgui/python/wxgui/plotter/waterfall_plotter.py4
-rw-r--r--gr-wxgui/python/wxgui/scope_window.py2
-rw-r--r--gr-wxgui/python/wxgui/waterfall_window.py6
-rw-r--r--gr-wxgui/python/wxgui/waterfallsink_gl.py2
-rw-r--r--gr-zeromq/lib/CMakeLists.txt13
-rw-r--r--grc/base/Connection.py12
-rw-r--r--grc/base/Element.py6
-rw-r--r--grc/base/FlowGraph.py54
-rw-r--r--grc/base/Param.py6
-rw-r--r--grc/base/ParseXML.py16
-rw-r--r--grc/base/Platform.py10
-rw-r--r--grc/base/Port.py10
-rw-r--r--grc/base/odict.py12
-rw-r--r--grc/blocks/bus_sink.xml6
-rw-r--r--grc/blocks/bus_source.xml6
-rw-r--r--grc/blocks/bus_structure_sink.xml4
-rw-r--r--grc/blocks/bus_structure_source.xml4
-rw-r--r--grc/blocks/pad_source.xml2
-rw-r--r--grc/grc_gnuradio/blks2/error_rate.py2
-rw-r--r--grc/grc_gnuradio/blks2/packet.py6
-rw-r--r--grc/grc_gnuradio/blks2/selector.py12
-rw-r--r--grc/grc_gnuradio/blks2/tcp.py4
-rw-r--r--grc/gui/ActionHandler.py30
-rw-r--r--grc/gui/Actions.py4
-rw-r--r--grc/gui/Block.py16
-rw-r--r--grc/gui/Connection.py6
-rw-r--r--grc/gui/Dialogs.py8
-rw-r--r--grc/gui/DrawingArea.py2
-rw-r--r--grc/gui/Element.py36
-rw-r--r--grc/gui/FileDialogs.py10
-rw-r--r--grc/gui/FlowGraph.py40
-rw-r--r--grc/gui/MainWindow.py26
-rw-r--r--grc/gui/Messages.py4
-rw-r--r--grc/gui/NotebookPage.py28
-rw-r--r--grc/gui/Param.py4
-rw-r--r--grc/gui/Port.py22
-rw-r--r--grc/gui/PropsDialog.py12
-rw-r--r--grc/gui/StateCache.py10
-rw-r--r--grc/gui/Utils.py14
-rw-r--r--grc/python/Block.py18
-rw-r--r--grc/python/FlowGraph.py50
-rw-r--r--grc/python/Generator.py2
-rw-r--r--grc/python/Param.py14
-rw-r--r--grc/python/Port.py8
-rw-r--r--grc/python/expr_utils.py24
-rw-r--r--grc/python/extract_docs.py8
-rw-r--r--volk/CMakeLists.txt7
-rw-r--r--volk/gen/archs.xml2
-rw-r--r--volk/kernels/volk/volk_32f_invsqrt_32f.h6
-rw-r--r--volk/kernels/volk/volk_32f_x3_sum_of_poly_32f.h8
-rw-r--r--volk/kernels/volk/volk_32fc_32f_dot_prod_32fc.h8
-rw-r--r--volk/kernels/volk/volk_32fc_32f_multiply_32fc.h4
-rw-r--r--volk/kernels/volk/volk_32fc_s32fc_rotatorpuppet_32fc.h18
-rw-r--r--volk/kernels/volk/volk_32fc_s32fc_x2_rotator_32fc.h150
-rw-r--r--volk/kernels/volk/volk_8u_x4_conv_k7_r2_8u.h16
-rw-r--r--volk/lib/CMakeLists.txt30
-rw-r--r--volk/lib/constants.c.in6
-rw-r--r--volk/lib/gcc_x86_cpuid.h6
-rw-r--r--volk/lib/volk_rank_archs.c7
-rw-r--r--volk/python/volk_modtool/README4
-rw-r--r--volk/python/volk_modtool/__init__.py10
-rw-r--r--volk/python/volk_modtool/cfg.py30
-rwxr-xr-xvolk/python/volk_modtool/volk_modtool26
-rw-r--r--volk/python/volk_modtool/volk_modtool_generate.py96
842 files changed, 4351 insertions, 3841 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 935669d6d6..c94116e5ce 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -41,7 +41,7 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules)
# Set the version information here
set(VERSION_INFO_MAJOR_VERSION 3)
set(VERSION_INFO_API_COMPAT 7)
-set(VERSION_INFO_MINOR_VERSION 4)
+set(VERSION_INFO_MINOR_VERSION 5)
set(VERSION_INFO_MAINT_VERSION git)
include(GrVersion) #setup version info
@@ -86,7 +86,7 @@ endif(CMAKE_COMPILER_IS_GNUCXX)
if(MSVC)
include_directories(${CMAKE_SOURCE_DIR}/cmake/msvc) #missing headers
- add_definitions(-D_WIN32_WINNT=0x0501) #minimum version required is windows xp
+ add_definitions(-D_WIN32_WINNT=0x0502) #Minimum version: "Windows Server 2003 with SP1, Windows XP with SP2"
add_definitions(-DNOMINMAX) #disables stupidity and enables std::min and std::max
add_definitions( #stop all kinds of compatibility warnings
-D_SCL_SECURE_NO_WARNINGS
diff --git a/README b/README
index 1b2520cf41..8546181beb 100644
--- a/README
+++ b/README
@@ -55,7 +55,7 @@ See these steps fow a quick build guide.
(1) Ensure that you've satisfied the external dependencies. These
dependencies are listed in the manual's build page and are not
presented here to reduce duplication errors.
-
+
See the wiki at http://gnuradio.org for details.
diff --git a/README.building-boost b/README.building-boost
index eea4df3889..9833f2ce42 100644
--- a/README.building-boost
+++ b/README.building-boost
@@ -6,7 +6,7 @@ If running a distribution that requires boost 1.35 (or later) be built
from scratch, these instructions explain how to do so, and in a way
that allows it to peacefully coexist with earlier versions of boost.
-There are two recommended methods:
+There are two recommended methods:
Installing boost using the PyBOMBS utility, or building it from a source
tarball.
diff --git a/README.hacking b/README.hacking
index 21140ebeea..4e3a6a393e 100644
--- a/README.hacking
+++ b/README.hacking
@@ -91,7 +91,7 @@ All class static data members shall begin with s_<foo>.
** File names
-Each significant class shall be contained in it's own file.
+Each significant class shall be contained in it's own file.
* Storage management
@@ -108,9 +108,9 @@ See http://www.boost.org/libs/smart_ptr/smart_ptr.htm
* Unit tests
Unit tests are a useful tool for development -- they are less of a tool
-to prove others that you can write code that works like you defined it but help
+to prove others that you can write code that works like you defined it but help
you and later maintainers identify corner cases, regressions and other malfunctions
-of code.
+of code.
GNU Radio has integrated versatile, easy to use testing facilities. Please refer to
http://gnuradio.org/redmine/projects/gnuradio/wiki/Coding_guide_impl#Unit-testing
@@ -127,7 +127,7 @@ into the help string using the "... [default=%default]" syntax.
** Mandatory options by gr::block
When designing flow graphs with the GNU Radio Companion, appropriate
-option parsing will automatically be set up for you.
+option parsing will automatically be set up for you.
*** Audio source
diff --git a/cmake/Modules/FindZeroMQ.cmake b/cmake/Modules/FindZeroMQ.cmake
index c1155c4cc5..62a1c6b969 100644
--- a/cmake/Modules/FindZeroMQ.cmake
+++ b/cmake/Modules/FindZeroMQ.cmake
@@ -2,7 +2,7 @@ INCLUDE(FindPkgConfig)
PKG_CHECK_MODULES(PC_ZEROMQ "libzmq")
FIND_PATH(ZEROMQ_INCLUDE_DIRS
- NAMES zmq.h
+ NAMES zmq.hpp
HINTS ${PC_ZEROMQ_INCLUDE_DIR}
${CMAKE_INSTALL_PREFIX}/include
PATHS
diff --git a/cmake/Modules/GrMiscUtils.cmake b/cmake/Modules/GrMiscUtils.cmake
index 883ca5104f..3d9a5f519b 100644
--- a/cmake/Modules/GrMiscUtils.cmake
+++ b/cmake/Modules/GrMiscUtils.cmake
@@ -333,7 +333,7 @@ set(CMAKE_REQUIRED_LIBRARIES -lpthread)
} " HAVE_PTHREAD_SETSCHEDPARAM
)
GR_ADD_COND_DEF(HAVE_PTHREAD_SETSCHEDPARAM)
-
+
CHECK_CXX_SOURCE_COMPILES("
#include <sched.h>
int main(){
diff --git a/cmake/Modules/GrSetupQt4.cmake b/cmake/Modules/GrSetupQt4.cmake
index 2fa4d9bab9..312b415de9 100644
--- a/cmake/Modules/GrSetupQt4.cmake
+++ b/cmake/Modules/GrSetupQt4.cmake
@@ -152,5 +152,5 @@ FOREACH(module QT3SUPPORT QTOPENGL QTASSISTANT QTDESIGNER QTMOTIF QTNSPLUGIN
MESSAGE("Qt ${module} library not found.")
ENDIF (QT_${module}_FOUND)
ENDIF (QT_USE_${module} OR QT_USE_${module}_DEPENDS)
-
+
ENDFOREACH(module)
diff --git a/cmake/Modules/GrTest.cmake b/cmake/Modules/GrTest.cmake
index 7b642046e6..62caab4b51 100644
--- a/cmake/Modules/GrTest.cmake
+++ b/cmake/Modules/GrTest.cmake
@@ -66,7 +66,7 @@ function(GR_ADD_TEST test_name)
file(TO_NATIVE_PATH "${GR_TEST_LIBRARY_DIRS}" libpath) #ok to use on dir list?
file(TO_NATIVE_PATH "${GR_TEST_PYTHON_DIRS}" pypath) #ok to use on dir list?
- set(environs "GR_DONT_LOAD_PREFS=1" "srcdir=${srcdir}")
+ set(environs "VOLK_GENERIC=1" "GR_DONT_LOAD_PREFS=1" "srcdir=${srcdir}")
list(APPEND environs ${GR_TEST_ENVIRONS})
#http://www.cmake.org/pipermail/cmake/2009-May/029464.html
diff --git a/cmake/Modules/NSIS.template.in b/cmake/Modules/NSIS.template.in
index 156ca88faf..910fafdedd 100644
--- a/cmake/Modules/NSIS.template.in
+++ b/cmake/Modules/NSIS.template.in
@@ -37,7 +37,7 @@
;Set compression
SetCompressor @CPACK_NSIS_COMPRESSOR@
-@CPACK_NSIS_DEFINES@
+@CPACK_NSIS_DEFINES@
!include Sections.nsh
@@ -71,7 +71,7 @@ Var AR_RegFlags
; This macro reads component installed flag from the registry and
;changes checked state of the section on the components page.
;Input: section index constant name specified in Section command.
-
+
ClearErrors
;Reading component status from registry
ReadRegDWORD $AR_RegFlags HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\Components\${SecName}" "Installed"
@@ -86,20 +86,20 @@ Var AR_RegFlags
; Note whether this component was installed before
!insertmacro StoreVar ${SecName}_was_installed $AR_RegFlags
IntOp $R0 $AR_RegFlags & $AR_RegFlags
-
+
;Writing modified flags
SectionSetFlags ${${SecName}} $AR_SecFlags
-
+
"default_${SecName}:"
!insertmacro LoadSectionSelectedIntoVar ${SecName} ${SecName}_selected
!macroend
-
+
!macro FinishSection SecName
; This macro reads section flag set by user and removes the section
;if it is not selected.
;Then it writes component installed flag to registry
;Input: section index constant name specified in Section command.
-
+
SectionGetFlags ${${SecName}} $AR_SecFlags ;Reading section flags
;Checking lowest bit:
IntOp $AR_SecFlags $AR_SecFlags & ${SF_SELECTED}
@@ -110,20 +110,20 @@ Var AR_RegFlags
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\Components\${SecName}" \
"Installed" 0
Goto "exit_${SecName}"
-
+
"leave_${SecName}:"
;Section is selected:
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\Components\${SecName}" \
"Installed" 1
-
+
"exit_${SecName}:"
!macroend
-
+
!macro RemoveSection SecName
; This macro is used to call section's Remove_... macro
;from the uninstaller.
;Input: section index constant name specified in Section command.
-
+
!insertmacro "Remove_${${SecName}}"
!macroend
@@ -132,18 +132,18 @@ Var AR_RegFlags
!insertmacro LoadVar ${SecName}_selected
SectionGetFlags ${${SecName}} $R1
IntOp $R1 $R1 & ${SF_SELECTED} ;Turn off all other bits
-
+
; See if the status has changed:
IntCmp $R0 $R1 "${SecName}_unchanged"
!insertmacro LoadSectionSelectedIntoVar ${SecName} ${SecName}_selected
-
+
IntCmp $R1 ${SF_SELECTED} "${SecName}_was_selected"
!insertmacro "Deselect_required_by_${SecName}"
goto "${SecName}_unchanged"
-
+
"${SecName}_was_selected:"
!insertmacro "Select_${SecName}_depends"
-
+
"${SecName}_unchanged:"
!macroend
;--- End of Add/Remove macros ---
@@ -153,7 +153,7 @@ Var AR_RegFlags
!define MUI_HEADERIMAGE
!define MUI_ABORTWARNING
-
+
;--------------------------------
; path functions
@@ -168,7 +168,7 @@ Var AR_RegFlags
!include "WinMessages.NSH"
!verbose 4
;====================================================
-; get_NT_environment
+; get_NT_environment
; Returns: the selected environment
; Output : head of the stack
;====================================================
@@ -198,22 +198,22 @@ FunctionEnd
!define WriteEnvStr_RegKey 'HKCU "Environment"'
!endif
!endif
-
+
; AddToPath - Adds the given dir to the search path.
; Input - head of the stack
; Note - Win9x systems requires reboot
-
+
Function AddToPath
Exch $0
Push $1
Push $2
Push $3
-
+
# don't add if the path doesn't exist
IfFileExists "$0\*.*" "" AddToPath_done
-
+
ReadEnvStr $1 PATH
- ; if the path is too long for a NSIS variable NSIS will return a 0
+ ; if the path is too long for a NSIS variable NSIS will return a 0
; length string. If we find that, then warn and skip any path
; modification as it will trash the existing path.
StrLen $2 $1
@@ -243,7 +243,7 @@ Function AddToPath
Call StrStr
Pop $2
StrCmp $2 "" "" AddToPath_done
-
+
Call IsNT
Pop $1
StrCmp $1 1 AddToPath_NT
@@ -258,7 +258,7 @@ Function AddToPath
FileClose $1
SetRebootFlag true
Goto AddToPath_done
-
+
AddToPath_NT:
StrCmp $ADD_TO_PATH_ALL_USERS "1" ReadAllKey
ReadRegStr $1 ${NT_current_env} "PATH"
@@ -279,7 +279,7 @@ Function AddToPath
WriteRegExpandStr ${NT_all_env} "PATH" $0
DoSend:
SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
-
+
AddToPath_done:
Pop $3
Pop $2
@@ -287,10 +287,10 @@ Function AddToPath
Pop $0
FunctionEnd
-
+
; RemoveFromPath - Remove a given dir from the path
; Input: head of the stack
-
+
Function un.RemoveFromPath
Exch $0
Push $1
@@ -299,9 +299,9 @@ Function un.RemoveFromPath
Push $4
Push $5
Push $6
-
+
IntFmt $6 "%c" 26 # DOS EOF
-
+
Call un.IsNT
Pop $1
StrCmp $1 1 unRemoveFromPath_NT
@@ -313,7 +313,7 @@ Function un.RemoveFromPath
GetFullPathName /SHORT $0 $0
StrCpy $0 "SET PATH=%PATH%;$0"
Goto unRemoveFromPath_dosLoop
-
+
unRemoveFromPath_dosLoop:
FileRead $1 $3
StrCpy $5 $3 1 -1 # read last char
@@ -328,7 +328,7 @@ Function un.RemoveFromPath
unRemoveFromPath_dosLoopRemoveLine:
SetRebootFlag true
Goto unRemoveFromPath_dosLoop
-
+
unRemoveFromPath_dosLoopEnd:
FileClose $2
FileClose $1
@@ -337,7 +337,7 @@ Function un.RemoveFromPath
CopyFiles /SILENT $4 "$1\autoexec.bat"
Delete $4
Goto unRemoveFromPath_done
-
+
unRemoveFromPath_NT:
StrCmp $ADD_TO_PATH_ALL_USERS "1" unReadAllKey
ReadRegStr $1 ${NT_current_env} "PATH"
@@ -361,11 +361,11 @@ Function un.RemoveFromPath
StrCpy $5 $1 -$4 # $5 is now the part before the path to remove
StrCpy $6 $2 "" $3 # $6 is now the part after the path to remove
StrCpy $3 $5$6
-
+
StrCpy $5 $3 1 -1 # copy last char
StrCmp $5 ";" 0 +2 # if last char == ;
StrCpy $3 $3 -1 # remove last char
-
+
StrCmp $ADD_TO_PATH_ALL_USERS "1" unWriteAllKey
WriteRegExpandStr ${NT_current_env} "PATH" $3
Goto unDoSend
@@ -373,7 +373,7 @@ Function un.RemoveFromPath
WriteRegExpandStr ${NT_all_env} "PATH" $3
unDoSend:
SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
-
+
unRemoveFromPath_done:
Pop $6
Pop $5
@@ -383,7 +383,7 @@ Function un.RemoveFromPath
Pop $1
Pop $0
FunctionEnd
-
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Uninstall sutff
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -391,7 +391,7 @@ FunctionEnd
###########################################
# Utility Functions #
###########################################
-
+
;====================================================
; IsNT - Returns 1 if the current system is NT, 0
; otherwise.
@@ -405,7 +405,7 @@ FunctionEnd
; Call IsNT
; Pop $R0
; ($R0 at this point is 1 or 0)
-
+
!macro IsNT un
Function ${un}IsNT
Push $0
@@ -415,7 +415,7 @@ Function ${un}IsNT
Pop $0
Push 0
Return
-
+
IsNT_yes:
; NT!!!
Pop $0
@@ -424,7 +424,7 @@ FunctionEnd
!macroend
!insertmacro IsNT ""
!insertmacro IsNT "un."
-
+
; StrStr
; input, top of stack = string to search for
; top of stack-1 = string to search in
@@ -437,7 +437,7 @@ FunctionEnd
; Call StrStr
; Pop $R0
; ($R0 at this point is "ass string")
-
+
!macro StrStr un
Function ${un}StrStr
Exch $R1 ; st=haystack,old$R1, $R1=needle
@@ -481,7 +481,7 @@ Loop:
StrCmp "$R2" "$\r" RTrim
StrCmp "$R2" ";" RTrim
GoTo Done
-RTrim:
+RTrim:
StrCpy $R1 "$R1" -1
Goto Loop
Done:
@@ -516,7 +516,7 @@ Function DownloadFile
try_again:
NSISdl::download "$1/$0" "$INSTDIR\$0"
-
+
Pop $1
StrCmp $1 "success" success
StrCmp $1 "Cancelled" cancel
@@ -549,10 +549,10 @@ FunctionEnd
!insertmacro MUI_PAGE_LICENSE "@CPACK_RESOURCE_FILE_LICENSE@"
Page custom InstallOptionsPage
!insertmacro MUI_PAGE_DIRECTORY
-
+
;Start Menu Folder Page Configuration
- !define MUI_STARTMENUPAGE_REGISTRY_ROOT "SHCTX"
- !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@"
+ !define MUI_STARTMENUPAGE_REGISTRY_ROOT "SHCTX"
+ !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@"
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
!insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER
@@ -638,10 +638,10 @@ Section "-Core installation"
;list of directories here in sync with the RMDir commands below.
SetOutPath "$INSTDIR"
@CPACK_NSIS_FULL_INSTALL@
-
+
;Store installation folder
WriteRegStr SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "" $INSTDIR
-
+
;Create uninstaller
WriteUninstaller "$INSTDIR\Uninstall.exe"
Push "DisplayName"
@@ -659,7 +659,7 @@ Section "-Core installation"
Push "NoRepair"
Push "1"
Call ConditionalAddToRegisty
-
+
!ifdef CPACK_NSIS_ADD_REMOVE
;Create add/remove functionality
Push "ModifyPath"
@@ -670,7 +670,7 @@ Section "-Core installation"
Push "1"
Call ConditionalAddToRegisty
!endif
-
+
; Optional registration
Push "DisplayIcon"
Push "$INSTDIR\@CPACK_NSIS_INSTALLED_ICON_NAME@"
@@ -686,7 +686,7 @@ Section "-Core installation"
Call ConditionalAddToRegisty
!insertmacro MUI_INSTALLOPTIONS_READ $INSTALL_DESKTOP "NSIS.InstallOptions.ini" "Field 5" "State"
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
-
+
;Create shortcuts
CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
@CPACK_NSIS_CREATE_ICONS@
@@ -725,7 +725,7 @@ SectionEnd
Section "-Add to path"
Push $INSTDIR\bin
StrCmp "@CPACK_NSIS_MODIFY_PATH@" "ON" 0 doNotAddToPath
- StrCmp $DO_NOT_ADD_TO_PATH "1" doNotAddToPath 0
+ StrCmp $DO_NOT_ADD_TO_PATH "1" doNotAddToPath 0
Call AddToPath
doNotAddToPath:
SectionEnd
@@ -756,12 +756,12 @@ Function un.onInit
SetShellVarContext all
;MessageBox MB_OK 'User "$0" is in the Power Users group'
Goto done
-
+
noLM:
;Get installation folder from registry if available
done:
-
+
FunctionEnd
;--- Add/Remove callback functions: ---
@@ -770,25 +770,25 @@ FunctionEnd
;List all of your components in following manner here.
@CPACK_NSIS_COMPONENT_SECTION_LIST@
!macroend
-
+
Section -FinishComponents
;Removes unselected components and writes component status to registry
!insertmacro SectionList "FinishSection"
-
-!ifdef CPACK_NSIS_ADD_REMOVE
+
+!ifdef CPACK_NSIS_ADD_REMOVE
; Get the name of the installer executable
System::Call 'kernel32::GetModuleFileNameA(i 0, t .R0, i 1024) i r1'
StrCpy $R3 $R0
-
+
; Strip off the last 13 characters, to see if we have AddRemove.exe
StrLen $R1 $R0
IntOp $R1 $R0 - 13
StrCpy $R2 $R0 13 $R1
StrCmp $R2 "AddRemove.exe" addremove_installed
-
+
; We're not running AddRemove.exe, so install it
CopyFiles $R3 $INSTDIR\AddRemove.exe
-
+
addremove_installed:
!endif
SectionEnd
@@ -825,7 +825,7 @@ Section "Uninstall"
@CPACK_NSIS_DELETE_FILES@
@CPACK_NSIS_DELETE_DIRECTORIES@
-!ifdef CPACK_NSIS_ADD_REMOVE
+!ifdef CPACK_NSIS_ADD_REMOVE
;Remove the add/remove program
Delete "$INSTDIR\AddRemove.exe"
!endif
@@ -842,23 +842,23 @@ Section "Uninstall"
; Removes all optional components
!insertmacro SectionList "RemoveSection"
-
+
!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
-
+
Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
@CPACK_NSIS_DELETE_ICONS@
@CPACK_NSIS_DELETE_ICONS_EXTRA@
-
+
;Delete empty start menu parent diretories
StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"
-
+
startMenuDeleteLoop:
ClearErrors
RMDir $MUI_TEMP
GetFullPathName $MUI_TEMP "$MUI_TEMP\.."
-
+
IfErrors startMenuDeleteLoopDone
-
+
StrCmp "$MUI_TEMP" "$SMPROGRAMS" startMenuDeleteLoopDone startMenuDeleteLoop
startMenuDeleteLoopDone:
@@ -868,17 +868,17 @@ Section "Uninstall"
Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
Delete "$SMPROGRAMS\$MUI_TEMP\GNU Radio Companion.lnk"
@CPACK_NSIS_DELETE_ICONS_EXTRA@
-
+
;Delete empty start menu parent diretories
StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"
-
+
secondStartMenuDeleteLoop:
ClearErrors
RMDir $MUI_TEMP
GetFullPathName $MUI_TEMP "$MUI_TEMP\.."
-
+
IfErrors secondStartMenuDeleteLoopDone
-
+
StrCmp "$MUI_TEMP" "$SMPROGRAMS" secondStartMenuDeleteLoopDone secondStartMenuDeleteLoop
secondStartMenuDeleteLoopDone:
@@ -904,14 +904,14 @@ Function .onInit
; Reads components status for registry
!insertmacro SectionList "InitSection"
- ; check to see if /D has been used to change
- ; the install directory by comparing it to the
+ ; check to see if /D has been used to change
+ ; the install directory by comparing it to the
; install directory that is expected to be the
; default
StrCpy $IS_DEFAULT_INSTALLDIR 0
StrCmp "$INSTDIR" "@CPACK_NSIS_INSTALL_ROOT@\@CPACK_PACKAGE_INSTALL_DIRECTORY@" 0 +2
StrCpy $IS_DEFAULT_INSTALLDIR 1
-
+
StrCpy $SV_ALLUSERS "JustMe"
; if default install dir then change the default
; if it is installed for JustMe
@@ -934,7 +934,7 @@ Function .onInit
;MessageBox MB_OK 'User "$0" is in the Power Users group'
StrCpy $SV_ALLUSERS "AllUsers"
Goto done
-
+
noLM:
StrCpy $SV_ALLUSERS "AllUsers"
;Get installation folder from registry if available
diff --git a/docs/doxygen/doxyxml/doxyindex.py b/docs/doxygen/doxyxml/doxyindex.py
index 69c6de07f5..e039737714 100644
--- a/docs/doxygen/doxyxml/doxyindex.py
+++ b/docs/doxygen/doxyxml/doxyindex.py
@@ -1,23 +1,23 @@
#
# Copyright 2010 Free Software Foundation, Inc.
-#
+#
# This file is part of GNU Radio
-#
+#
# GNU Radio is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
-#
+#
# GNU Radio is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-#
+#
# You should have received a copy of the GNU General Public License
# along with GNU Radio; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street,
# Boston, MA 02110-1301, USA.
-#
+#
"""
Classes providing more user-friendly interfaces to the doxygen xml
docs than the generated classes provide.
@@ -40,7 +40,7 @@ class DoxyIndex(Base):
if self._parsed:
return
super(DoxyIndex, self)._parse()
- self._root = index.parse(os.path.join(self._xml_path, 'index.xml'))
+ self._root = index.parse(os.path.join(self._xml_path, 'index.xml'))
for mem in self._root.compound:
converted = self.convert_mem(mem)
# For files and namespaces we want the contents to be
@@ -81,7 +81,7 @@ class DoxyCompMem(Base):
bd = description(getattr(parse_data, 'briefdescription', None))
dd = description(getattr(parse_data, 'detaileddescription', None))
self._data['brief_description'] = bd
- self._data['detailed_description'] = dd
+ self._data['detailed_description'] = dd
def set_parameters(self, data):
vs = [ddc.value for ddc in data.detaileddescription.content_]
@@ -133,7 +133,7 @@ Base.mem_classes.append(DoxyFunction)
class DoxyParam(DoxyMember):
-
+
__module__ = "gnuradio.utils.doxyxml"
def _parse(self):
@@ -178,11 +178,11 @@ class DoxyParameterItem(DoxyMember):
class DoxyClass(DoxyCompound):
-
+
__module__ = "gnuradio.utils.doxyxml"
kind = 'class'
-
+
def _parse(self):
if self._parsed:
return
@@ -201,14 +201,14 @@ class DoxyClass(DoxyCompound):
params = property(lambda self: self.data()['params'])
Base.mem_classes.append(DoxyClass)
-
+
class DoxyFile(DoxyCompound):
-
+
__module__ = "gnuradio.utils.doxyxml"
kind = 'file'
-
+
def _parse(self):
if self._parsed:
return
@@ -218,7 +218,7 @@ class DoxyFile(DoxyCompound):
if self._error:
return
self.process_memberdefs()
-
+
brief_description = property(lambda self: self.data()['brief_description'])
detailed_description = property(lambda self: self.data()['detailed_description'])
@@ -226,7 +226,7 @@ Base.mem_classes.append(DoxyFile)
class DoxyNamespace(DoxyCompound):
-
+
__module__ = "gnuradio.utils.doxyxml"
kind = 'namespace'
@@ -240,12 +240,12 @@ class DoxyNamespace(DoxyCompound):
if self._error:
return
self.process_memberdefs()
-
+
Base.mem_classes.append(DoxyNamespace)
class DoxyGroup(DoxyCompound):
-
+
__module__ = "gnuradio.utils.doxyxml"
kind = 'group'
@@ -273,7 +273,7 @@ class DoxyGroup(DoxyCompound):
self.process_memberdefs()
title = property(lambda self: self.data()['title'])
-
+
Base.mem_classes.append(DoxyGroup)
@@ -288,7 +288,7 @@ Base.mem_classes.append(DoxyFriend)
class DoxyOther(Base):
-
+
__module__ = "gnuradio.utils.doxyxml"
kinds = set(['variable', 'struct', 'union', 'define', 'typedef', 'enum',
@@ -297,6 +297,6 @@ class DoxyOther(Base):
@classmethod
def can_parse(cls, obj):
return obj.kind in cls.kinds
-
+
Base.mem_classes.append(DoxyOther)
diff --git a/docs/doxygen/other/logger.dox b/docs/doxygen/other/logger.dox
index 7b0f64e12b..f057e59d9b 100644
--- a/docs/doxygen/other/logger.dox
+++ b/docs/doxygen/other/logger.dox
@@ -205,7 +205,7 @@ input to our logging macros like 'GR_LOG_INFO(LOG, "message")'.
\section logPy Logging from Python
-The logging capability has been brought out python via swig. The configuration
+The logging capability has been brought out python via swig. The configuration
of the logger can be manipulated via the following calls:
\code
from gnuradio import gr
@@ -214,7 +214,7 @@ of the logger can be manipulated via the following calls:
gr.logger_reset_config() # Resets logger config by removing all appenders
\endcode
-Once the logger is configured you can manipulate a logger via a wrapper class gr.logger().
+Once the logger is configured you can manipulate a logger via a wrapper class gr.logger().
You can isntantiate this by the following. (Reference logger.h for list of methods)
\code
from gnuradio import gr
diff --git a/docs/doxygen/other/msg_passing.dox b/docs/doxygen/other/msg_passing.dox
index c184681f23..11abf35728 100644
--- a/docs/doxygen/other/msg_passing.dox
+++ b/docs/doxygen/other/msg_passing.dox
@@ -76,7 +76,7 @@ the messages that are posted to it. After using the
gr::basic_block::message_port_register_in to declare a subscriber port, we
must then bind this port to the message handler. For this, we use
Boost's 'bind' function:
-
+
\code
set_msg_handler(pmt::pmt_t port_id,
boost::bind(&block_class::message_handler_function, this, _1));
@@ -114,7 +114,7 @@ All messages published by the \b src block on port \a pdus will be
received by \b dbg on port \a print. Note here how we are just using
strings to define the ports, not PMT symbols. This is a convenience to
the user to be able to more easily type in the port names (for
-reference, you can create a PMT symbol in Python using the
+reference, you can create a PMT symbol in Python using the
pmt::intern function as pmt.intern("string")).
Users can also query blocks for the names of their input and output
diff --git a/docs/doxygen/other/thread_affinity.dox b/docs/doxygen/other/thread_affinity.dox
index bccdd56573..edac813866 100644
--- a/docs/doxygen/other/thread_affinity.dox
+++ b/docs/doxygen/other/thread_affinity.dox
@@ -57,7 +57,7 @@ Where \p mask is a vector of core numbers to set the thread's affinity
to.
The current core affinity can be retrieved using the member function:
-
+
- gr::block::processor_affinity()
When set before the flowgraph is started, the scheduler will set the
diff --git a/docs/doxygen/swig_doc.py b/docs/doxygen/swig_doc.py
index da104a2e00..c9e89aec1b 100644
--- a/docs/doxygen/swig_doc.py
+++ b/docs/doxygen/swig_doc.py
@@ -1,23 +1,23 @@
#
# Copyright 2010-2012 Free Software Foundation, Inc.
-#
+#
# This file is part of GNU Radio
-#
+#
# GNU Radio is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
-#
+#
# GNU Radio is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-#
+#
# You should have received a copy of the GNU General Public License
# along with GNU Radio; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street,
# Boston, MA 02110-1301, USA.
-#
+#
"""
Creates the swig_doc.i SWIG interface file.
Execute using: python swig_doc.py xml_path outputfilename
@@ -65,7 +65,7 @@ class Block2(object):
Checks if doxyxml produced objects correspond to a new style
gnuradio block.
"""
-
+
@classmethod
def includes(cls, item):
if not isinstance(item, DoxyClass):
@@ -75,7 +75,7 @@ class Block2(object):
return False
is_a_block2 = item.has_member('make', DoxyFunction) and item.has_member('sptr', DoxyOther)
return is_a_block2
-
+
def utoascii(text):
"""
@@ -100,7 +100,7 @@ def combine_descriptions(obj):
if dd:
description.append(dd)
return utoascii('\n\n'.join(description)).strip()
-
+
def format_params(parameteritems):
output = ['Args:']
template = ' {0} : {1}'
@@ -112,7 +112,7 @@ entry_templ = '%feature("docstring") {name} "{docstring}"'
def make_entry(obj, name=None, templ="{description}", description=None, params=[]):
"""
Create a docstring entry for a swig interface file.
-
+
obj - a doxyxml object from which documentation will be extracted.
name - the name of the C object (defaults to obj.name())
templ - an optional template for the docstring containing only one
@@ -235,11 +235,11 @@ def make_block2_entry(di, block):
return "\n\n".join(output)
def make_swig_interface_file(di, swigdocfilename, custom_output=None):
-
+
output = ["""
/*
* This file was automatically generated using swig_doc.py.
- *
+ *
* Any changes to it will be lost next time it is regenerated.
*/
"""]
@@ -277,7 +277,7 @@ def make_swig_interface_file(di, swigdocfilename, custom_output=None):
# Create docstrings for functions
# Don't include the make functions since they have already been dealt with.
- funcs = [f for f in di.in_category(DoxyFunction)
+ funcs = [f for f in di.in_category(DoxyFunction)
if f.name() not in make_funcs and not f.name().startswith('std::')]
for f in funcs:
try:
diff --git a/docs/exploring-gnuradio/fm_rx.grc b/docs/exploring-gnuradio/fm_rx.grc
index 1d1472a5b5..5cf0d655df 100644
--- a/docs/exploring-gnuradio/fm_rx.grc
+++ b/docs/exploring-gnuradio/fm_rx.grc
@@ -319,7 +319,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>fftsize</key>
@@ -386,7 +386,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
@@ -473,7 +473,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>fftsize</key>
@@ -630,7 +630,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
@@ -717,7 +717,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
@@ -804,7 +804,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>fftsize</key>
diff --git a/docs/exploring-gnuradio/fm_tx.grc b/docs/exploring-gnuradio/fm_tx.grc
index a156c1a3e0..2f047bf09b 100644
--- a/docs/exploring-gnuradio/fm_tx.grc
+++ b/docs/exploring-gnuradio/fm_tx.grc
@@ -344,7 +344,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
@@ -431,7 +431,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>fftsize</key>
@@ -498,7 +498,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
@@ -585,7 +585,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>fftsize</key>
diff --git a/docs/sphinx/CMakeLists.txt b/docs/sphinx/CMakeLists.txt
index 38d77fb3aa..23cb460517 100644
--- a/docs/sphinx/CMakeLists.txt
+++ b/docs/sphinx/CMakeLists.txt
@@ -1,17 +1,17 @@
# Copyright 2012 Free Software Foundation, Inc.
-#
+#
# This file is part of GNU Radio
-#
+#
# GNU Radio is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
-#
+#
# GNU Radio is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-#
+#
# You should have received a copy of the GNU General Public License
# along with GNU Radio; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street,
diff --git a/docs/sphinx/README b/docs/sphinx/README
index 0ae3a43f84..7d2c977d3b 100644
--- a/docs/sphinx/README
+++ b/docs/sphinx/README
@@ -15,7 +15,7 @@ benefits. First, the Sphinx documentation looks nice and is formatted
in such a way that Python users of GNU Radio can easy see the module
structure and hierarchy. It also not only takes the Doxygen
documentation from C++, but it also allows us to take any Python files
-and include their documentation.
+and include their documentation.
The end result is two manuals: one for Python and one for C++ users
without having to duplicate comments, markup, or documentation.
diff --git a/docs/sphinx/gnuradio_sphinx.py b/docs/sphinx/gnuradio_sphinx.py
index 8b52ed3ba6..22b96c32e7 100644
--- a/docs/sphinx/gnuradio_sphinx.py
+++ b/docs/sphinx/gnuradio_sphinx.py
@@ -30,7 +30,7 @@ def fix_signature(app, what, name, obj, options, signature, return_annotation):
SWIG produces signature at the top of docstrings of the form
'blah(int arg1, float arg2) -> return_type'
and if the string is long it breaks it over multiple lines.
-
+
Sphinx gets confused if it is broken over multiple lines.
fix_signature and remove_lines get around this problem.
"""
@@ -107,31 +107,31 @@ common_block_members =[
'to_basic_block',
'unique_id',
'make',
- 'alias',
- 'is_set_max_noutput_items',
- 'max_noutput_items',
- 'max_output_buffer',
- 'message_ports_in',
- 'message_ports_out',
- 'min_output_buffer',
- 'pc_input_buffers_full',
- 'pc_input_buffers_full_var',
- 'pc_noutput_items',
- 'pc_noutput_items_var',
- 'pc_nproduced',
- 'pc_nproduced_var',
- 'pc_output_buffers_full',
- 'pc_output_buffers_full_var',
- 'pc_work_time',
- 'pc_work_time_var',
- 'processor_affinity',
- 'set_block_alias',
- 'set_max_noutput_items',
- 'unset_max_noutput_items',
- 'set_max_output_buffer',
- 'set_min_output_buffer',
- 'set_processor_affinity',
- 'symbol_name',
+ 'alias',
+ 'is_set_max_noutput_items',
+ 'max_noutput_items',
+ 'max_output_buffer',
+ 'message_ports_in',
+ 'message_ports_out',
+ 'min_output_buffer',
+ 'pc_input_buffers_full',
+ 'pc_input_buffers_full_var',
+ 'pc_noutput_items',
+ 'pc_noutput_items_var',
+ 'pc_nproduced',
+ 'pc_nproduced_var',
+ 'pc_output_buffers_full',
+ 'pc_output_buffers_full_var',
+ 'pc_work_time',
+ 'pc_work_time_var',
+ 'processor_affinity',
+ 'set_block_alias',
+ 'set_max_noutput_items',
+ 'unset_max_noutput_items',
+ 'set_max_output_buffer',
+ 'set_min_output_buffer',
+ 'set_processor_affinity',
+ 'symbol_name',
'unset_processor_affinity',
'disconnect_all',
'index',
@@ -159,14 +159,14 @@ class OldBlockDocumenter(FunctionDocumenter):
objtype = 'oldblock'
directivetype = 'function'
# Don't want to use this for generic functions for give low priority.
- priority = -10
-
+ priority = -10
+
def __init__(self, *args, **kwargs):
super(OldBlockDocumenter, self).__init__(*args, **kwargs)
# Get class name
bits = self.name.split('.')
if len(bits) != 3 or bits[0] != 'gnuradio':
- raise ValueError("expected name to be of form gnuradio.x.y but it is {0}".format(self.name))
+ raise ValueError("expected name to be of form gnuradio.x.y but it is {0}".format(self.name))
sptr_name = 'gnuradio.{0}.{0}_{1}_sptr'.format(bits[1], bits[2])
# Create a Class Documenter to create documentation for the classes members.
self.classdoccer = ClassDocumenter(self.directive, sptr_name, indent=self.content_indent)
@@ -191,8 +191,8 @@ class BlockDocumenter(FunctionDocumenter):
objtype = 'block'
directivetype = 'function'
# Don't want to use this for generic functions for give low priority.
- priority = -10
-
+ priority = -10
+
def __init__(self, *args, **kwargs):
super(BlockDocumenter, self).__init__(*args, **kwargs)
# Get class name
@@ -215,7 +215,7 @@ class PyBlockDocumenter(ClassDocumenter):
"""
objtype = 'pyblock'
directivetype = 'class'
-
+
def __init__(self, *args, **kwargs):
super(PyBlockDocumenter, self).__init__(*args, **kwargs)
self.options.members = ALL
diff --git a/docs/sphinx/hieroglyph/errors.py b/docs/sphinx/hieroglyph/errors.py
index 334b097d8a..9c1d2213b2 100644
--- a/docs/sphinx/hieroglyph/errors.py
+++ b/docs/sphinx/hieroglyph/errors.py
@@ -1,10 +1,10 @@
-
-from sphinx.errors import ExtensionError
-
-__author__ = 'rjs'
-
-class HieroglyphError(ExtensionError):
- '''
- An exception type specific to the Hieroglyph Sphinx extension.
- '''
+
+from sphinx.errors import ExtensionError
+
+__author__ = 'rjs'
+
+class HieroglyphError(ExtensionError):
+ '''
+ An exception type specific to the Hieroglyph Sphinx extension.
+ '''
pass \ No newline at end of file
diff --git a/docs/sphinx/hieroglyph/nodes.py b/docs/sphinx/hieroglyph/nodes.py
index e583ce04d7..f0c08b5621 100644
--- a/docs/sphinx/hieroglyph/nodes.py
+++ b/docs/sphinx/hieroglyph/nodes.py
@@ -1,267 +1,267 @@
-__author__ = 'Robert Smallshire'
-
-class Node(object):
-
- def __init__(self, indent=None, lines=None, parent=None):
- if indent is not None:
- self.indent = indent
- else:
- self.indent = 0
-
- if lines is not None:
- self.lines = lines
- else:
- self.lines = []
-
- self._parent = parent
-
- self.children = []
-
- parent = property(lambda self: self._parent)
-
- def add_child(self, child):
- assert(child.parent is self)
- self.children.append(child)
-
-
- def __repr__(self):
- return "Node(" + repr(self.indent) + ", " + repr(self.lines) + ", children=" + repr(self.children) + ")"
-
-
- def render_rst(self, *args, **kwargs):
- result = []
- prefix = ' ' * self.indent
- result.extend(prefix + line for line in self.lines)
- for child in self.children:
- result.extend(child.render_rst())
- return result
-
-
-
-class Arg(Node):
-
- def __init__(self, indent, child_indent, name):
- super(Arg, self).__init__(indent)
- self.child_indent = child_indent
- self.name = name
- self.type = None
-
-
- def __repr__(self):
- return "Arg(" + repr(self.name) + ", " + repr(self.type) + ", children=" + repr(self.children) + ")"
-
-
- def render_rst(self, *args, **kwargs):
- result = []
- indent = ' ' * self.indent
-
- # Render the param description
- description = []
- for child in self.children:
- child_lines = child.render_rst()
- description.extend(child_lines)
-
- dedent = self.child_indent - self.indent
-
- name = self.name.replace('*', r'\*')
-
- first_description = description[0].lstrip() if len(description) else ''
- if not first_description:
- # TODO: Emit a warning about a missing argument description
- pass
-
- result.append("{indent}:param {name}: {first_description}".format(indent=indent, name=name,
- first_description=first_description))
-
- dedented_body = [line[dedent:] for line in description[1:]]
-
- result.extend(dedented_body)
-
- # If a type was specified render the type
- if self.type is not None:
- result.append("{indent}:type {name}: {type}".format(indent=indent, name=self.name, type=self.type))
- result.append('')
-
- ensure_terminal_blank(result)
-
- return result
-
-
-
-class Raises(Node):
-
- def __init__(self, indent=None):
- super(Raises, self).__init__(indent=indent)
-
- def __repr__(self):
- return "Raises(" + repr(self.indent) + ", children=" + repr(self.children) + ")"
-
-
- def render_rst(self, *args, **kwargs):
- result = []
- indent = ' ' * self.indent
- result.append(indent + ':raises:')
- for child in self.children:
- result.extend(child.render_rst(only_child=len(self.children) == 1))
-
- ensure_terminal_blank(result)
-
- return result
-
-
-class Except(Node):
-
- def __init__(self, indent, type):
- super(Except, self).__init__(indent=indent)
- #self.child_indent = child_indent
- self.type = type
-
-
- def __repr__(self):
- return "Except(" + repr(self.type) + ", children=" + repr(self.children) + ")"
-
-
- def render_rst(self, only_child=False, *args, **kwargs):
- result = []
- indent = ' ' * self.indent
-
- # Render the param description
- description = []
- for child in self.children:
- child_lines = child.render_rst()
- description.extend(child_lines)
-
- #dedent = self.child_indent - self.indent
- bullet = '* ' if not only_child else ''
-
- first_description = description[0].lstrip() if len(description) else ''
- result.append("{indent}{bullet}{type} - {first_description}".format(indent=indent,
- bullet=bullet, type=self.type,
- first_description=first_description))
-
- #dedented_body = [' ' * len(bullet) + line[dedent:] for line in description[1:]]
- #result.extend(dedented_body)
- result.extend(description[1:])
- ensure_terminal_blank(result)
-
- return result
-
-
-
-class Returns(Node):
-
- def __init__(self, indent):
- super(Returns, self).__init__(indent=indent)
- self.title = 'Returns'
- self.line = ''
-
-
- def __repr__(self):
- return "Returns(" + str(self.indent) + ", children=" + str(self.children) + ")"
-
-
- def render_rst(self, *args, **kwargs):
- result = []
- indent = ' ' * self.indent
-
- # Render the param description
- description = [self.line] if self.line else []
- for child in self.children:
- child_lines = child.render_rst()
- description.extend(child_lines)
-
- self.render_title(description, indent, result)
-
- result.extend(description[1:])
-
- ensure_terminal_blank(result)
- return result
-
-
- def render_title(self, description, indent, result):
- result.append(
- "{indent}:returns: {first_description}".format(indent=indent,
- first_description=description[0].lstrip()))
-
-
-
-class Warning(Node):
-
- def __init__(self, indent):
- super(Warning, self).__init__(indent=indent)
-
- def __repr__(self):
- return "Warning(" + repr(self.indent) + ", children=" + str(self.children) + ")"
-
- def render_rst(self, *args, **kwargs):
- # TODO: Factor out the commonality between this and Note below
- result = []
- indent = ' ' * self.indent
-
- # Render the param description
- description = [self.line] if self.line else []
- for child in self.children:
- child_lines = child.render_rst()
- description.extend(child_lines)
-
- # Fix the indent on the first line
- if len(description) > 1 and len(description[1].strip()) != 0:
- body_indent = len(description[1]) - len(description[1].strip())
- else:
- body_indent = self.indent + 4
-
- if len(description) > 0:
- description[0] = ' ' * body_indent + description[0]
-
- result.append(indent + ".. warning::")
- result.append(indent + '')
- result.extend(description)
-
- ensure_terminal_blank(result)
- return result
-
-
-class Note(Node):
-
- def __init__(self, indent):
- super(Note, self).__init__(indent=indent)
- self.line = ''
-
-
- def __repr__(self):
- return "Note(" + repr(self.indent) + ", children=" + str(self.children) + ")"
-
-
- def render_rst(self, *args, **kwargs):
- # TODO: Factor out the commonality between this and Warning above
- result = []
- indent = ' ' * self.indent
-
- # Render the param description
- description = [self.line] if self.line else []
- for child in self.children:
- child_lines = child.render_rst()
- description.extend(child_lines)
-
- # Fix the indent on the first line
- if len(description) > 1 and len(description[1].strip()) != 0:
- body_indent = len(description[1]) - len(description[1].strip())
- else:
- body_indent = self.indent + 4
-
- if len(description) > 0:
- description[0] = ' ' * body_indent + description[0]
-
- result.append(indent + ".. note::")
- result.append(indent + '')
- result.extend(description)
-
- ensure_terminal_blank(result)
- return result
-
-
-def ensure_terminal_blank(result):
- '''If the description didn't end with a blank line add one here.'''
- if len(result) > 0:
- if len(result[-1].strip()) != 0:
- result.append('')
+__author__ = 'Robert Smallshire'
+
+class Node(object):
+
+ def __init__(self, indent=None, lines=None, parent=None):
+ if indent is not None:
+ self.indent = indent
+ else:
+ self.indent = 0
+
+ if lines is not None:
+ self.lines = lines
+ else:
+ self.lines = []
+
+ self._parent = parent
+
+ self.children = []
+
+ parent = property(lambda self: self._parent)
+
+ def add_child(self, child):
+ assert(child.parent is self)
+ self.children.append(child)
+
+
+ def __repr__(self):
+ return "Node(" + repr(self.indent) + ", " + repr(self.lines) + ", children=" + repr(self.children) + ")"
+
+
+ def render_rst(self, *args, **kwargs):
+ result = []
+ prefix = ' ' * self.indent
+ result.extend(prefix + line for line in self.lines)
+ for child in self.children:
+ result.extend(child.render_rst())
+ return result
+
+
+
+class Arg(Node):
+
+ def __init__(self, indent, child_indent, name):
+ super(Arg, self).__init__(indent)
+ self.child_indent = child_indent
+ self.name = name
+ self.type = None
+
+
+ def __repr__(self):
+ return "Arg(" + repr(self.name) + ", " + repr(self.type) + ", children=" + repr(self.children) + ")"
+
+
+ def render_rst(self, *args, **kwargs):
+ result = []
+ indent = ' ' * self.indent
+
+ # Render the param description
+ description = []
+ for child in self.children:
+ child_lines = child.render_rst()
+ description.extend(child_lines)
+
+ dedent = self.child_indent - self.indent
+
+ name = self.name.replace('*', r'\*')
+
+ first_description = description[0].lstrip() if len(description) else ''
+ if not first_description:
+ # TODO: Emit a warning about a missing argument description
+ pass
+
+ result.append("{indent}:param {name}: {first_description}".format(indent=indent, name=name,
+ first_description=first_description))
+
+ dedented_body = [line[dedent:] for line in description[1:]]
+
+ result.extend(dedented_body)
+
+ # If a type was specified render the type
+ if self.type is not None:
+ result.append("{indent}:type {name}: {type}".format(indent=indent, name=self.name, type=self.type))
+ result.append('')
+
+ ensure_terminal_blank(result)
+
+ return result
+
+
+
+class Raises(Node):
+
+ def __init__(self, indent=None):
+ super(Raises, self).__init__(indent=indent)
+
+ def __repr__(self):
+ return "Raises(" + repr(self.indent) + ", children=" + repr(self.children) + ")"
+
+
+ def render_rst(self, *args, **kwargs):
+ result = []
+ indent = ' ' * self.indent
+ result.append(indent + ':raises:')
+ for child in self.children:
+ result.extend(child.render_rst(only_child=len(self.children) == 1))
+
+ ensure_terminal_blank(result)
+
+ return result
+
+
+class Except(Node):
+
+ def __init__(self, indent, type):
+ super(Except, self).__init__(indent=indent)
+ #self.child_indent = child_indent
+ self.type = type
+
+
+ def __repr__(self):
+ return "Except(" + repr(self.type) + ", children=" + repr(self.children) + ")"
+
+
+ def render_rst(self, only_child=False, *args, **kwargs):
+ result = []
+ indent = ' ' * self.indent
+
+ # Render the param description
+ description = []
+ for child in self.children:
+ child_lines = child.render_rst()
+ description.extend(child_lines)
+
+ #dedent = self.child_indent - self.indent
+ bullet = '* ' if not only_child else ''
+
+ first_description = description[0].lstrip() if len(description) else ''
+ result.append("{indent}{bullet}{type} - {first_description}".format(indent=indent,
+ bullet=bullet, type=self.type,
+ first_description=first_description))
+
+ #dedented_body = [' ' * len(bullet) + line[dedent:] for line in description[1:]]
+ #result.extend(dedented_body)
+ result.extend(description[1:])
+ ensure_terminal_blank(result)
+
+ return result
+
+
+
+class Returns(Node):
+
+ def __init__(self, indent):
+ super(Returns, self).__init__(indent=indent)
+ self.title = 'Returns'
+ self.line = ''
+
+
+ def __repr__(self):
+ return "Returns(" + str(self.indent) + ", children=" + str(self.children) + ")"
+
+
+ def render_rst(self, *args, **kwargs):
+ result = []
+ indent = ' ' * self.indent
+
+ # Render the param description
+ description = [self.line] if self.line else []
+ for child in self.children:
+ child_lines = child.render_rst()
+ description.extend(child_lines)
+
+ self.render_title(description, indent, result)
+
+ result.extend(description[1:])
+
+ ensure_terminal_blank(result)
+ return result
+
+
+ def render_title(self, description, indent, result):
+ result.append(
+ "{indent}:returns: {first_description}".format(indent=indent,
+ first_description=description[0].lstrip()))
+
+
+
+class Warning(Node):
+
+ def __init__(self, indent):
+ super(Warning, self).__init__(indent=indent)
+
+ def __repr__(self):
+ return "Warning(" + repr(self.indent) + ", children=" + str(self.children) + ")"
+
+ def render_rst(self, *args, **kwargs):
+ # TODO: Factor out the commonality between this and Note below
+ result = []
+ indent = ' ' * self.indent
+
+ # Render the param description
+ description = [self.line] if self.line else []
+ for child in self.children:
+ child_lines = child.render_rst()
+ description.extend(child_lines)
+
+ # Fix the indent on the first line
+ if len(description) > 1 and len(description[1].strip()) != 0:
+ body_indent = len(description[1]) - len(description[1].strip())
+ else:
+ body_indent = self.indent + 4
+
+ if len(description) > 0:
+ description[0] = ' ' * body_indent + description[0]
+
+ result.append(indent + ".. warning::")
+ result.append(indent + '')
+ result.extend(description)
+
+ ensure_terminal_blank(result)
+ return result
+
+
+class Note(Node):
+
+ def __init__(self, indent):
+ super(Note, self).__init__(indent=indent)
+ self.line = ''
+
+
+ def __repr__(self):
+ return "Note(" + repr(self.indent) + ", children=" + str(self.children) + ")"
+
+
+ def render_rst(self, *args, **kwargs):
+ # TODO: Factor out the commonality between this and Warning above
+ result = []
+ indent = ' ' * self.indent
+
+ # Render the param description
+ description = [self.line] if self.line else []
+ for child in self.children:
+ child_lines = child.render_rst()
+ description.extend(child_lines)
+
+ # Fix the indent on the first line
+ if len(description) > 1 and len(description[1].strip()) != 0:
+ body_indent = len(description[1]) - len(description[1].strip())
+ else:
+ body_indent = self.indent + 4
+
+ if len(description) > 0:
+ description[0] = ' ' * body_indent + description[0]
+
+ result.append(indent + ".. note::")
+ result.append(indent + '')
+ result.extend(description)
+
+ ensure_terminal_blank(result)
+ return result
+
+
+def ensure_terminal_blank(result):
+ '''If the description didn't end with a blank line add one here.'''
+ if len(result) > 0:
+ if len(result[-1].strip()) != 0:
+ result.append('')
diff --git a/docs/sphinx/hieroglyph/test/__init__.py b/docs/sphinx/hieroglyph/test/__init__.py
index fd249423f2..c9b674ead2 100644
--- a/docs/sphinx/hieroglyph/test/__init__.py
+++ b/docs/sphinx/hieroglyph/test/__init__.py
@@ -1,2 +1 @@
__author__ = 'rjs'
- \ No newline at end of file
diff --git a/docs/sphinx/hieroglyph/test/test_hierglyph.py b/docs/sphinx/hieroglyph/test/test_hierglyph.py
index 42947cb0c7..4f86db5784 100644
--- a/docs/sphinx/hieroglyph/test/test_hierglyph.py
+++ b/docs/sphinx/hieroglyph/test/test_hierglyph.py
@@ -1,264 +1,264 @@
-import unittest
-from hieroglyph.hieroglyph import first_paragraph_indent, gather_lines, unindent
-
-__author__ = 'Robert Smallshire'
-
-class UnindentTests(unittest.TestCase):
-
- def test_zero_lines(self):
- source = []
- expected = []
- actual = unindent(source)
- self.assertEqual(actual, expected)
-
- def test_one_zero_indent_line(self):
- source = ["First line"]
- expected = [(0, "First line")]
- actual = unindent(source)
- self.assertEqual(actual, expected)
-
- def test_two_zero_indent_lines(self):
- source = ["First line",
- "Second line"]
- expected = [(0, "First line"),
- (0, "Second line")]
- actual = unindent(source)
- self.assertEqual(actual, expected)
-
- def test_two_indented_lines(self):
- source = [" First line",
- " Second line"]
- expected = [(4, "First line"),
- (6, "Second line")]
- actual = unindent(source)
- self.assertEqual(actual, expected)
-
- def test_whitespace_line(self):
- source = [" "]
- expected = [(4, "")]
- actual = unindent(source)
- self.assertEqual(actual, expected)
-
- def test_tab_line(self):
- source = ["\tHello"]
- expected = [(1, "Hello")]
- actual = unindent(source)
- self.assertEqual(actual, expected)
-
-
-class FirstParagraphIndentTests(unittest.TestCase):
-
- def test_zero_lines(self):
- source = []
- expected = []
- actual = first_paragraph_indent(source)
- self.assertEqual(actual, expected)
-
- def test_single_line_non_indented_comment(self):
- source = [(0, "A single line comment")]
- expected = [(0, "A single line comment")]
- actual = first_paragraph_indent(source)
- self.assertEqual(actual, expected)
-
- def test_single_line_indented_comment(self):
- source = [(4, "A single line comment")]
- expected = [(4, "A single line comment")]
- actual = first_paragraph_indent(source)
- self.assertEqual(actual, expected)
-
- def test_double_line_non_indented_comment(self):
- source = [(0, "The first line"),
- (0, "The second line")]
- expected = [(0, "The first line"),
- (0, "The second line")]
- actual = first_paragraph_indent(source)
- self.assertEqual(actual, expected)
-
- def test_double_line_indented_comment(self):
- source = [(4, "The first line"),
- (4, "The second line")]
- expected = [(4, "The first line"),
- (4, "The second line")]
- actual = first_paragraph_indent(source)
- self.assertEqual(actual, expected)
-
- def test_first_line_indent(self):
- source = [(4, "The first line"),
- (0, "The second line")]
- expected = [(4, "The first line"),
- (0, "The second line")]
- actual = first_paragraph_indent(source)
- self.assertEqual(actual, expected)
-
- def test_first_line_non_indent(self):
- source = [(0, "The first line"),
- (4, "The second line")]
- expected = [(4, "The first line"),
- (4, "The second line")]
- actual = first_paragraph_indent(source)
- self.assertEqual(actual, expected)
-
- def test_increasing_indent(self):
- source = [(0, "The first line"),
- (4, "The second line"),
- (8, "The third line")]
- expected = [(4, "The first line"),
- (4, "The second line"),
- (8, "The third line")]
- actual = first_paragraph_indent(source)
- self.assertEqual(actual, expected)
-
- def test_separate_paragraphs(self):
- source = [(0, "This is the first paragraph"),
- (0, ""),
- (4, "This is the second paragraph")]
- expected = [(0, "This is the first paragraph"),
- (0, ""),
- (4, "This is the second paragraph")]
- actual = first_paragraph_indent(source)
- self.assertEqual(actual, expected)
-
- def test_separate_paragraphs_indented(self):
- source = [(4, "This is the first paragraph"),
- (4, ""),
- (8, "This is the second paragraph")]
- expected = [(4, "This is the first paragraph"),
- (4, ""),
- (8, "This is the second paragraph")]
- actual = first_paragraph_indent(source)
- self.assertEqual(actual, expected)
-
- def test_separated_lines_first_line_non_indented(self):
- source = [(0, "The first line"),
- (0, ""),
- (4, "The third line")]
- expected = [(0, "The first line"),
- (0, ""),
- (4, "The third line")]
- actual = first_paragraph_indent(source)
- self.assertEqual(actual, expected)
-
- def test_separated_lines_first_line_indented(self):
- source = [(4, "The first line"),
- (4, ""),
- (4, "The third line")]
- expected = [(4, "The first line"),
- (4, ""),
- (4, "The third line")]
- actual = first_paragraph_indent(source)
- self.assertEqual(actual, expected)
-
-class GatherLinesTests(unittest.TestCase):
-
- def test_empty(self):
- source = []
- expected = []
- actual = gather_lines(source)
- self.assertEqual(actual, expected)
-
- def test_one_liner(self):
- source = [(0, 'One liner')]
- expected = [(0, ['One liner'])]
- actual = gather_lines(source)
- self.assertEqual(actual, expected)
-
- def test_two_liner(self):
- source = [(0, 'First line'),
- (0, 'Second line')]
- expected = [(0, ['First line',
- 'Second line'])]
- actual = gather_lines(source)
- self.assertEqual(actual, expected)
-
- def test_separated_lines(self):
- source = [(0, 'First line'),
- (0, ''),
- (0, 'Third line')]
- expected = [(0, ['First line',
- '']),
- (0, ['Third line'])]
- actual = gather_lines(source)
- self.assertEqual(actual, expected)
-
- def test_separated_multi_lines(self):
- source = [(0, 'First line'),
- (0, 'Second line'),
- (0, ''),
- (0, 'Fourth line'),
- (0, 'Fifth line')]
- expected = [(0, ['First line',
- 'Second line',
- '']),
- (0, ['Fourth line',
- 'Fifth line'])]
- actual = gather_lines(source)
- self.assertEqual(actual, expected)
-
-
- def test_indented_lines(self):
- source = [(0, 'First line'),
- (4, 'Second line')]
- expected = [(0, ['First line']),
- (4, ['Second line'])]
- actual = gather_lines(source)
- self.assertEqual(actual, expected)
-
- def test_dedented_lines(self):
- source = [(4, 'First line'),
- (0, 'Second line')]
- expected = [(4, ['First line']),
- (0, ['Second line'])]
- actual = gather_lines(source)
- self.assertEqual(actual, expected)
-
- def test_indented_multi_lines(self):
- source = [(0, 'First line'),
- (0, 'Second line'),
- (4, 'Third line'),
- (4, 'Fourth line')]
- expected = [(0, ['First line',
- 'Second line']),
- (4, ['Third line',
- 'Fourth line'])]
- actual = gather_lines(source)
- self.assertEqual(actual, expected)
-
- def test_dedented_multi_lines(self):
- source = [(4, 'First line'),
- (4, 'Second line'),
- (0, 'Third line'),
- (0, 'Fourth line')]
- expected = [(4, ['First line',
- 'Second line']),
- (0, ['Third line',
- 'Fourth line'])]
- actual = gather_lines(source)
- self.assertEqual(actual, expected)
-
- def test_indented_separated_multi_lines(self):
- source = [(0, 'First line'),
- (0, 'Second line'),
- (0, ''),
- (4, 'Fourth line'),
- (4, 'Fifth line')]
- expected = [(0, ['First line',
- 'Second line',
- '']),
- (4, ['Fourth line',
- 'Fifth line'])]
- actual = gather_lines(source)
- self.assertEqual(actual, expected)
-
- def test_dedented_separated_multi_lines(self):
- source = [(4, 'First line'),
- (4, 'Second line'),
- (4, ''),
- (0, 'Fourth line'),
- (0, 'Fifth line')]
- expected = [(4, ['First line',
- 'Second line',
- '']),
- (0, ['Fourth line',
- 'Fifth line'])]
- actual = gather_lines(source)
- self.assertEqual(actual, expected)
+import unittest
+from hieroglyph.hieroglyph import first_paragraph_indent, gather_lines, unindent
+
+__author__ = 'Robert Smallshire'
+
+class UnindentTests(unittest.TestCase):
+
+ def test_zero_lines(self):
+ source = []
+ expected = []
+ actual = unindent(source)
+ self.assertEqual(actual, expected)
+
+ def test_one_zero_indent_line(self):
+ source = ["First line"]
+ expected = [(0, "First line")]
+ actual = unindent(source)
+ self.assertEqual(actual, expected)
+
+ def test_two_zero_indent_lines(self):
+ source = ["First line",
+ "Second line"]
+ expected = [(0, "First line"),
+ (0, "Second line")]
+ actual = unindent(source)
+ self.assertEqual(actual, expected)
+
+ def test_two_indented_lines(self):
+ source = [" First line",
+ " Second line"]
+ expected = [(4, "First line"),
+ (6, "Second line")]
+ actual = unindent(source)
+ self.assertEqual(actual, expected)
+
+ def test_whitespace_line(self):
+ source = [" "]
+ expected = [(4, "")]
+ actual = unindent(source)
+ self.assertEqual(actual, expected)
+
+ def test_tab_line(self):
+ source = ["\tHello"]
+ expected = [(1, "Hello")]
+ actual = unindent(source)
+ self.assertEqual(actual, expected)
+
+
+class FirstParagraphIndentTests(unittest.TestCase):
+
+ def test_zero_lines(self):
+ source = []
+ expected = []
+ actual = first_paragraph_indent(source)
+ self.assertEqual(actual, expected)
+
+ def test_single_line_non_indented_comment(self):
+ source = [(0, "A single line comment")]
+ expected = [(0, "A single line comment")]
+ actual = first_paragraph_indent(source)
+ self.assertEqual(actual, expected)
+
+ def test_single_line_indented_comment(self):
+ source = [(4, "A single line comment")]
+ expected = [(4, "A single line comment")]
+ actual = first_paragraph_indent(source)
+ self.assertEqual(actual, expected)
+
+ def test_double_line_non_indented_comment(self):
+ source = [(0, "The first line"),
+ (0, "The second line")]
+ expected = [(0, "The first line"),
+ (0, "The second line")]
+ actual = first_paragraph_indent(source)
+ self.assertEqual(actual, expected)
+
+ def test_double_line_indented_comment(self):
+ source = [(4, "The first line"),
+ (4, "The second line")]
+ expected = [(4, "The first line"),
+ (4, "The second line")]
+ actual = first_paragraph_indent(source)
+ self.assertEqual(actual, expected)
+
+ def test_first_line_indent(self):
+ source = [(4, "The first line"),
+ (0, "The second line")]
+ expected = [(4, "The first line"),
+ (0, "The second line")]
+ actual = first_paragraph_indent(source)
+ self.assertEqual(actual, expected)
+
+ def test_first_line_non_indent(self):
+ source = [(0, "The first line"),
+ (4, "The second line")]
+ expected = [(4, "The first line"),
+ (4, "The second line")]
+ actual = first_paragraph_indent(source)
+ self.assertEqual(actual, expected)
+
+ def test_increasing_indent(self):
+ source = [(0, "The first line"),
+ (4, "The second line"),
+ (8, "The third line")]
+ expected = [(4, "The first line"),
+ (4, "The second line"),
+ (8, "The third line")]
+ actual = first_paragraph_indent(source)
+ self.assertEqual(actual, expected)
+
+ def test_separate_paragraphs(self):
+ source = [(0, "This is the first paragraph"),
+ (0, ""),
+ (4, "This is the second paragraph")]
+ expected = [(0, "This is the first paragraph"),
+ (0, ""),
+ (4, "This is the second paragraph")]
+ actual = first_paragraph_indent(source)
+ self.assertEqual(actual, expected)
+
+ def test_separate_paragraphs_indented(self):
+ source = [(4, "This is the first paragraph"),
+ (4, ""),
+ (8, "This is the second paragraph")]
+ expected = [(4, "This is the first paragraph"),
+ (4, ""),
+ (8, "This is the second paragraph")]
+ actual = first_paragraph_indent(source)
+ self.assertEqual(actual, expected)
+
+ def test_separated_lines_first_line_non_indented(self):
+ source = [(0, "The first line"),
+ (0, ""),
+ (4, "The third line")]
+ expected = [(0, "The first line"),
+ (0, ""),
+ (4, "The third line")]
+ actual = first_paragraph_indent(source)
+ self.assertEqual(actual, expected)
+
+ def test_separated_lines_first_line_indented(self):
+ source = [(4, "The first line"),
+ (4, ""),
+ (4, "The third line")]
+ expected = [(4, "The first line"),
+ (4, ""),
+ (4, "The third line")]
+ actual = first_paragraph_indent(source)
+ self.assertEqual(actual, expected)
+
+class GatherLinesTests(unittest.TestCase):
+
+ def test_empty(self):
+ source = []
+ expected = []
+ actual = gather_lines(source)
+ self.assertEqual(actual, expected)
+
+ def test_one_liner(self):
+ source = [(0, 'One liner')]
+ expected = [(0, ['One liner'])]
+ actual = gather_lines(source)
+ self.assertEqual(actual, expected)
+
+ def test_two_liner(self):
+ source = [(0, 'First line'),
+ (0, 'Second line')]
+ expected = [(0, ['First line',
+ 'Second line'])]
+ actual = gather_lines(source)
+ self.assertEqual(actual, expected)
+
+ def test_separated_lines(self):
+ source = [(0, 'First line'),
+ (0, ''),
+ (0, 'Third line')]
+ expected = [(0, ['First line',
+ '']),
+ (0, ['Third line'])]
+ actual = gather_lines(source)
+ self.assertEqual(actual, expected)
+
+ def test_separated_multi_lines(self):
+ source = [(0, 'First line'),
+ (0, 'Second line'),
+ (0, ''),
+ (0, 'Fourth line'),
+ (0, 'Fifth line')]
+ expected = [(0, ['First line',
+ 'Second line',
+ '']),
+ (0, ['Fourth line',
+ 'Fifth line'])]
+ actual = gather_lines(source)
+ self.assertEqual(actual, expected)
+
+
+ def test_indented_lines(self):
+ source = [(0, 'First line'),
+ (4, 'Second line')]
+ expected = [(0, ['First line']),
+ (4, ['Second line'])]
+ actual = gather_lines(source)
+ self.assertEqual(actual, expected)
+
+ def test_dedented_lines(self):
+ source = [(4, 'First line'),
+ (0, 'Second line')]
+ expected = [(4, ['First line']),
+ (0, ['Second line'])]
+ actual = gather_lines(source)
+ self.assertEqual(actual, expected)
+
+ def test_indented_multi_lines(self):
+ source = [(0, 'First line'),
+ (0, 'Second line'),
+ (4, 'Third line'),
+ (4, 'Fourth line')]
+ expected = [(0, ['First line',
+ 'Second line']),
+ (4, ['Third line',
+ 'Fourth line'])]
+ actual = gather_lines(source)
+ self.assertEqual(actual, expected)
+
+ def test_dedented_multi_lines(self):
+ source = [(4, 'First line'),
+ (4, 'Second line'),
+ (0, 'Third line'),
+ (0, 'Fourth line')]
+ expected = [(4, ['First line',
+ 'Second line']),
+ (0, ['Third line',
+ 'Fourth line'])]
+ actual = gather_lines(source)
+ self.assertEqual(actual, expected)
+
+ def test_indented_separated_multi_lines(self):
+ source = [(0, 'First line'),
+ (0, 'Second line'),
+ (0, ''),
+ (4, 'Fourth line'),
+ (4, 'Fifth line')]
+ expected = [(0, ['First line',
+ 'Second line',
+ '']),
+ (4, ['Fourth line',
+ 'Fifth line'])]
+ actual = gather_lines(source)
+ self.assertEqual(actual, expected)
+
+ def test_dedented_separated_multi_lines(self):
+ source = [(4, 'First line'),
+ (4, 'Second line'),
+ (4, ''),
+ (0, 'Fourth line'),
+ (0, 'Fifth line')]
+ expected = [(4, ['First line',
+ 'Second line',
+ '']),
+ (0, ['Fourth line',
+ 'Fifth line'])]
+ actual = gather_lines(source)
+ self.assertEqual(actual, expected)
diff --git a/docs/sphinx/hieroglyph/test/test_nodes.py b/docs/sphinx/hieroglyph/test/test_nodes.py
index 4cc17b4771..12cd25a03e 100644
--- a/docs/sphinx/hieroglyph/test/test_nodes.py
+++ b/docs/sphinx/hieroglyph/test/test_nodes.py
@@ -1,386 +1,386 @@
-import unittest
-from hieroglyph.nodes import Node, Arg, Raises, Except, Returns, Warning, Note
-
-__author__ = 'Robert Smallshire'
-
-class NodeTests(unittest.TestCase):
-
- def test_create_default_node(self):
- node = Node()
- self.assertEqual(node.indent, 0)
- self.assertEqual(node.lines, [])
- self.assertIsNone(node.parent)
-
- def test_create_with_indent(self):
- node = Node(indent=4)
- self.assertEqual(node.indent, 4)
- self.assertEqual(node.lines, [])
- self.assertIsNone(node.parent)
-
- def test_create_with_lines(self):
- node = Node(lines= ['First', 'Second', 'Third'])
- self.assertEqual(node.indent, 0)
- self.assertEqual(node.lines, ['First', 'Second', 'Third'])
- self.assertIsNone(node.parent)
-
- def test_repr(self):
- node = Node(5, ['One', 'Two', 'Three'])
- actual = repr(node)
- expected = "Node(5, ['One', 'Two', 'Three'], children=[])"
- self.assertEqual(expected, actual)
-
- def test_add_one_child(self):
- node = Node()
- child = Node(parent=node)
- node.add_child(child)
- self.assertIs(node.children[0], child)
-
- def test_add_two_children(self):
- node = Node()
- child0 = Node(parent=node)
- child1 = Node(parent=node)
- node.add_child(child0)
- node.add_child(child1)
- self.assertIs(node.children[0], child0)
- self.assertIs(node.children[1], child1)
-
- def test_render_rst_empty(self):
- node = Node()
- rst = node.render_rst()
- self.assertEqual(len(rst), 0)
-
- def test_render_rst_indent(self):
- node = Node(indent=4)
- rst = node.render_rst()
- self.assertEqual(len(rst), 0)
-
- def test_render_rst_lines(self):
- node = Node(lines= ['First',
- 'Second',
- 'Third'])
- rst = node.render_rst()
- self.assertEqual(rst, ['First',
- 'Second',
- 'Third'])
-
- def test_render_rst_indented_lines(self):
- node = Node(indent=3, lines= ['First',
- 'Second',
- 'Third'])
- rst = node.render_rst()
- self.assertEqual(rst, [' First',
- ' Second',
- ' Third'])
-
- def test_render_rst_with_child(self):
- node = Node(indent=4, lines=["Parent"])
- child = Node(indent=8, lines=["Child"], parent=node)
- node.add_child(child)
- rst = node.render_rst()
- self.assertEqual(rst, [' Parent',
- ' Child'])
-
- def test_render_rst_with_children(self):
- node = Node(indent=4, lines=["Parent"])
- child_a = Node(indent=8, lines=["ChildA"], parent=node)
- node.add_child(child_a)
- child_b = Node(indent=6, lines=["ChildB"], parent=node)
- node.add_child(child_b)
- rst = node.render_rst()
- self.assertEqual(rst, [' Parent',
- ' ChildA',
- ' ChildB'])
-
-
-class ArgTests(unittest.TestCase):
-
- def test_create(self):
- node = Arg(5, 10, 'foo')
- self.assertEqual(node.indent, 5)
- self.assertEqual(node.child_indent, 10)
- self.assertEqual(node.name, 'foo')
- self.assertEqual(node.lines, [])
- self.assertIsNone(node.parent)
-
- def test_set_type(self):
- node = Arg(5, 10, 'foo')
- node.type = 'str'
- self.assertEqual(node.type, 'str')
-
- def test_add_one_child(self):
- node = Arg(5, 10, 'foo')
- child = Node(parent=node)
- node.add_child(child)
- self.assertIs(node.children[0], child)
-
- def test_add_two_children(self):
- node = Arg(5, 10, 'foo')
- child0 = Node(parent=node)
- child1 = Node(parent=node)
- node.add_child(child0)
- node.add_child(child1)
- self.assertIs(node.children[0], child0)
- self.assertIs(node.children[1], child1)
-
- def test_repr(self):
- node = Arg(5, 10, 'foo')
- actual = repr(node)
- expected = "Arg('foo', None, children=[])"
- self.assertEqual(expected, actual)
-
- def test_render_rst_empty(self):
- node = Arg(5, 10, 'bar')
- rst = node.render_rst()
- self.assertEqual(rst, [' :param bar: ',
- ''])
-
- def test_render_rst_with_child(self):
- node = Arg(5, 10, 'bar')
- child = Node(indent=10, lines=["Description"], parent=node)
- node.add_child(child)
- rst = node.render_rst()
- self.assertEqual(rst, [' :param bar: Description',
- ''])
-
- def test_render_rst_with_children(self):
- node = Arg(5, 10, 'bar')
- child_a = Node(indent=10, lines=["ChildA"], parent=node)
- node.add_child(child_a)
- child_b = Node(indent=10, lines=["ChildB"], parent=node)
- node.add_child(child_b)
- rst = node.render_rst()
- self.assertEqual(rst, [' :param bar: ChildA',
- ' ChildB',
- ''])
-
- def test_render_rst_with_type(self):
- node = Arg(5, 10, 'bar')
- node.type = 'str'
- rst = node.render_rst()
- self.assertEqual(rst, [' :param bar: ',
- ' :type bar: str',
- ''])
-
-
-class RaisesTests(unittest.TestCase):
-
- def test_create_default_node(self):
- node = Raises()
- self.assertEqual(node.indent, 0)
- self.assertEqual(node.lines, [])
- self.assertIsNone(node.parent)
-
- def test_create_with_indent(self):
- node = Raises(indent=4)
- self.assertEqual(node.indent, 4)
- self.assertEqual(node.lines, [])
- self.assertIsNone(node.parent)
-
- def test_repr(self):
- node = Raises(5)
- actual = repr(node)
- expected = "Raises(5, children=[])"
- self.assertEqual(expected, actual)
-
- def test_add_one_child(self):
- node = Raises()
- child = Node(parent=node)
- node.add_child(child)
- self.assertIs(node.children[0], child)
-
- def test_add_two_children(self):
- node = Raises()
- child0 = Node(parent=node)
- child1 = Node(parent=node)
- node.add_child(child0)
- node.add_child(child1)
- self.assertIs(node.children[0], child0)
- self.assertIs(node.children[1], child1)
-
- def test_render_rst_empty(self):
- node = Raises()
- rst = node.render_rst()
- self.assertEqual(rst, [':raises:',
- ''])
-
- def test_render_rst_indent(self):
- node = Raises(indent=5)
- rst = node.render_rst()
- self.assertEqual(rst, [' :raises:',
- ''])
-
- def test_render_rst_with_child(self):
- node = Raises(5)
- child = Node(indent=10, lines=["Description"], parent=node)
- node.add_child(child)
- rst = node.render_rst()
- self.assertEqual(rst, [' :raises:',
- ' Description',
- ''])
-
- def test_render_rst_with_children(self):
- node = Raises(5)
- child_a = Node(indent=10, lines=["ChildA"], parent=node)
- node.add_child(child_a)
- child_b = Node(indent=10, lines=["ChildB"], parent=node)
- node.add_child(child_b)
- rst = node.render_rst()
- self.assertEqual(rst, [' :raises:',
- ' ChildA',
- ' ChildB',
- ''])
-
-
-class ExceptTests(unittest.TestCase):
-
- def test_create(self):
- node = Except(5, 'FooError')
- self.assertEqual(node.indent, 5)
- self.assertEqual(node.type, 'FooError')
- self.assertEqual(node.lines, [])
- self.assertIsNone(node.parent)
-
- def test_add_one_child(self):
- node = Except(5, 'FooError')
- child = Node(parent=node)
- node.add_child(child)
- self.assertIs(node.children[0], child)
-
- def test_add_two_children(self):
- node = Except(5, 'FooError')
- child0 = Node(parent=node)
- child1 = Node(parent=node)
- node.add_child(child0)
- node.add_child(child1)
- self.assertIs(node.children[0], child0)
- self.assertIs(node.children[1], child1)
-
- def test_repr(self):
- node = Except(5,'FooError')
- actual = repr(node)
- expected = "Except('FooError', children=[])"
- self.assertEqual(expected, actual)
-
- def test_render_rst_empty(self):
- node = Except(5, 'FooError')
- rst = node.render_rst()
- self.assertEqual(rst, [' * FooError - ',
- ''])
-
- def test_render_rst_indent(self):
- node = Except(5, 'FooError')
- rst = node.render_rst()
- self.assertEqual(rst, [' * FooError - ',
- ''])
-
- def test_render_rst_with_child(self):
- node = Except(5, 'FooError')
- child = Node(indent=10, lines=["Description"], parent=node)
- node.add_child(child)
- rst = node.render_rst()
- self.assertEqual(rst, [' * FooError - Description',
- ''])
-
- def test_render_rst_with_children(self):
- node = Except(5, 'FooError')
- child_a = Node(indent=10, lines=["ChildA"], parent=node)
- node.add_child(child_a)
- child_b = Node(indent=10, lines=["ChildB"], parent=node)
- node.add_child(child_b)
- rst = node.render_rst()
- self.assertEqual(rst, [' * FooError - ChildA',
- ' ChildB',
- ''])
-
-class ReturnsTests(unittest.TestCase):
-
- def test_create(self):
- node = Returns(5)
- self.assertEqual(node.indent, 5)
- self.assertEqual(node.lines, [])
- self.assertIsNone(node.parent)
-
- def test_add_one_child(self):
- node = Returns(5)
- child = Node(parent=node)
- node.add_child(child)
- self.assertIs(node.children[0], child)
-
- def test_add_two_children(self):
- node = Returns(5)
- child0 = Node(parent=node)
- child1 = Node(parent=node)
- node.add_child(child0)
- node.add_child(child1)
- self.assertIs(node.children[0], child0)
- self.assertIs(node.children[1], child1)
-
- def test_repr(self):
- node = Returns(5)
- actual = repr(node)
- expected = "Returns(5, children=[])"
- self.assertEqual(expected, actual)
-
- # TODO test_render_rst
-
-class WarningTests(unittest.TestCase):
-
- def test_create(self):
- node = Warning(5)
- self.assertEqual(node.indent, 5)
- self.assertEqual(node.lines, [])
- self.assertIsNone(node.parent)
-
- def test_add_one_child(self):
- node = Warning(5)
- child = Node(parent=node)
- node.add_child(child)
- self.assertIs(node.children[0], child)
-
- def test_add_two_children(self):
- node = Warning(5)
- child0 = Node(parent=node)
- child1 = Node(parent=node)
- node.add_child(child0)
- node.add_child(child1)
- self.assertIs(node.children[0], child0)
- self.assertIs(node.children[1], child1)
-
- def test_repr(self):
- node = Warning(5)
- actual = repr(node)
- expected = "Warning(5, children=[])"
- self.assertEqual(expected, actual)
-
- # TODO test_render_rst
-
-class NoteTests(unittest.TestCase):
-
- def test_create(self):
- node = Note(5)
- self.assertEqual(node.indent, 5)
- self.assertEqual(node.lines, [])
- self.assertIsNone(node.parent)
-
- def test_add_one_child(self):
- node = Note(5)
- child = Node(parent=node)
- node.add_child(child)
- self.assertIs(node.children[0], child)
-
- def test_add_two_children(self):
- node = Note(5)
- child0 = Node(parent=node)
- child1 = Node(parent=node)
- node.add_child(child0)
- node.add_child(child1)
- self.assertIs(node.children[0], child0)
- self.assertIs(node.children[1], child1)
-
- def test_repr(self):
- node = Note(5)
- actual = repr(node)
- expected = "Note(5, children=[])"
- self.assertEqual(expected, actual)
-
- # TODO test_render_rst
+import unittest
+from hieroglyph.nodes import Node, Arg, Raises, Except, Returns, Warning, Note
+
+__author__ = 'Robert Smallshire'
+
+class NodeTests(unittest.TestCase):
+
+ def test_create_default_node(self):
+ node = Node()
+ self.assertEqual(node.indent, 0)
+ self.assertEqual(node.lines, [])
+ self.assertIsNone(node.parent)
+
+ def test_create_with_indent(self):
+ node = Node(indent=4)
+ self.assertEqual(node.indent, 4)
+ self.assertEqual(node.lines, [])
+ self.assertIsNone(node.parent)
+
+ def test_create_with_lines(self):
+ node = Node(lines= ['First', 'Second', 'Third'])
+ self.assertEqual(node.indent, 0)
+ self.assertEqual(node.lines, ['First', 'Second', 'Third'])
+ self.assertIsNone(node.parent)
+
+ def test_repr(self):
+ node = Node(5, ['One', 'Two', 'Three'])
+ actual = repr(node)
+ expected = "Node(5, ['One', 'Two', 'Three'], children=[])"
+ self.assertEqual(expected, actual)
+
+ def test_add_one_child(self):
+ node = Node()
+ child = Node(parent=node)
+ node.add_child(child)
+ self.assertIs(node.children[0], child)
+
+ def test_add_two_children(self):
+ node = Node()
+ child0 = Node(parent=node)
+ child1 = Node(parent=node)
+ node.add_child(child0)
+ node.add_child(child1)
+ self.assertIs(node.children[0], child0)
+ self.assertIs(node.children[1], child1)
+
+ def test_render_rst_empty(self):
+ node = Node()
+ rst = node.render_rst()
+ self.assertEqual(len(rst), 0)
+
+ def test_render_rst_indent(self):
+ node = Node(indent=4)
+ rst = node.render_rst()
+ self.assertEqual(len(rst), 0)
+
+ def test_render_rst_lines(self):
+ node = Node(lines= ['First',
+ 'Second',
+ 'Third'])
+ rst = node.render_rst()
+ self.assertEqual(rst, ['First',
+ 'Second',
+ 'Third'])
+
+ def test_render_rst_indented_lines(self):
+ node = Node(indent=3, lines= ['First',
+ 'Second',
+ 'Third'])
+ rst = node.render_rst()
+ self.assertEqual(rst, [' First',
+ ' Second',
+ ' Third'])
+
+ def test_render_rst_with_child(self):
+ node = Node(indent=4, lines=["Parent"])
+ child = Node(indent=8, lines=["Child"], parent=node)
+ node.add_child(child)
+ rst = node.render_rst()
+ self.assertEqual(rst, [' Parent',
+ ' Child'])
+
+ def test_render_rst_with_children(self):
+ node = Node(indent=4, lines=["Parent"])
+ child_a = Node(indent=8, lines=["ChildA"], parent=node)
+ node.add_child(child_a)
+ child_b = Node(indent=6, lines=["ChildB"], parent=node)
+ node.add_child(child_b)
+ rst = node.render_rst()
+ self.assertEqual(rst, [' Parent',
+ ' ChildA',
+ ' ChildB'])
+
+
+class ArgTests(unittest.TestCase):
+
+ def test_create(self):
+ node = Arg(5, 10, 'foo')
+ self.assertEqual(node.indent, 5)
+ self.assertEqual(node.child_indent, 10)
+ self.assertEqual(node.name, 'foo')
+ self.assertEqual(node.lines, [])
+ self.assertIsNone(node.parent)
+
+ def test_set_type(self):
+ node = Arg(5, 10, 'foo')
+ node.type = 'str'
+ self.assertEqual(node.type, 'str')
+
+ def test_add_one_child(self):
+ node = Arg(5, 10, 'foo')
+ child = Node(parent=node)
+ node.add_child(child)
+ self.assertIs(node.children[0], child)
+
+ def test_add_two_children(self):
+ node = Arg(5, 10, 'foo')
+ child0 = Node(parent=node)
+ child1 = Node(parent=node)
+ node.add_child(child0)
+ node.add_child(child1)
+ self.assertIs(node.children[0], child0)
+ self.assertIs(node.children[1], child1)
+
+ def test_repr(self):
+ node = Arg(5, 10, 'foo')
+ actual = repr(node)
+ expected = "Arg('foo', None, children=[])"
+ self.assertEqual(expected, actual)
+
+ def test_render_rst_empty(self):
+ node = Arg(5, 10, 'bar')
+ rst = node.render_rst()
+ self.assertEqual(rst, [' :param bar: ',
+ ''])
+
+ def test_render_rst_with_child(self):
+ node = Arg(5, 10, 'bar')
+ child = Node(indent=10, lines=["Description"], parent=node)
+ node.add_child(child)
+ rst = node.render_rst()
+ self.assertEqual(rst, [' :param bar: Description',
+ ''])
+
+ def test_render_rst_with_children(self):
+ node = Arg(5, 10, 'bar')
+ child_a = Node(indent=10, lines=["ChildA"], parent=node)
+ node.add_child(child_a)
+ child_b = Node(indent=10, lines=["ChildB"], parent=node)
+ node.add_child(child_b)
+ rst = node.render_rst()
+ self.assertEqual(rst, [' :param bar: ChildA',
+ ' ChildB',
+ ''])
+
+ def test_render_rst_with_type(self):
+ node = Arg(5, 10, 'bar')
+ node.type = 'str'
+ rst = node.render_rst()
+ self.assertEqual(rst, [' :param bar: ',
+ ' :type bar: str',
+ ''])
+
+
+class RaisesTests(unittest.TestCase):
+
+ def test_create_default_node(self):
+ node = Raises()
+ self.assertEqual(node.indent, 0)
+ self.assertEqual(node.lines, [])
+ self.assertIsNone(node.parent)
+
+ def test_create_with_indent(self):
+ node = Raises(indent=4)
+ self.assertEqual(node.indent, 4)
+ self.assertEqual(node.lines, [])
+ self.assertIsNone(node.parent)
+
+ def test_repr(self):
+ node = Raises(5)
+ actual = repr(node)
+ expected = "Raises(5, children=[])"
+ self.assertEqual(expected, actual)
+
+ def test_add_one_child(self):
+ node = Raises()
+ child = Node(parent=node)
+ node.add_child(child)
+ self.assertIs(node.children[0], child)
+
+ def test_add_two_children(self):
+ node = Raises()
+ child0 = Node(parent=node)
+ child1 = Node(parent=node)
+ node.add_child(child0)
+ node.add_child(child1)
+ self.assertIs(node.children[0], child0)
+ self.assertIs(node.children[1], child1)
+
+ def test_render_rst_empty(self):
+ node = Raises()
+ rst = node.render_rst()
+ self.assertEqual(rst, [':raises:',
+ ''])
+
+ def test_render_rst_indent(self):
+ node = Raises(indent=5)
+ rst = node.render_rst()
+ self.assertEqual(rst, [' :raises:',
+ ''])
+
+ def test_render_rst_with_child(self):
+ node = Raises(5)
+ child = Node(indent=10, lines=["Description"], parent=node)
+ node.add_child(child)
+ rst = node.render_rst()
+ self.assertEqual(rst, [' :raises:',
+ ' Description',
+ ''])
+
+ def test_render_rst_with_children(self):
+ node = Raises(5)
+ child_a = Node(indent=10, lines=["ChildA"], parent=node)
+ node.add_child(child_a)
+ child_b = Node(indent=10, lines=["ChildB"], parent=node)
+ node.add_child(child_b)
+ rst = node.render_rst()
+ self.assertEqual(rst, [' :raises:',
+ ' ChildA',
+ ' ChildB',
+ ''])
+
+
+class ExceptTests(unittest.TestCase):
+
+ def test_create(self):
+ node = Except(5, 'FooError')
+ self.assertEqual(node.indent, 5)
+ self.assertEqual(node.type, 'FooError')
+ self.assertEqual(node.lines, [])
+ self.assertIsNone(node.parent)
+
+ def test_add_one_child(self):
+ node = Except(5, 'FooError')
+ child = Node(parent=node)
+ node.add_child(child)
+ self.assertIs(node.children[0], child)
+
+ def test_add_two_children(self):
+ node = Except(5, 'FooError')
+ child0 = Node(parent=node)
+ child1 = Node(parent=node)
+ node.add_child(child0)
+ node.add_child(child1)
+ self.assertIs(node.children[0], child0)
+ self.assertIs(node.children[1], child1)
+
+ def test_repr(self):
+ node = Except(5,'FooError')
+ actual = repr(node)
+ expected = "Except('FooError', children=[])"
+ self.assertEqual(expected, actual)
+
+ def test_render_rst_empty(self):
+ node = Except(5, 'FooError')
+ rst = node.render_rst()
+ self.assertEqual(rst, [' * FooError - ',
+ ''])
+
+ def test_render_rst_indent(self):
+ node = Except(5, 'FooError')
+ rst = node.render_rst()
+ self.assertEqual(rst, [' * FooError - ',
+ ''])
+
+ def test_render_rst_with_child(self):
+ node = Except(5, 'FooError')
+ child = Node(indent=10, lines=["Description"], parent=node)
+ node.add_child(child)
+ rst = node.render_rst()
+ self.assertEqual(rst, [' * FooError - Description',
+ ''])
+
+ def test_render_rst_with_children(self):
+ node = Except(5, 'FooError')
+ child_a = Node(indent=10, lines=["ChildA"], parent=node)
+ node.add_child(child_a)
+ child_b = Node(indent=10, lines=["ChildB"], parent=node)
+ node.add_child(child_b)
+ rst = node.render_rst()
+ self.assertEqual(rst, [' * FooError - ChildA',
+ ' ChildB',
+ ''])
+
+class ReturnsTests(unittest.TestCase):
+
+ def test_create(self):
+ node = Returns(5)
+ self.assertEqual(node.indent, 5)
+ self.assertEqual(node.lines, [])
+ self.assertIsNone(node.parent)
+
+ def test_add_one_child(self):
+ node = Returns(5)
+ child = Node(parent=node)
+ node.add_child(child)
+ self.assertIs(node.children[0], child)
+
+ def test_add_two_children(self):
+ node = Returns(5)
+ child0 = Node(parent=node)
+ child1 = Node(parent=node)
+ node.add_child(child0)
+ node.add_child(child1)
+ self.assertIs(node.children[0], child0)
+ self.assertIs(node.children[1], child1)
+
+ def test_repr(self):
+ node = Returns(5)
+ actual = repr(node)
+ expected = "Returns(5, children=[])"
+ self.assertEqual(expected, actual)
+
+ # TODO test_render_rst
+
+class WarningTests(unittest.TestCase):
+
+ def test_create(self):
+ node = Warning(5)
+ self.assertEqual(node.indent, 5)
+ self.assertEqual(node.lines, [])
+ self.assertIsNone(node.parent)
+
+ def test_add_one_child(self):
+ node = Warning(5)
+ child = Node(parent=node)
+ node.add_child(child)
+ self.assertIs(node.children[0], child)
+
+ def test_add_two_children(self):
+ node = Warning(5)
+ child0 = Node(parent=node)
+ child1 = Node(parent=node)
+ node.add_child(child0)
+ node.add_child(child1)
+ self.assertIs(node.children[0], child0)
+ self.assertIs(node.children[1], child1)
+
+ def test_repr(self):
+ node = Warning(5)
+ actual = repr(node)
+ expected = "Warning(5, children=[])"
+ self.assertEqual(expected, actual)
+
+ # TODO test_render_rst
+
+class NoteTests(unittest.TestCase):
+
+ def test_create(self):
+ node = Note(5)
+ self.assertEqual(node.indent, 5)
+ self.assertEqual(node.lines, [])
+ self.assertIsNone(node.parent)
+
+ def test_add_one_child(self):
+ node = Note(5)
+ child = Node(parent=node)
+ node.add_child(child)
+ self.assertIs(node.children[0], child)
+
+ def test_add_two_children(self):
+ node = Note(5)
+ child0 = Node(parent=node)
+ child1 = Node(parent=node)
+ node.add_child(child0)
+ node.add_child(child1)
+ self.assertIs(node.children[0], child0)
+ self.assertIs(node.children[1], child1)
+
+ def test_repr(self):
+ node = Note(5)
+ actual = repr(node)
+ expected = "Note(5, children=[])"
+ self.assertEqual(expected, actual)
+
+ # TODO test_render_rst
diff --git a/docs/sphinx/hieroglyph/version.py b/docs/sphinx/hieroglyph/version.py
index d060125c0f..b35385b6b8 100644
--- a/docs/sphinx/hieroglyph/version.py
+++ b/docs/sphinx/hieroglyph/version.py
@@ -1,3 +1,3 @@
-'''Specification of the hieroglyph version'''
-
-__version__ = '0.6'
+'''Specification of the hieroglyph version'''
+
+__version__ = '0.6'
diff --git a/docs/sphinx/source/analog/get_blocks.py b/docs/sphinx/source/analog/get_blocks.py
index a288393132..f5fc902a8a 100644
--- a/docs/sphinx/source/analog/get_blocks.py
+++ b/docs/sphinx/source/analog/get_blocks.py
@@ -18,7 +18,7 @@ class Block(object):
Checks if doxyxml produced objects correspond to a new style
gnuradio block.
"""
-
+
@classmethod
def includes(cls, item):
if not isinstance(item, DoxyClass):
@@ -33,7 +33,7 @@ class Group(object):
"""
Checks if doxyxml produced objects correspond to a group.
"""
-
+
@classmethod
def includes(cls, item):
if not isinstance(item, DoxyGroup):
diff --git a/docs/sphinx/source/atsc/index.rst b/docs/sphinx/source/atsc/index.rst
index 2371f24569..a8a54ad337 100644
--- a/docs/sphinx/source/atsc/index.rst
+++ b/docs/sphinx/source/atsc/index.rst
@@ -8,7 +8,7 @@ Signal Processing Blocks
.. autosummary::
:nosignatures:
-
+
gnuradio.atsc.bit_timing_loop
gnuradio.atsc.deinterleaver
gnuradio.atsc.depad
@@ -32,7 +32,7 @@ Constants
.. autosummary::
:nosignatures:
-
+
gnuradio.atsc.ATSC_DATA_SEGMENT_LENGTH
gnuradio.atsc.ATSC_DATA_SEGMENT_RATE
gnuradio.atsc.ATSC_DSEGS_PER_FIELD
@@ -58,5 +58,5 @@ Sizes
gnuradio.atsc.sizeof_atsc_mpeg_packet_rs_encoded
gnuradio.atsc.sizeof_atsc_mpeg_packet_rs_encoded_pad
gnuradio.atsc.sizeof_atsc_soft_data_segment
- gnuradio.atsc.sizeof_atsc_soft_data_segment_pad
-
+ gnuradio.atsc.sizeof_atsc_soft_data_segment_pad
+
diff --git a/docs/sphinx/source/blocks/get_blocks.py b/docs/sphinx/source/blocks/get_blocks.py
index 4ff9b1d10b..18c334c8c6 100644
--- a/docs/sphinx/source/blocks/get_blocks.py
+++ b/docs/sphinx/source/blocks/get_blocks.py
@@ -18,7 +18,7 @@ class Block(object):
Checks if doxyxml produced objects correspond to a new style
gnuradio block.
"""
-
+
@classmethod
def includes(cls, item):
if not isinstance(item, DoxyClass):
@@ -33,7 +33,7 @@ class Group(object):
"""
Checks if doxyxml produced objects correspond to a group.
"""
-
+
@classmethod
def includes(cls, item):
if not isinstance(item, DoxyGroup):
diff --git a/docs/sphinx/source/gr/index.rst b/docs/sphinx/source/gr/index.rst
index 7df7114340..b3e341f47b 100644
--- a/docs/sphinx/source/gr/index.rst
+++ b/docs/sphinx/source/gr/index.rst
@@ -5,7 +5,7 @@ gnuradio.gr
.. autosummary::
:nosignatures:
-
+
gnuradio.gr.top_block
gnuradio.gr.hier_block2
gnuradio.gr.block_detail
diff --git a/docs/sphinx/source/index.rst b/docs/sphinx/source/index.rst
index 491aaad4ce..3830d58c24 100644
--- a/docs/sphinx/source/index.rst
+++ b/docs/sphinx/source/index.rst
@@ -27,7 +27,7 @@ Core Framework
gnuradio.wxgui
.. toctree::
- :hidden:
+ :hidden:
gnuradio.gr <gr/index>
pmt <pmt/index>
@@ -51,12 +51,12 @@ Hardware Interfaces
.. autosummary::
:nosignatures:
-
+
gnuradio.uhd
gnuradio.fcd
.. toctree::
- :hidden:
+ :hidden:
gnuradio.uhd <uhd>
gnuradio.fcd <fcd>
@@ -72,7 +72,7 @@ Utilities
gnuradio.eng_option
.. toctree::
- :hidden:
+ :hidden:
gnuradio.plot_data <plot_data>
gnuradio.eng_notation <eng_notation/index>
@@ -91,7 +91,7 @@ Framework Extensions
gnuradio.vocoder
.. toctree::
- :hidden:
+ :hidden:
gnuradio.atsc <atsc/index>
gnuradio.noaa <noaa>
@@ -102,10 +102,10 @@ Framework Extensions
.. Use this to add to the toctree but not displayed
.. It's mostly to get rid of warnings
-
+
.. toctree::
- :hidden:
-
+ :hidden:
+
runtime_contents <gr/contents>
atsc_blks <atsc/blks>
digital_blocks <digital/blocks>
@@ -163,4 +163,4 @@ Framework Extensions
pmt_list <pmt/list>
pmt_pair <pmt/pair>
pmt_symbol <pmt/symbol>
-
+
diff --git a/docs/sphinx/source/pmt/index.rst b/docs/sphinx/source/pmt/index.rst
index 2d10378857..fd90a3d605 100644
--- a/docs/sphinx/source/pmt/index.rst
+++ b/docs/sphinx/source/pmt/index.rst
@@ -318,7 +318,7 @@ Misc
----
.. autosummary::
- :nosignatures:
+ :nosignatures:
pmt.is_null
pmt.cvar
diff --git a/docs/sphinx/source/trellis/index.rst b/docs/sphinx/source/trellis/index.rst
index 8a451a9130..be929e971c 100644
--- a/docs/sphinx/source/trellis/index.rst
+++ b/docs/sphinx/source/trellis/index.rst
@@ -17,7 +17,7 @@ Signal Processing Blocks
.. autosummary::
:nosignatures:
-
+
gnuradio.trellis.constellation_metrics_cf
gnuradio.trellis.encoder_bb
gnuradio.trellis.encoder_bi
@@ -87,4 +87,4 @@ Constants
gnuradio.trellis.TRELLIS_MIN_SUM
gnuradio.trellis.TRELLIS_SUM_PRODUCT
-
+
diff --git a/gnuradio-runtime/CMakeLists.txt b/gnuradio-runtime/CMakeLists.txt
index f7733db628..75410abbb0 100644
--- a/gnuradio-runtime/CMakeLists.txt
+++ b/gnuradio-runtime/CMakeLists.txt
@@ -1,17 +1,17 @@
# Copyright 2013 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,
@@ -60,6 +60,13 @@ GR_SET_GLOBAL(GNURADIO_RUNTIME_PYTHONPATH ${GNURADIO_RUNTIME_PYTHONPATH})
# Register controlport component
########################################################################
+if(ENABLE_STATIC_LIBS)
+ set(NOT_STATIC_LIBS False)
+ message(STATUS "ControlPort is incompatible with static library builds. Disabling.")
+else(ENABLE_STATIC_LIBS)
+ set(NOT_STATIC_LIBS True)
+endif(ENABLE_STATIC_LIBS)
+
FIND_PACKAGE(ICE-3.5) # check for ICE 3.5
if(NOT ICE_FOUND)
message(STATUS "ICE 3.5 not found. Looking for 3.4")
@@ -68,21 +75,22 @@ endif(NOT ICE_FOUND)
FIND_PACKAGE(SWIG)
if(SWIG_FOUND)
- set(SWIG_VERSION_CHECK FALSE)
- if("${SWIG_VERSION}" VERSION_GREATER "2.0.0")
- set(SWIG_VERSION_CHECK TRUE)
- else("${SWIG_VERSION}" VERSION_GREATER "2.0.0")
- message(STATUS "")
- message(STATUS "Ctrlport requires SWIG version >= 2.0")
- endif()
+ set(SWIG_VERSION_CHECK FALSE)
+ if("${SWIG_VERSION}" VERSION_GREATER "2.0.0")
+ set(SWIG_VERSION_CHECK TRUE)
+ else("${SWIG_VERSION}" VERSION_GREATER "2.0.0")
+ message(STATUS "")
+ message(STATUS "Ctrlport requires SWIG version >= 2.0")
+ endif()
endif(SWIG_FOUND)
GR_REGISTER_COMPONENT("gr-ctrlport" ENABLE_GR_CTRLPORT
- Boost_FOUND
- SWIG_FOUND
- SWIG_VERSION_CHECK
- ICE_FOUND
- ENABLE_GNURADIO_RUNTIME
+ Boost_FOUND
+ SWIG_FOUND
+ SWIG_VERSION_CHECK
+ ICE_FOUND
+ ENABLE_GNURADIO_RUNTIME
+ NOT_STATIC_LIBS
)
########################################################################
diff --git a/gnuradio-runtime/ctrlport.conf.example b/gnuradio-runtime/ctrlport.conf.example
index 51d9e934f2..dc61673ea5 100644
--- a/gnuradio-runtime/ctrlport.conf.example
+++ b/gnuradio-runtime/ctrlport.conf.example
@@ -1,5 +1,5 @@
## Use this to create an endpoint used to export ControlPort.
-##
+##
## A typical configuation would be to specify using a particular
## interface (determined from the IP address) and port number:
##
@@ -14,7 +14,7 @@
## ICE to use all available interfaces:
##
## ControlPort.Endpoints=tcp -h *
-##
+##
## Using 'default' for the host will use what 'hostname' resolves to.
##
## For more details:
diff --git a/gnuradio-runtime/examples/mp-sched/affinity_set.py b/gnuradio-runtime/examples/mp-sched/affinity_set.py
index 4d28a04174..15d2233b6a 100755
--- a/gnuradio-runtime/examples/mp-sched/affinity_set.py
+++ b/gnuradio-runtime/examples/mp-sched/affinity_set.py
@@ -35,7 +35,7 @@ class affinity_set(gr.top_block):
self.filter_filt_0.set_processor_affinity([0,])
self.filter_filt_1.set_processor_affinity([0,1])
-
+
##################################################
# Connections
##################################################
@@ -55,7 +55,7 @@ if __name__ == '__main__':
(options, args) = parser.parse_args()
tb = affinity_set()
tb.start()
-
+
while(1):
ret = raw_input('Enter a new Core # or Press Enter to quit: ')
if(len(ret) == 0):
diff --git a/gnuradio-runtime/gr_log_default.conf b/gnuradio-runtime/gr_log_default.conf
index 79c2d91e94..f2c17a00f1 100644
--- a/gnuradio-runtime/gr_log_default.conf
+++ b/gnuradio-runtime/gr_log_default.conf
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright 2006,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,
@@ -22,7 +22,7 @@
log4j.rootCategory=EMERG,A1
log4j.category.gr_log=DEBUG,A2
log4j.category.gr_log_debug=NOTSET,A3
-
+
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.target=System.out
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
diff --git a/gnuradio-runtime/include/gnuradio/basic_block.h b/gnuradio-runtime/include/gnuradio/basic_block.h
index b413274ded..066257d7f9 100644
--- a/gnuradio-runtime/include/gnuradio/basic_block.h
+++ b/gnuradio-runtime/include/gnuradio/basic_block.h
@@ -275,7 +275,7 @@ namespace gr {
}
return false;
}
-
+
const msg_queue_map_t& get_msg_map(void) const {
return msg_queue;
}
diff --git a/gnuradio-runtime/include/gnuradio/block_detail.h b/gnuradio-runtime/include/gnuradio/block_detail.h
index b336cb86f7..41568c8ab3 100644
--- a/gnuradio-runtime/include/gnuradio/block_detail.h
+++ b/gnuradio-runtime/include/gnuradio/block_detail.h
@@ -229,7 +229,7 @@ namespace gr {
float pc_work_time_var();
float pc_work_time_total();
-
+
tpb_detail d_tpb; // used by thread-per-block scheduler
int d_produce_or;
@@ -261,7 +261,7 @@ namespace gr {
float d_var_work_time;
float d_total_work_time;
float d_pc_counter;
-
+
block_detail(unsigned int ninputs, unsigned int noutputs);
friend struct tpb_detail;
diff --git a/gnuradio-runtime/include/gnuradio/fxpt_vco.h b/gnuradio-runtime/include/gnuradio/fxpt_vco.h
index cbc204c1b8..28560db905 100644
--- a/gnuradio-runtime/include/gnuradio/fxpt_vco.h
+++ b/gnuradio-runtime/include/gnuradio/fxpt_vco.h
@@ -50,7 +50,7 @@ namespace gr {
d_phase += fxpt::float_to_fixed(delta_phase);
}
- float get_phase() const {
+ float get_phase() const {
return fxpt::fixed_to_float(d_phase);
}
diff --git a/gnuradio-runtime/include/gnuradio/ice_application_base.h b/gnuradio-runtime/include/gnuradio/ice_application_base.h
index 1cb60fbf96..126327151a 100644
--- a/gnuradio-runtime/include/gnuradio/ice_application_base.h
+++ b/gnuradio-runtime/include/gnuradio/ice_application_base.h
@@ -1,9 +1,9 @@
/* -*- c++ -*- */
-/*
+/*
* Copyright 2012 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
- *
+ *
* GNU Radio is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
@@ -43,14 +43,14 @@ namespace {
static const unsigned int ICEAPPLICATION_ACTIVATION_TIMEOUT_MS(600);
};
-class GR_RUNTIME_API ice_application_common : public Ice::Application
+class GR_RUNTIME_API ice_application_common : public Ice::Application
{
public:
template<typename TserverBase, typename TserverClass> friend class ice_application_base;
static boost::shared_ptr<ice_application_common> Instance();
~ice_application_common() {;}
static int d_reacquire_attributes;
-
+
protected:
static bool d_main_called;
static bool d_have_ice_config;
@@ -67,34 +67,34 @@ public:
boost::shared_ptr<ice_application_common> d_application;
ice_application_base(TserverClass* _this);
~ice_application_base() {;}
-
+
static TserverBase* i();
static const std::vector<std::string> endpoints();
-
+
protected:
bool have_ice_config() { return d_application->d_have_ice_config; }
void set_endpoint(const std::string& endpoint) { d_application->d_endpointStr = endpoint;}
-
+
//this one is the key... overwrite in templated/inherited variants
virtual TserverBase* i_impl() = 0;
- //tools for the i_impl...
+ //tools for the i_impl...
//tell it when it has to resync with the communicator
virtual bool reacquire_sync();
virtual void sync_reacquire();
static TserverClass* d_this;
-
+
int d_reacquire;
//static int d_reacquire_attributes;
-
+
private:
void starticeexample();
-
+
bool application_started();
-
+
int run(int, char*[]);
-
+
static void kickoff();
};
@@ -106,7 +106,7 @@ TserverClass* ice_application_base<TserverBase, TserverClass>::d_this(0);
template<typename TserverBase, typename TserverClass>
ice_application_base<TserverBase, TserverClass>::ice_application_base(TserverClass* _this)
- : d_reacquire(0)
+ : d_reacquire(0)
{
//d_reacquire_attributes = 0;
d_this = _this;
@@ -123,13 +123,13 @@ void ice_application_base<TserverBase, TserverClass>::starticeexample()
if(conffile.size() > 0) {
std::stringstream iceconf;
- ice_application_common::d_have_ice_config = true;
+ ice_application_common::d_have_ice_config = true;
ice_application_common::d_main_called = true;
iceconf << conffile;
d_application->main(0, argv, iceconf.str().c_str());
}
else {
- ice_application_common::d_have_ice_config = false;
+ ice_application_common::d_have_ice_config = false;
ice_application_common::d_main_called = true;
d_application->main(0, argv);
}
@@ -139,17 +139,17 @@ template<typename TserverBase, typename TserverClass>
void ice_application_base<TserverBase, TserverClass>::kickoff()
{
static bool run_once = false;
-
+
//if(!d_this->application_started()) {
if(!run_once) {
++d_this->d_application->d_reacquire_attributes;
-
+
ice_application_common::d_thread = boost::shared_ptr<boost::thread>
(new boost::thread(boost::bind(&ice_application_base::starticeexample, d_this)));
-
+
::timespec timer_ts, rem_ts;
timer_ts.tv_sec = 0; timer_ts.tv_nsec = ICEAPPLICATION_ACTIVATION_TIMEOUT_MS*1000;
-
+
int iter = 0;
while(!d_this->application_started()) {
#if defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
@@ -164,10 +164,10 @@ void ice_application_base<TserverBase, TserverClass>::kickoff()
break;
}
}
-
+
run_once = true;
}
-
+
return;
}
@@ -195,20 +195,20 @@ template<typename TserverBase, typename TserverClass>
TserverBase* ice_application_base<TserverBase, TserverClass>::i()
{
//printf("indacall\n");
-
+
assert(d_this != 0);
if(!d_this->application_started()) {
//printf("anotherkickoff\n");
kickoff();
}
//printf("donekickedoff\n");
-
+
/*else if(!d_proxy) {
d_proxy = d_this->i_impl();
assert(d_proxy != 0);
}*/
- return d_this->i_impl();
+ return d_this->i_impl();
}
/*template<typename TserverBase, typename TserverClass>
diff --git a/gnuradio-runtime/include/gnuradio/ice_server_template.h b/gnuradio-runtime/include/gnuradio/ice_server_template.h
index 45c1756a48..5e77d29265 100644
--- a/gnuradio-runtime/include/gnuradio/ice_server_template.h
+++ b/gnuradio-runtime/include/gnuradio/ice_server_template.h
@@ -1,9 +1,9 @@
/* -*- c++ -*- */
-/*
+/*
* Copyright 2012 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
- *
+ *
* GNU Radio is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
@@ -35,7 +35,7 @@ public:
const std::string& contolPortName,
const std::string& endpointName);
~ice_server_template();
-
+
protected:
//virtual bool application_started();
TserverBase* i_impl();
@@ -50,10 +50,10 @@ private:
template<typename TserverBase, typename TserverClass, typename TImplClass, typename TIceClass>
ice_server_template<TserverBase, TserverClass, TImplClass, TIceClass>::ice_server_template
- (TImplClass* _this, const std::string& controlPortName, const std::string& endpointName)
+ (TImplClass* _this, const std::string& controlPortName, const std::string& endpointName)
: ice_application_base<TserverBase, TImplClass>(_this),
d_iceserver(0),
- d_contolPortName(controlPortName),
+ d_contolPortName(controlPortName),
d_endpointName(endpointName)
{;}
@@ -69,7 +69,7 @@ ice_server_template<TserverBase, TserverClass,TImplClass, TIceClass>::~ice_serve
template<typename TserverBase, typename TserverClass, typename TImplClass, typename TIceClass>
TserverBase* ice_server_template<TserverBase, TserverClass, TImplClass, TIceClass>::i_impl()
-{
+{
if(ice_application_base<TserverBase, TImplClass>::d_this->reacquire_sync()) {
d_adapter = (ice_application_base<TserverBase, TImplClass>::d_this->have_ice_config()) ?
ice_application_base<TserverBase, TImplClass>::d_this->d_this->d_application->communicator()->createObjectAdapter(d_contolPortName) :
@@ -77,7 +77,7 @@ TserverBase* ice_server_template<TserverBase, TserverClass, TImplClass, TIceClas
TserverClass* server_ice(new TserverClass());
TIceClass obj(server_ice);
-
+
Ice::Identity id(ice_application_base<TserverBase, TImplClass>::d_this->d_this->d_application->communicator()->stringToIdentity(d_endpointName));
d_adapter->add(obj, id);
d_adapter->activate();
diff --git a/gnuradio-runtime/include/gnuradio/logger.h.in b/gnuradio-runtime/include/gnuradio/logger.h.in
index 073a6162fb..8e8cd2fb1e 100644
--- a/gnuradio-runtime/include/gnuradio/logger.h.in
+++ b/gnuradio-runtime/include/gnuradio/logger.h.in
@@ -76,10 +76,16 @@ namespace gr {
#define GR_LOG_GET_LEVEL(logger, level)
#define GR_ADD_APPENDER(name,appender)
#define GR_LOG_ADD_APPENDER(logger,appender)
+#define GR_SET_APPENDER(name,appender)
+#define GR_LOG_SET_APPENDER(logger,appender)
#define GR_ADD_CONSOLE_APPENDER(logger,target,pattern)
#define GR_LOG_ADD_CONSOLE_APPENDER(logger,target,pattern)
+#define GR_SET_CONSOLE_APPENDER(logger,target,pattern)
+#define GR_LOG_SET_CONSOLE_APPENDER(logger,target,pattern)
#define GR_ADD_FILE_APPENDER(name,filename,append,pattern)
#define GR_LOG_ADD_FILE_APPENDER(logger,filename,append,pattern)
+#define GR_SET_FILE_APPENDER(name,filename,append,pattern)
+#define GR_LOG_SET_FILE_APPENDER(logger,filename,append,pattern)
#define GR_ADD_ROLLINGFILE_APPENDER(name,filename,filesize,bkup_index,append,mode,pattern)
#define GR_LOG_ADD_ROLLINGFILE_APPENDER(logger,filename,filesize,bkup_index,append,mode,pattern)
#define GR_GET_LOGGER_NAMES(names)
@@ -180,6 +186,13 @@ namespace gr {
#define GR_LOG_ADD_APPENDER(logger, appender) { \
gr::logger_add_appender(logger, appender);}
+#define GR_SET_APPENDER(name, appender) { \
+ gr::logger_ptr logger = gr::logger_get_logger(name); \
+ gr::logger_set_appender(logger,appender);}
+
+#define GR_LOG_SET_APPENDER(logger, appender) { \
+ gr::logger_set_appender(logger, appender);}
+
#define GR_ADD_CONSOLE_APPENDER(name, target, pattern) { \
gr::logger_ptr logger = gr::logger_get_logger(name); \
gr::logger_add_console_appender(logger,target,pattern);}
@@ -187,6 +200,13 @@ namespace gr {
#define GR_LOG_ADD_CONSOLE_APPENDER(logger, target, pattern) { \
gr::logger_add_console_appender(logger,target,pattern);}
+#define GR_SET_CONSOLE_APPENDER(name, target, pattern) { \
+ gr::logger_ptr logger = gr::logger_get_logger(name); \
+ gr::logger_set_console_appender(logger,target,pattern);}
+
+#define GR_LOG_SET_CONSOLE_APPENDER(logger, target, pattern) { \
+ gr::logger_set_console_appender(logger,target,pattern);}
+
#define GR_ADD_FILE_APPENDER(name, filename, append, pattern) { \
gr::logger_ptr logger = gr::logger_get_logger(name); \
gr::logger_add_file_appender(logger,filename,append,pattern);}
@@ -194,6 +214,13 @@ namespace gr {
#define GR_LOG_ADD_FILE_APPENDER(logger, filename, append, pattern) { \
gr::logger_add_file_appender(logger,filename,append,pattern);}
+#define GR_SET_FILE_APPENDER(name, filename, append, pattern) { \
+ gr::logger_ptr logger = gr::logger_get_logger(name); \
+ gr::logger_set_file_appender(logger,filename,append,pattern);}
+
+#define GR_LOG_SET_FILE_APPENDER(logger, filename, append, pattern) { \
+ gr::logger_set_file_appender(logger,filename,append,pattern);}
+
#define GR_ADD_ROLLINGFILE_APPENDER(name, filename, filesize, bkup_index, append, mode, pattern) { \
gr::logger_ptr logger = gr::logger_get_logger(name); \
gr::logger_add_rollingfile_appender(logger,filename,filesize,bkup_index,append,mode,pattern);}
@@ -520,6 +547,17 @@ namespace gr {
std::string appender);
/*!
+ * \brief Sets a console appender to a given logger. Deletes any
+ * existing appenders and adds a new one. To add an additional
+ * appender, use logger_add_appender.
+ *
+ * \param logger Logger to which appender will be added
+ * \param appender Name of appender to add to logger
+ */
+ GR_RUNTIME_API void logger_set_appender(logger_ptr logger,
+ std::string appender);
+
+ /*!
* \brief Add console appender to a given logger
*
* Add console appender to a given logger
@@ -533,6 +571,19 @@ namespace gr {
std::string pattern);
/*!
+ * \brief Sets a new console appender to a given logger after
+ * removing all others. Use logger_add_console_appender to add
+ * another.
+ *
+ * \param logger Logger to which appender will be added
+ * \param target Std target to write 'cout' or 'cerr' (default is cout)
+ * \param pattern Formating pattern for log messages
+ */
+ GR_RUNTIME_API void logger_set_console_appender(logger_ptr logger,
+ std::string target,
+ std::string pattern);
+
+ /*!
* \brief Add file appender to a given logger
*
* Add file appender to a given logger
@@ -547,6 +598,19 @@ namespace gr {
bool append, std::string pattern);
/*!
+ * \brief Set a file appender to a given logger. To add another file
+ * appender, use logger_add_file_appender.
+ *
+ * \param logger Logger to which appender will be added
+ * \param filename File to which log will be written
+ * \param append Overwrite or append to log file
+ * \param pattern Formating pattern for log messages
+ */
+ GR_RUNTIME_API void logger_set_file_appender(logger_ptr logger,
+ std::string filename,
+ bool append, std::string pattern);
+
+ /*!
* \brief Add rolling file appender to a given logger
*
* Add rolling file appender to a given logger
@@ -594,10 +658,16 @@ namespace gr {
#define GR_LOG_GET_LEVEL(logger, level)
#define GR_ADD_APPENDER(name,appender)
#define GR_LOG_ADD_APPENDER(logger,appender)
+#define GR_SET_APPENDER(name,appender)
+#define GR_LOG_SET_APPENDER(logger,appender)
#define GR_ADD_CONSOLE_APPENDER(logger,target,pattern)
#define GR_LOG_ADD_CONSOLE_APPENDER(logger,target,pattern)
+#define GR_SET_CONSOLE_APPENDER(logger,target,pattern)
+#define GR_LOG_SET_CONSOLE_APPENDER(logger,target,pattern)
#define GR_ADD_FILE_APPENDER(name,filename,append,pattern)
#define GR_LOG_ADD_FILE_APPENDER(logger,filename,append,pattern)
+#define GR_SET_FILE_APPENDER(name,filename,append,pattern)
+#define GR_LOG_SET_FILE_APPENDER(logger,filename,append,pattern)
#define GR_ADD_ROLLINGFILE_APPENDER(name,filename,filesize,bkup_index,append,mode,pattern)
#define GR_LOG_ADD_ROLLINGFILE_APPENDER(logger,filename,filesize,bkup_index,append,mode,pattern)
#define GR_GET_LOGGER_NAMES(names)
@@ -703,16 +773,32 @@ namespace gr {
GR_LOG_ADD_APPENDER(d_logger, appender);
}
+ /*! \brief inline function, Method to set an appender to logger by
+ name (define appender in conf file) */
+ void set_appender(std::string appender) {
+ GR_LOG_SET_APPENDER(d_logger, appender);
+ }
+
/*! \brief inline function, Method to add console appender to logger */
void add_console_appender(std::string target,std::string pattern) {
GR_LOG_ADD_CONSOLE_APPENDER(d_logger, target, pattern);
}
+ /*! \brief inline function, Method to set a console appender to logger */
+ void set_console_appender(std::string target,std::string pattern) {
+ GR_LOG_SET_CONSOLE_APPENDER(d_logger, target, pattern);
+ }
+
/*! \brief inline function, Method to add file appender to logger */
void add_file_appender(std::string filename, bool append, std::string pattern) {
GR_LOG_ADD_FILE_APPENDER(d_logger, filename, append, pattern);
}
+ /*! \brief inline function, Method to set a file appender to logger */
+ void set_file_appender(std::string filename, bool append, std::string pattern) {
+ GR_LOG_SET_FILE_APPENDER(d_logger, filename, append, pattern);
+ }
+
/*! \brief inline function, Method to add rolling file appender to logger */
void add_rollingfile_appender(std::string filename, size_t filesize,
int bkup_index, bool append, mode_t mode,
diff --git a/gnuradio-runtime/include/gnuradio/messages/msg_passing.h b/gnuradio-runtime/include/gnuradio/messages/msg_passing.h
index 6ad6c40b08..42b300a574 100644
--- a/gnuradio-runtime/include/gnuradio/messages/msg_passing.h
+++ b/gnuradio-runtime/include/gnuradio/messages/msg_passing.h
@@ -99,7 +99,7 @@ namespace gr {
/*!
* \brief send message to msg_accepter
*
- * \param accepter is the target of the send.
+ * \param accepter is the target of the send.
* aprecond: pmt::is_msg_accepter(accepter)
* \param which_port A pmt symbol describing the port by name.
* \param msg is the message to send. It's usually a pmt tuple.
diff --git a/gnuradio-runtime/include/gnuradio/messages/msg_producer.h b/gnuradio-runtime/include/gnuradio/messages/msg_producer.h
index 758320fc6a..046db9b204 100644
--- a/gnuradio-runtime/include/gnuradio/messages/msg_producer.h
+++ b/gnuradio-runtime/include/gnuradio/messages/msg_producer.h
@@ -45,7 +45,7 @@ namespace gr {
};
typedef boost::shared_ptr<msg_producer> msg_producer_sptr;
-
+
} /* namespace messages */
} /* namespace gr */
diff --git a/gnuradio-runtime/include/gnuradio/prefs.h b/gnuradio-runtime/include/gnuradio/prefs.h
index b675c83491..a9a28586ab 100644
--- a/gnuradio-runtime/include/gnuradio/prefs.h
+++ b/gnuradio-runtime/include/gnuradio/prefs.h
@@ -46,7 +46,6 @@ namespace gr {
{
public:
static prefs *singleton();
- static void set_singleton(prefs *p);
prefs();
virtual ~prefs();
diff --git a/gnuradio-runtime/include/gnuradio/pycallback_object.h b/gnuradio-runtime/include/gnuradio/pycallback_object.h
index 709ca0e732..989aed1d00 100644
--- a/gnuradio-runtime/include/gnuradio/pycallback_object.h
+++ b/gnuradio-runtime/include/gnuradio/pycallback_object.h
@@ -1,9 +1,9 @@
/* -*- c++ -*- */
-/*
+/*
* Copyright 2012 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
- *
+ *
* GNU Radio is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
@@ -32,7 +32,7 @@ enum pyport_t {
PYPORT_FLOAT
};
-class Instance
+class Instance
{
public:
static boost::shared_ptr<ice_application_common> get_application()
@@ -51,8 +51,8 @@ int pycallback_object_count = 500;
template <class myType> class pmt_assist
{
public:
- static pmt::pmt_t make(myType _val)
- {
+ static pmt::pmt_t make(myType _val)
+ {
return pmt::mp(_val);
}
};
@@ -67,7 +67,7 @@ pmt::pmt_t pmt_assist<std::vector<float> >::make(std::vector<float> _val)
template<>
pmt::pmt_t pmt_assist<std::vector<gr_complex> >::make(std::vector<gr_complex> _val)
{
- return pmt::init_c32vector(_val.size(), &_val[0]);
+ return pmt::init_c32vector(_val.size(), &_val[0]);
}
template <class myType> class pycallback_object
@@ -165,31 +165,31 @@ private:
// template specialization conversion functions
// get data out of the PyObject and into the real world
-template<>
+template<>
std::string pycallback_object<std::string>::pyCast(PyObject* obj)
{
return std::string(PyString_AsString(obj));
}
-template<>
+template<>
double pycallback_object<double>::pyCast(PyObject* obj)
{
return PyFloat_AsDouble(obj);
}
-template<>
+template<>
float pycallback_object<float>::pyCast(PyObject* obj)
{
return (float)PyFloat_AsDouble(obj);
}
-template<>
+template<>
int pycallback_object<int>::pyCast(PyObject* obj)
{
return PyInt_AsLong(obj);
}
-template<>
+template<>
std::vector<float> pycallback_object<std::vector<float> >::pyCast(PyObject* obj)
{
int size = PyObject_Size(obj);
@@ -200,14 +200,14 @@ std::vector<float> pycallback_object<std::vector<float> >::pyCast(PyObject* obj)
return rval;
}
-template<>
+template<>
std::vector<gr_complex> pycallback_object<std::vector<gr_complex> >::pyCast(PyObject* obj)
{
int size = PyObject_Size(obj);
std::vector<gr_complex> rval(size);
for(int i=0; i<size; i++){ rval[i] = \
gr_complex((float)PyComplex_RealAsDouble(PyList_GetItem(obj, i)),
- (float)PyComplex_ImagAsDouble(PyList_GetItem(obj, i)));
+ (float)PyComplex_ImagAsDouble(PyList_GetItem(obj, i)));
}
return rval;
}
diff --git a/gnuradio-runtime/include/gnuradio/realtime.h b/gnuradio-runtime/include/gnuradio/realtime.h
index b07caf6b21..bd912e2983 100644
--- a/gnuradio-runtime/include/gnuradio/realtime.h
+++ b/gnuradio-runtime/include/gnuradio/realtime.h
@@ -27,7 +27,7 @@
#include <gnuradio/realtime_impl.h>
namespace gr {
-
+
/*!
* \brief If possible, enable high-priority "real time" scheduling.
* \ingroup misc
diff --git a/gnuradio-runtime/include/gnuradio/rpcmanager.h b/gnuradio-runtime/include/gnuradio/rpcmanager.h
index 12cf279406..5635572a8b 100644
--- a/gnuradio-runtime/include/gnuradio/rpcmanager.h
+++ b/gnuradio-runtime/include/gnuradio/rpcmanager.h
@@ -1,9 +1,9 @@
/* -*- c++ -*- */
-/*
+/*
* Copyright 2012 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
- *
+ *
* GNU Radio is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
@@ -45,7 +45,7 @@ class GR_RUNTIME_API rpcmanager : public virtual rpcmanager_base
rpcserver_booter_register_helper() {
rpcmanager::register_booter(new T());
}
-
+
//TODO: unregister
};
diff --git a/gnuradio-runtime/include/gnuradio/rpcmanager_base.h b/gnuradio-runtime/include/gnuradio/rpcmanager_base.h
index 60425c4a15..16ff956b01 100644
--- a/gnuradio-runtime/include/gnuradio/rpcmanager_base.h
+++ b/gnuradio-runtime/include/gnuradio/rpcmanager_base.h
@@ -1,9 +1,9 @@
/* -*- c++ -*- */
-/*
+/*
* Copyright 2012 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
- *
+ *
* GNU Radio is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
diff --git a/gnuradio-runtime/include/gnuradio/rpcpmtconverters_ice.h b/gnuradio-runtime/include/gnuradio/rpcpmtconverters_ice.h
index e592f4cdfb..8b2c52890b 100644
--- a/gnuradio-runtime/include/gnuradio/rpcpmtconverters_ice.h
+++ b/gnuradio-runtime/include/gnuradio/rpcpmtconverters_ice.h
@@ -1,9 +1,9 @@
/* -*- c++ -*- */
-/*
+/*
* Copyright 2012 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
- *
+ *
* GNU Radio is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
@@ -28,7 +28,7 @@
namespace rpcpmtconverter
{
- pmt::pmt_t to_pmt(const GNURadio::KnobPtr& knob, const Ice::Current& c);
+ pmt::pmt_t to_pmt(const GNURadio::KnobPtr& knob, const Ice::Current& c);
GNURadio::KnobPtr from_pmt(const pmt::pmt_t& knob, const Ice::Current& c);
}
diff --git a/gnuradio-runtime/include/gnuradio/rpcserver_aggregator.h b/gnuradio-runtime/include/gnuradio/rpcserver_aggregator.h
index cc19d7ff48..98aae92b90 100644
--- a/gnuradio-runtime/include/gnuradio/rpcserver_aggregator.h
+++ b/gnuradio-runtime/include/gnuradio/rpcserver_aggregator.h
@@ -1,9 +1,9 @@
/* -*- c++ -*- */
-/*
+/*
* Copyright 2012 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
- *
+ *
* GNU Radio is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
diff --git a/gnuradio-runtime/include/gnuradio/rpcserver_base.h b/gnuradio-runtime/include/gnuradio/rpcserver_base.h
index e2a1f6ef24..af0b9e762d 100644
--- a/gnuradio-runtime/include/gnuradio/rpcserver_base.h
+++ b/gnuradio-runtime/include/gnuradio/rpcserver_base.h
@@ -1,9 +1,9 @@
/* -*- c++ -*- */
-/*
+/*
* Copyright 2012 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
- *
+ *
* GNU Radio is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
diff --git a/gnuradio-runtime/include/gnuradio/rpcserver_booter_aggregator.h b/gnuradio-runtime/include/gnuradio/rpcserver_booter_aggregator.h
index aac9ef8de6..bf95c60165 100644
--- a/gnuradio-runtime/include/gnuradio/rpcserver_booter_aggregator.h
+++ b/gnuradio-runtime/include/gnuradio/rpcserver_booter_aggregator.h
@@ -1,9 +1,9 @@
/* -*- c++ -*- */
-/*
+/*
* Copyright 2012 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
- *
+ *
* GNU Radio is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
diff --git a/gnuradio-runtime/include/gnuradio/rpcserver_booter_base.h b/gnuradio-runtime/include/gnuradio/rpcserver_booter_base.h
index 682944dada..127ceaa88d 100644
--- a/gnuradio-runtime/include/gnuradio/rpcserver_booter_base.h
+++ b/gnuradio-runtime/include/gnuradio/rpcserver_booter_base.h
@@ -1,9 +1,9 @@
/* -*- c++ -*- */
-/*
+/*
* Copyright 2012 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
- *
+ *
* GNU Radio is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
diff --git a/gnuradio-runtime/include/gnuradio/rpcserver_booter_ice.h b/gnuradio-runtime/include/gnuradio/rpcserver_booter_ice.h
index 11095ac433..9c64095bb0 100644
--- a/gnuradio-runtime/include/gnuradio/rpcserver_booter_ice.h
+++ b/gnuradio-runtime/include/gnuradio/rpcserver_booter_ice.h
@@ -1,9 +1,9 @@
/* -*- c++ -*- */
-/*
+/*
* Copyright 2012 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
- *
+ *
* GNU Radio is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
diff --git a/gnuradio-runtime/include/gnuradio/rpcserver_ice.h b/gnuradio-runtime/include/gnuradio/rpcserver_ice.h
index c1c3d46a42..260c7f06b5 100644
--- a/gnuradio-runtime/include/gnuradio/rpcserver_ice.h
+++ b/gnuradio-runtime/include/gnuradio/rpcserver_ice.h
@@ -1,9 +1,9 @@
/* -*- c++ -*- */
-/*
+/*
* Copyright 2012 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
- *
+ *
* GNU Radio is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
@@ -62,7 +62,7 @@ private:
QueryCallbackMap_t d_getcallbackmap;
template<typename T, typename TMap> struct set_f
- : public std::unary_function<T,void>
+ : public std::unary_function<T,void>
{
set_f(const Ice::Current& _c, TMap& _setcallbackmap, const priv_lvl_t& _cur_priv) :
c(_c), d_setcallbackmap(_setcallbackmap), cur_priv(_cur_priv)
@@ -98,7 +98,7 @@ private:
const priv_lvl_t& _cur_priv, GNURadio::KnobMap& _outknobs) :
c(_c), d_getcallbackmap(_getcallbackmap), cur_priv(_cur_priv), outknobs(_outknobs)
{}
-
+
void operator()(const T& p)
{
QueryCallbackMap_t::const_iterator iter(d_getcallbackmap.find(p));
diff --git a/gnuradio-runtime/include/gnuradio/rpcserver_selector.h b/gnuradio-runtime/include/gnuradio/rpcserver_selector.h
index fa63c9a2dc..f45e919b0b 100644
--- a/gnuradio-runtime/include/gnuradio/rpcserver_selector.h
+++ b/gnuradio-runtime/include/gnuradio/rpcserver_selector.h
@@ -1,9 +1,9 @@
/* -*- c++ -*- */
-/*
+/*
* Copyright 2012 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
- *
+ *
* GNU Radio is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
diff --git a/gnuradio-runtime/include/gnuradio/tags.h b/gnuradio-runtime/include/gnuradio/tags.h
index 0bd7b8537f..4e63d77755 100644
--- a/gnuradio-runtime/include/gnuradio/tags.h
+++ b/gnuradio-runtime/include/gnuradio/tags.h
@@ -27,7 +27,7 @@
#include <pmt/pmt.h>
namespace gr {
-
+
struct GR_RUNTIME_API tag_t
{
//! the item \p tag occurred at (as a uint64_t)
diff --git a/gnuradio-runtime/include/gnuradio/thread/thread.h b/gnuradio-runtime/include/gnuradio/thread/thread.h
index f646ab65f6..a58d172867 100644
--- a/gnuradio-runtime/include/gnuradio/thread/thread.h
+++ b/gnuradio-runtime/include/gnuradio/thread/thread.h
@@ -141,11 +141,11 @@ namespace gr {
/*! \brief get current thread priority for a given thread ID
*/
GR_RUNTIME_API int thread_priority(gr_thread_t thread);
-
+
/*! \brief set current thread priority for a given thread ID
*/
GR_RUNTIME_API int set_thread_priority(gr_thread_t thread, int priority);
-
+
GR_RUNTIME_API void set_thread_name(gr_thread_t thread,
std::string name);
diff --git a/gnuradio-runtime/include/pmt/pmt.h b/gnuradio-runtime/include/pmt/pmt.h
index 5929975a29..3e17571b23 100644
--- a/gnuradio-runtime/include/pmt/pmt.h
+++ b/gnuradio-runtime/include/pmt/pmt.h
@@ -249,7 +249,8 @@ PMT_API std::complex<double> to_complex(pmt_t z);
* ------------------------------------------------------------------------
*/
-extern PMT_API const pmt_t PMT_NIL; //< the empty list
+#define PMT_NIL get_PMT_NIL()
+PMT_API pmt_t get_PMT_NIL();
//! Return true if \p x is the empty list, otherwise return false.
PMT_API bool is_null(const pmt_t& x);
diff --git a/gnuradio-runtime/lib/CMakeLists.txt b/gnuradio-runtime/lib/CMakeLists.txt
index cd7f0c7549..a3f0d4cb55 100644
--- a/gnuradio-runtime/lib/CMakeLists.txt
+++ b/gnuradio-runtime/lib/CMakeLists.txt
@@ -198,6 +198,21 @@ add_dependencies(gnuradio-runtime
pmt_generated runtime_generated_includes
)
+if(ENABLE_STATIC_LIBS)
+ add_library(gnuradio-runtime_static STATIC ${gnuradio_runtime_sources})
+
+ add_dependencies(gnuradio-runtime_static gnuradio_runtime)
+
+ if(NOT WIN32)
+ set_target_properties(gnuradio-runtime_static
+ PROPERTIES OUTPUT_NAME gnuradio-runtime)
+ endif(NOT WIN32)
+
+ install(TARGETS gnuradio-runtime_static
+ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT "runtime_devel" # .lib file
+ )
+endif(ENABLE_STATIC_LIBS)
+
########################################################################
# Setup tests
########################################################################
@@ -239,4 +254,3 @@ target_link_libraries(gr_runtime_test test-gnuradio-runtime)
GR_ADD_TEST(gr-runtime-test gr_runtime_test)
endif(ENABLE_TESTING)
-
diff --git a/gnuradio-runtime/lib/block.cc b/gnuradio-runtime/lib/block.cc
index e5217dbfce..b5bfbdaab3 100644
--- a/gnuradio-runtime/lib/block.cc
+++ b/gnuradio-runtime/lib/block.cc
@@ -30,7 +30,6 @@
#include <gnuradio/buffer.h>
#include <gnuradio/prefs.h>
#include <gnuradio/config.h>
-#include <gnuradio/rpcregisterhelpers.h>
#include <stdexcept>
#include <iostream>
@@ -77,13 +76,13 @@ namespace gr {
GR_LOG_SET_LEVEL(LOG, log_level);
if(log_file.size() > 0) {
if(log_file == "stdout") {
- GR_LOG_ADD_CONSOLE_APPENDER(LOG, "cout","gr::log :%p: %c{1} - %m%n");
+ GR_LOG_SET_CONSOLE_APPENDER(LOG, "cout","gr::log :%p: %c{1} - %m%n");
}
else if(log_file == "stderr") {
- GR_LOG_ADD_CONSOLE_APPENDER(LOG, "cerr","gr::log :%p: %c{1} - %m%n");
+ GR_LOG_SET_CONSOLE_APPENDER(LOG, "cerr","gr::log :%p: %c{1} - %m%n");
}
else {
- GR_LOG_ADD_FILE_APPENDER(LOG, log_file , true,"%r :%p: %c{1} - %m%n");
+ GR_LOG_SET_FILE_APPENDER(LOG, log_file , true,"%r :%p: %c{1} - %m%n");
}
}
d_logger = LOG;
@@ -92,13 +91,13 @@ namespace gr {
GR_LOG_SET_LEVEL(DLOG, debug_level);
if(debug_file.size() > 0) {
if(debug_file == "stdout") {
- GR_LOG_ADD_CONSOLE_APPENDER(DLOG, "cout","gr::debug :%p: %c{1} - %m%n");
+ GR_LOG_SET_CONSOLE_APPENDER(DLOG, "cout","gr::debug :%p: %c{1} - %m%n");
}
else if(debug_file == "stderr") {
- GR_LOG_ADD_CONSOLE_APPENDER(DLOG, "cerr", "gr::debug :%p: %c{1} - %m%n");
+ GR_LOG_SET_CONSOLE_APPENDER(DLOG, "cerr", "gr::debug :%p: %c{1} - %m%n");
}
else {
- GR_LOG_ADD_FILE_APPENDER(DLOG, debug_file, true, "%r :%p: %c{1} - %m%n");
+ GR_LOG_SET_FILE_APPENDER(DLOG, debug_file, true, "%r :%p: %c{1} - %m%n");
}
}
d_debug_logger = DLOG;
@@ -796,6 +795,7 @@ namespace gr {
{
d_pc_rpc_set = true;
#if defined(GR_CTRLPORT) && defined(GR_PERFORMANCE_COUNTERS)
+#include <gnuradio/rpcregisterhelpers.h>
d_rpc_vars.push_back(
rpcbasic_sptr(new rpcbasic_register_trigger<block>(
alias(), "reset_perf_counters", &block::reset_perf_counters,
diff --git a/gnuradio-runtime/lib/block_detail.cc b/gnuradio-runtime/lib/block_detail.cc
index 896e621a39..77c457cf7f 100644
--- a/gnuradio-runtime/lib/block_detail.cc
+++ b/gnuradio-runtime/lib/block_detail.cc
@@ -44,7 +44,7 @@ namespace gr {
d_input(ninputs), d_output(noutputs),
d_done(false),
d_ins_noutput_items(0),
- d_avg_noutput_items(0),
+ d_avg_noutput_items(0),
d_var_noutput_items(0),
d_ins_nproduced(0),
d_avg_nproduced(0),
@@ -240,7 +240,7 @@ namespace gr {
}
}
- int
+ int
block_detail::thread_priority(){
if(threaded) {
return gr::thread::thread_priority(thread);
@@ -248,7 +248,7 @@ namespace gr {
return -1;
}
- int
+ int
block_detail::set_thread_priority(int priority){
if(threaded) {
return gr::thread::set_thread_priority(thread,priority);
@@ -317,7 +317,7 @@ namespace gr {
gr::thread::scoped_lock guard(*d_input[i]->mutex());
float pfull = static_cast<float>(d_input[i]->items_available()) /
static_cast<float>(d_input[i]->max_possible_items_available());
-
+
d = pfull - d_avg_input_buffers_full[i];
d_ins_input_buffers_full[i] = pfull;
d_avg_input_buffers_full[i] = d_avg_input_buffers_full[i] + d/d_pc_counter;
diff --git a/gnuradio-runtime/lib/block_executor.cc b/gnuradio-runtime/lib/block_executor.cc
index 9be8eaa48d..ded1324fa3 100644
--- a/gnuradio-runtime/lib/block_executor.cc
+++ b/gnuradio-runtime/lib/block_executor.cc
@@ -193,14 +193,14 @@ namespace gr {
int new_alignment = 0;
int alignment_state = -1;
double rrate;
-
+
block *m = d_block.get();
block_detail *d = m->detail().get();
LOG(*d_log << std::endl << m);
max_noutput_items = round_down(d_max_noutput_items, m->output_multiple());
-
+
if(d->done()){
assert(0);
return DONE;
@@ -237,7 +237,7 @@ namespace gr {
d_output_items.resize (0);
d_start_nitems_read.resize(d->ninputs());
LOG(*d_log << " sink\n");
-
+
max_items_avail = 0;
for(int i = 0; i < d->ninputs (); i++) {
{
@@ -432,7 +432,7 @@ namespace gr {
if(d_use_pc)
d->start_perf_counters();
#endif /* GR_PERFORMANCE_COUNTERS */
-
+
// Do the actual work of the block
int n = m->general_work(noutput_items, d_ninput_items,
d_input_items, d_output_items);
diff --git a/gnuradio-runtime/lib/block_gateway_impl.cc b/gnuradio-runtime/lib/block_gateway_impl.cc
index 13f4326d7e..535e4f74ca 100644
--- a/gnuradio-runtime/lib/block_gateway_impl.cc
+++ b/gnuradio-runtime/lib/block_gateway_impl.cc
@@ -30,7 +30,7 @@ namespace gr {
* Helper routines
**********************************************************************/
template <typename OutType, typename InType>
- void
+ void
copy_pointers(OutType &out, const InType &in)
{
out.resize(in.size());
diff --git a/gnuradio-runtime/lib/circular_file.cc b/gnuradio-runtime/lib/circular_file.cc
index 4d7d06082a..9cef419426 100644
--- a/gnuradio-runtime/lib/circular_file.cc
+++ b/gnuradio-runtime/lib/circular_file.cc
@@ -184,7 +184,7 @@ namespace gr {
int buffer_current = d_header[HD_BUFFER_CURRENT];
int buffer_size = d_header[HD_BUFFER_SIZE];
int total = 0;
-
+
nbytes = std::min(nbytes, buffer_size - d_bytes_read);
while(nbytes > 0) {
diff --git a/gnuradio-runtime/lib/constants.cc.in b/gnuradio-runtime/lib/constants.cc.in
index 7173c60792..c174091d5f 100644
--- a/gnuradio-runtime/lib/constants.cc.in
+++ b/gnuradio-runtime/lib/constants.cc.in
@@ -62,18 +62,18 @@ namespace gr {
c_compiler()
{
return "@cmake_c_compiler_version@";
- }
+ }
const std::string
cxx_compiler()
{
return "@cmake_cxx_compiler_version@";
- }
+ }
const std::string
compiler_flags()
{
return "@COMPILER_INFO@";
- }
+ }
} /* namespace gr */
diff --git a/gnuradio-runtime/lib/controlport/CMakeLists.txt b/gnuradio-runtime/lib/controlport/CMakeLists.txt
index c05a82bf4f..bd46659eb2 100644
--- a/gnuradio-runtime/lib/controlport/CMakeLists.txt
+++ b/gnuradio-runtime/lib/controlport/CMakeLists.txt
@@ -45,7 +45,7 @@ list(APPEND gnuradio_runtime_sources
)
# Append generated file in build directory
-list(APPEND gnuradio_runtime_sources
+list(APPEND gnuradio_runtime_sources
${CMAKE_CURRENT_BINARY_DIR}/gnuradio.cpp
)
diff --git a/gnuradio-runtime/lib/controlport/ICE_LICENSE b/gnuradio-runtime/lib/controlport/ICE_LICENSE
index 43ea7572d9..51ab60d453 100644
--- a/gnuradio-runtime/lib/controlport/ICE_LICENSE
+++ b/gnuradio-runtime/lib/controlport/ICE_LICENSE
@@ -12,43 +12,43 @@ details.
You should have received a copy of the GNU General Public License version
2 along with this program; if not, see http://www.gnu.org/licenses.
-Linking Ice statically or dynamically with other software (such as a
-library, module or application) is making a combined work based on Ice.
+Linking Ice statically or dynamically with other software (such as a
+library, module or application) is making a combined work based on Ice.
Thus, the terms and conditions of the GNU General Public License version
2 cover this combined work.
-If such software can only be used together with Ice, then not only the
+If such software can only be used together with Ice, then not only the
combined work but the software itself is a work derived from Ice and as
-such shall be licensed under the terms of the GNU General Public License
-version 2. This includes the situation where Ice is only being used
+such shall be licensed under the terms of the GNU General Public License
+version 2. This includes the situation where Ice is only being used
through an abstraction layer.
As a special exception to the above, ZeroC grants to the contributors for
-the following projects the permission to license their Ice-based software
-under the terms of the GNU Lesser General Public License (LGPL) version
+the following projects the permission to license their Ice-based software
+under the terms of the GNU Lesser General Public License (LGPL) version
2.1 or of the BSD license:
- Orca Robotics (http://orca-robotics.sourceforge.net)
-
+
- Mumble (http://mumble.sourceforge.net)
-This exception does not extend to the parts of Ice used by these
+This exception does not extend to the parts of Ice used by these
projects, or to any other derived work: as a whole, any work based on Ice
shall be licensed under the terms and conditions of the GNU General
Public License version 2.
You may also combine Ice with any software not derived from Ice, provided
-the license of such software is compatible with the GNU General Public
+the license of such software is compatible with the GNU General Public
License version 2. In addition, as a special exception, ZeroC grants you
permission to combine Ice with:
-
+
- the OpenSSL library, or with a modified version of the OpenSSL library
that uses the same license as OpenSSL
- any library not derived from Ice and licensed under the terms of
- the Apache License, version 2.0
- (http://www.apache.org/licenses/LICENSE-2.0.html)
+ the Apache License, version 2.0
+ (http://www.apache.org/licenses/LICENSE-2.0.html)
-If you modify this copy of Ice, you may extend any of the exceptions
-provided above to your version of Ice, but you are not obligated to
+If you modify this copy of Ice, you may extend any of the exceptions
+provided above to your version of Ice, but you are not obligated to
do so.
diff --git a/gnuradio-runtime/lib/controlport/frontend.ice b/gnuradio-runtime/lib/controlport/frontend.ice
index 50d056df72..e4d346dba0 100644
--- a/gnuradio-runtime/lib/controlport/frontend.ice
+++ b/gnuradio-runtime/lib/controlport/frontend.ice
@@ -28,10 +28,10 @@ module GNURadio {
// primitive types
dictionary<string, string> StrStrDict;
dictionary<string, string> TunerArgs;
- struct F32Range
+ struct F32Range
{
- float min;
- float max;
+ float min;
+ float max;
};
// exception types
@@ -111,7 +111,7 @@ module GNURadio {
sequence<Tuner*> TunerSeq;
sequence<Channel*> ChannelSeq;
-
+
interface Channelizer extends AbstractReceiver {
idempotent ChannelizerStatus status();
idempotent Tuner* getTuner();
@@ -131,7 +131,7 @@ module GNURadio {
};
};
-
+
module Booter {
dictionary<string, string> WaveformArgs;
exception WaveformRunningError {
diff --git a/gnuradio-runtime/lib/controlport/gnuradio.ice b/gnuradio-runtime/lib/controlport/gnuradio.ice
index 3d6101087a..01db91b7be 100644
--- a/gnuradio-runtime/lib/controlport/gnuradio.ice
+++ b/gnuradio-runtime/lib/controlport/gnuradio.ice
@@ -42,23 +42,23 @@ class KnobL extends Knob { long value; };
class KnobS extends Knob { string value; };
class KnobZ extends Knob { complex value; };
-sequence<bool> VectorB; sequence<byte> VectorC;
+sequence<bool> VectorB; sequence<byte> VectorC;
sequence<int> VectorI; sequence<float> VectorF;
sequence<double> VectorD; sequence<string> VectorS;
sequence<long> VectorL; sequence<short> VectorT;
-class KnobVecB extends Knob { VectorB value; };
-class KnobVecC extends Knob { VectorC value; };
-class KnobVecI extends Knob { VectorI value; };
-class KnobVecT extends Knob { VectorT value; };
-class KnobVecF extends Knob { VectorF value; };
-class KnobVecD extends Knob { VectorD value; };
-class KnobVecL extends Knob { VectorL value; };
-class KnobVecS extends Knob { VectorS value; };
+class KnobVecB extends Knob { VectorB value; };
+class KnobVecC extends Knob { VectorC value; };
+class KnobVecI extends Knob { VectorI value; };
+class KnobVecT extends Knob { VectorT value; };
+class KnobVecF extends Knob { VectorF value; };
+class KnobVecD extends Knob { VectorD value; };
+class KnobVecL extends Knob { VectorL value; };
+class KnobVecS extends Knob { VectorS value; };
-enum KnobType { KNOBBOOL, KNOBCHAR, KNOBINT, KNOBFLOAT,
- KNOBDOUBLE, KNOBSTRING, KNOBLONG, KNOBVECBOOL,
- KNOBVECCHAR, KNOBVECINT, KNOBVECFLOAT, KNOBVECDOUBLE,
+enum KnobType { KNOBBOOL, KNOBCHAR, KNOBINT, KNOBFLOAT,
+ KNOBDOUBLE, KNOBSTRING, KNOBLONG, KNOBVECBOOL,
+ KNOBVECCHAR, KNOBVECINT, KNOBVECFLOAT, KNOBVECDOUBLE,
KNOBVECSTRING, KNOBVECLONG, KNOBSHORT};
const int DISPNULL = 0x0000;
@@ -69,7 +69,7 @@ const int DISPSPEC = 0x0008;
const int DISPRAST = 0x0010;
const int DISPOPTCPLX = 0x0100;
const int DISPOPTLOG = 0x0200;
-const int DISPOPTSTEM = 0x0400;
+const int DISPOPTSTEM = 0x0400;
const int DISPOPTSTRIP = 0x0800;
const int DISPOPTSCATTER = 0x1000;
diff --git a/gnuradio-runtime/lib/controlport/rpcmanager.cc b/gnuradio-runtime/lib/controlport/rpcmanager.cc
index 59ec518960..0c7bc135be 100644
--- a/gnuradio-runtime/lib/controlport/rpcmanager.cc
+++ b/gnuradio-runtime/lib/controlport/rpcmanager.cc
@@ -42,7 +42,7 @@ rpcmanager::get()
{
if(aggregator_registered) {
return aggregator.get();
- }
+ }
else if(booter_registered) {
return boot;
}
diff --git a/gnuradio-runtime/lib/controlport/rpcserver_booter_aggregator.cc b/gnuradio-runtime/lib/controlport/rpcserver_booter_aggregator.cc
index e86306910d..201dfb3929 100644
--- a/gnuradio-runtime/lib/controlport/rpcserver_booter_aggregator.cc
+++ b/gnuradio-runtime/lib/controlport/rpcserver_booter_aggregator.cc
@@ -25,7 +25,7 @@
rpcserver_booter_aggregator::rpcserver_booter_aggregator() :
d_type(std::string("aggregator")), server(new rpcserver_aggregator())
{;}
-
+
rpcserver_booter_aggregator::~rpcserver_booter_aggregator()
{;}
diff --git a/gnuradio-runtime/lib/controlport/rpcserver_booter_ice.cc b/gnuradio-runtime/lib/controlport/rpcserver_booter_ice.cc
index cffa268a6d..f60a218747 100644
--- a/gnuradio-runtime/lib/controlport/rpcserver_booter_ice.cc
+++ b/gnuradio-runtime/lib/controlport/rpcserver_booter_ice.cc
@@ -1,9 +1,9 @@
/* -*- c++ -*- */
-/*
+/*
* Copyright 2012 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
- *
+ *
* GNU Radio is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
diff --git a/gnuradio-runtime/lib/controlport/rpcserver_ice.cc b/gnuradio-runtime/lib/controlport/rpcserver_ice.cc
index 5409f5e931..cba6be578e 100644
--- a/gnuradio-runtime/lib/controlport/rpcserver_ice.cc
+++ b/gnuradio-runtime/lib/controlport/rpcserver_ice.cc
@@ -1,9 +1,9 @@
/* -*- c++ -*- */
-/*
+/*
* Copyright 2012 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
- *
+ *
* GNU Radio is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
@@ -55,7 +55,7 @@ rpcserver_ice::registerConfigureCallback(const std::string &id,
if(DEBUG)
std::cout << "rpcserver_ice registering set: " << id << std::endl;
-
+
d_setcallbackmap.insert(ConfigureCallbackMap_t::value_type(id, callback));
}
diff --git a/gnuradio-runtime/lib/controlport/rpcserver_selector.cc b/gnuradio-runtime/lib/controlport/rpcserver_selector.cc
index 697ec497b1..d515e78963 100644
--- a/gnuradio-runtime/lib/controlport/rpcserver_selector.cc
+++ b/gnuradio-runtime/lib/controlport/rpcserver_selector.cc
@@ -36,5 +36,5 @@ bool rpcmanager::make_aggregator(false);
#endif
#ifdef RPCSERVER_XMLRPC
- #error TODO XMLRPC
+ #error TODO XMLRPC
#endif
diff --git a/gnuradio-runtime/lib/flat_flowgraph.h b/gnuradio-runtime/lib/flat_flowgraph.h
index f740299fa7..6c299ee5f9 100644
--- a/gnuradio-runtime/lib/flat_flowgraph.h
+++ b/gnuradio-runtime/lib/flat_flowgraph.h
@@ -48,7 +48,7 @@ namespace gr {
// Wire list of gr::block together in new flat_flowgraph
void setup_connections();
-
+
// Merge applicable connections from existing flat flowgraph
void merge_connections(flat_flowgraph_sptr sfg);
diff --git a/gnuradio-runtime/lib/hier_block2_detail.cc b/gnuradio-runtime/lib/hier_block2_detail.cc
index 1f5f5b0738..ad8fc87122 100644
--- a/gnuradio-runtime/lib/hier_block2_detail.cc
+++ b/gnuradio-runtime/lib/hier_block2_detail.cc
@@ -154,7 +154,7 @@ namespace gr {
{
if(HIER_BLOCK2_DETAIL_DEBUG)
std::cout << "connecting message port..." << std::endl;
-
+
// register the subscription
// this is done later...
// src->message_port_sub(srcport, pmt::cons(dst->alias_pmt(), dstport));
@@ -591,7 +591,7 @@ namespace gr {
// propogate non hier connections through
if(normal_connection){
sfg->connect( q->src(), q->dst() );
- }
+ }
}
for(std::vector<std::pair<msg_endpoint, bool> >::iterator it = resolved_endpoints.begin();
@@ -610,7 +610,7 @@ namespace gr {
}
}
*/
-
+
// Construct unique list of blocks used either in edges, inputs,
// outputs, or by themselves. I still hate STL.
basic_block_vector_t blocks; // unique list of used blocks
diff --git a/gnuradio-runtime/lib/logger.cc b/gnuradio-runtime/lib/logger.cc
index a7e4a25a40..c11f384cc6 100644
--- a/gnuradio-runtime/lib/logger.cc
+++ b/gnuradio-runtime/lib/logger.cc
@@ -254,6 +254,13 @@ namespace gr {
}
void
+ logger_set_console_appender(logger_ptr logger, std::string target, std::string pattern)
+ {
+ logger->removeAllAppenders();
+ logger_add_console_appender(logger, target, pattern);
+ }
+
+ void
logger_add_file_appender(logger_ptr logger, std::string filename,
bool append, std::string pattern)
{
@@ -267,6 +274,14 @@ namespace gr {
}
void
+ logger_set_file_appender(logger_ptr logger, std::string filename,
+ bool append, std::string pattern)
+ {
+ logger->removeAllAppenders();
+ logger_add_file_appender(logger, filename, append, pattern);
+ }
+
+ void
logger_add_rollingfile_appender(logger_ptr logger, std::string filename,
size_t filesize, int bkup_index, bool append,
mode_t mode, std::string pattern)
diff --git a/gnuradio-runtime/lib/math/qa_fast_atan2f.cc b/gnuradio-runtime/lib/math/qa_fast_atan2f.cc
index 2ec4ecb182..b704756798 100644
--- a/gnuradio-runtime/lib/math/qa_fast_atan2f.cc
+++ b/gnuradio-runtime/lib/math/qa_fast_atan2f.cc
@@ -30,6 +30,12 @@
#include <cmath>
#include <limits>
+#ifdef _MSC_VER
+#define isnan _isnan
+#else
+using std::isnan;
+#endif
+
void
qa_fast_atan2f::t1()
{
@@ -92,7 +98,7 @@ qa_fast_atan2f::t2()
x = inf;
y = inf;
gr_atan2f = gr::fast_atan2f(x, y);
- CPPUNIT_ASSERT(std::isnan(gr_atan2f));
+ CPPUNIT_ASSERT(isnan(gr_atan2f));
/* Test x as NAN */
@@ -123,11 +129,11 @@ qa_fast_atan2f::t2()
x = inf;
y = nan;
gr_atan2f = gr::fast_atan2f(x, y);
- CPPUNIT_ASSERT(std::isnan(gr_atan2f));
+ CPPUNIT_ASSERT(isnan(gr_atan2f));
x = nan;
y = inf;
gr_atan2f = gr::fast_atan2f(x, y);
- CPPUNIT_ASSERT(std::isnan(gr_atan2f));
+ CPPUNIT_ASSERT(isnan(gr_atan2f));
}
diff --git a/gnuradio-runtime/lib/math/qa_sincos.cc b/gnuradio-runtime/lib/math/qa_sincos.cc
index 7def8a9bb8..a6234d19d6 100644
--- a/gnuradio-runtime/lib/math/qa_sincos.cc
+++ b/gnuradio-runtime/lib/math/qa_sincos.cc
@@ -35,14 +35,14 @@ qa_sincos::t1()
static const unsigned int N = 1000;
double c_sin, c_cos;
double gr_sin, gr_cos;
-
+
for(unsigned i = 0; i < N; i++) {
double x = i/100.0;
c_sin = sin(x);
c_cos = cos(x);
-
+
gr::sincos(x, &gr_sin, &gr_cos);
-
+
CPPUNIT_ASSERT_DOUBLES_EQUAL(c_sin, gr_sin, 0.0001);
CPPUNIT_ASSERT_DOUBLES_EQUAL(c_cos, gr_cos, 0.0001);
}
@@ -54,14 +54,14 @@ qa_sincos::t2()
static const unsigned int N = 1000;
float c_sin, c_cos;
float gr_sin, gr_cos;
-
+
for(unsigned i = 0; i < N; i++) {
float x = i/100.0;
c_sin = sinf(x);
c_cos = cosf(x);
-
+
gr::sincosf(x, &gr_sin, &gr_cos);
-
+
CPPUNIT_ASSERT_DOUBLES_EQUAL(c_sin, gr_sin, 0.0001);
CPPUNIT_ASSERT_DOUBLES_EQUAL(c_cos, gr_cos, 0.0001);
}
diff --git a/gnuradio-runtime/lib/math/qa_sincos.h b/gnuradio-runtime/lib/math/qa_sincos.h
index c54b75f97f..9fec5958c0 100644
--- a/gnuradio-runtime/lib/math/qa_sincos.h
+++ b/gnuradio-runtime/lib/math/qa_sincos.h
@@ -32,7 +32,7 @@ class qa_sincos : public CppUnit::TestCase
CPPUNIT_TEST(t1);
CPPUNIT_TEST(t2);
CPPUNIT_TEST_SUITE_END();
-
+
private:
void t1();
void t2();
diff --git a/gnuradio-runtime/lib/messages/msg_queue.cc b/gnuradio-runtime/lib/messages/msg_queue.cc
index 6db2d2daa2..321b229358 100644
--- a/gnuradio-runtime/lib/messages/msg_queue.cc
+++ b/gnuradio-runtime/lib/messages/msg_queue.cc
@@ -98,6 +98,6 @@ namespace gr {
while(delete_head_nowait() != pmt::pmt_t())
;
}
-
+
} /* namespace messages */
} /* namespace gr */
diff --git a/gnuradio-runtime/lib/msg_handler.cc b/gnuradio-runtime/lib/msg_handler.cc
index 32d14eb715..f23b424e1a 100644
--- a/gnuradio-runtime/lib/msg_handler.cc
+++ b/gnuradio-runtime/lib/msg_handler.cc
@@ -27,7 +27,7 @@
#include <gnuradio/msg_handler.h>
namespace gr {
-
+
msg_handler::~msg_handler()
{
}
diff --git a/gnuradio-runtime/lib/pmt/CMakeLists.txt b/gnuradio-runtime/lib/pmt/CMakeLists.txt
index 193ccbe62f..32c0e57a6a 100644
--- a/gnuradio-runtime/lib/pmt/CMakeLists.txt
+++ b/gnuradio-runtime/lib/pmt/CMakeLists.txt
@@ -86,7 +86,7 @@ list(APPEND gnuradio_pmt_libs
${LOG4CPP_LIBRARIES}
)
-add_custom_target(pmt_generated
+add_custom_target(pmt_generated
DEPENDS ${PMT_SERIAL_TAGS_H} ${CMAKE_CURRENT_BINARY_DIR}/pmt_unv_int.h)
@@ -114,6 +114,21 @@ add_dependencies(gnuradio-pmt
pmt_generated
)
+if(ENABLE_STATIC_LIBS)
+ add_library(gnuradio-pmt_static STATIC ${pmt_sources})
+
+ add_dependencies(gnuradio-pmt_static pmt_generated)
+
+ if(NOT WIN32)
+ set_target_properties(gnuradio-pmt_static
+ PROPERTIES OUTPUT_NAME gnuradio-pmt)
+ endif(NOT WIN32)
+
+ install(TARGETS gnuradio-pmt_static
+ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT "runtime_devel" # .lib file
+ )
+endif(ENABLE_STATIC_LIBS)
+
########################################################################
# Setup tests
########################################################################
@@ -133,7 +148,7 @@ include_directories(${CPPUNIT_INCLUDE_DIRS})
link_directories(${CPPUNIT_LIBRARY_DIRS})
add_library(test-gnuradio-pmt SHARED ${test_gnuradio_pmt_sources})
-target_link_libraries(test-gnuradio-pmt gnuradio-runtime gnuradio-pmt
+target_link_libraries(test-gnuradio-pmt gnuradio-runtime gnuradio-pmt
${CPPUNIT_LIBRARIES} ${Boost_LIBRARIES} ${LOG4CPP_LIBRARIES})
########################################################################
diff --git a/gnuradio-runtime/lib/pmt/pmt.cc b/gnuradio-runtime/lib/pmt/pmt.cc
index 8315100ab3..082b98a80d 100644
--- a/gnuradio-runtime/lib/pmt/pmt.cc
+++ b/gnuradio-runtime/lib/pmt/pmt.cc
@@ -160,9 +160,14 @@ _any(pmt_t x)
const pmt_t PMT_T = pmt_t(new pmt_bool()); // singleton
const pmt_t PMT_F = pmt_t(new pmt_bool()); // singleton
-const pmt_t PMT_NIL = pmt_t(new pmt_null()); // singleton
const pmt_t PMT_EOF = cons(PMT_NIL, PMT_NIL); // singleton
+pmt_t get_PMT_NIL()
+{
+ static pmt_t NIL = pmt_t(new pmt_null());
+ return NIL;
+}
+
////////////////////////////////////////////////////////////////////////////
// Booleans
////////////////////////////////////////////////////////////////////////////
@@ -1388,7 +1393,7 @@ list_has(pmt_t list, const pmt_t& item)
pmt_t right = cdr(list);
if(equal(left,item))
return true;
- return list_has(right, item);
+ return list_has(right, item);
} else {
if(is_null(list))
return false;
diff --git a/gnuradio-runtime/lib/pmt/pmt_serialize.cc b/gnuradio-runtime/lib/pmt/pmt_serialize.cc
index fc5763aed4..5cc2005ca7 100644
--- a/gnuradio-runtime/lib/pmt/pmt_serialize.cc
+++ b/gnuradio-runtime/lib/pmt/pmt_serialize.cc
@@ -276,14 +276,14 @@ serialize(pmt_t obj, std::streambuf &sb)
}
if(is_number(obj)) {
-
+
if(is_uint64(obj)) {
uint64_t i = to_uint64(obj);
ok = serialize_untagged_u8(PST_UINT64, sb);
ok &= serialize_untagged_u64(i, sb);
return ok;
}
- else {
+ else {
if(is_integer(obj)) {
long i = to_long(obj);
if(sizeof(long) > 4) {
@@ -581,7 +581,7 @@ deserialize(std::streambuf &sb)
goto error;
return make_rectangular( r,i );
}
-
+
case PST_TUPLE:
{
pmt_t tuple;
@@ -614,7 +614,7 @@ deserialize(std::streambuf &sb)
if(!deserialize_untagged_u32(&nitems, sb))
goto error;
-
+
deserialize_untagged_u8(&npad, sb);
for(size_t i = 0; i < npad; i++)
deserialize_untagged_u8(&u8, sb);
diff --git a/gnuradio-runtime/lib/pmt/qa_pmt_prims.cc b/gnuradio-runtime/lib/pmt/qa_pmt_prims.cc
index bfe71fbe5a..2f46b014db 100644
--- a/gnuradio-runtime/lib/pmt/qa_pmt_prims.cc
+++ b/gnuradio-runtime/lib/pmt/qa_pmt_prims.cc
@@ -478,7 +478,7 @@ qa_pmt_prims::test_any()
// ------------------------------------------------------------------------
-class qa_pmt_msg_accepter_nop : public gr::messages::msg_accepter
+class qa_pmt_msg_accepter_nop : public gr::messages::msg_accepter
{
public:
qa_pmt_msg_accepter_nop(){};
@@ -496,7 +496,7 @@ qa_pmt_prims::test_msg_accepter()
boost::any a0;
a0 = std::string("Hello!");
pmt::pmt_t p0 = pmt::make_any(a0);
-
+
gr::messages::msg_accepter_sptr ma0 = \
gr::messages::msg_accepter_sptr(new qa_pmt_msg_accepter_nop());
pmt::pmt_t p1 = pmt::make_msg_accepter(ma0);
diff --git a/gnuradio-runtime/lib/pmt/unv_template.cc.t b/gnuradio-runtime/lib/pmt/unv_template.cc.t
index c8020e7de2..d3fa14bee1 100644
--- a/gnuradio-runtime/lib/pmt/unv_template.cc.t
+++ b/gnuradio-runtime/lib/pmt/unv_template.cc.t
@@ -90,7 +90,7 @@ init_@TAG@vector(size_t k, const @TYPE@ *data)
pmt_t
init_@TAG@vector(size_t k, const std::vector< @TYPE@ > &data)
{
-
+
return pmt_t(new pmt_@TAG@vector(k, &data[0]));
}
diff --git a/gnuradio-runtime/lib/prefs.cc b/gnuradio-runtime/lib/prefs.cc
index d03c6777eb..b7fcaada9d 100644
--- a/gnuradio-runtime/lib/prefs.cc
+++ b/gnuradio-runtime/lib/prefs.cc
@@ -36,22 +36,12 @@ namespace fs = boost::filesystem;
namespace gr {
- /*
- * Stub implementations
- */
- static prefs s_default_singleton;
- static prefs *s_singleton = &s_default_singleton;
-
prefs *
prefs::singleton()
{
- return s_singleton;
- }
-
- void
- prefs::set_singleton(prefs *p)
- {
- s_singleton = p;
+ static prefs instance; // Guaranteed to be destroyed.
+ // Instantiated on first use.
+ return &instance;
}
prefs::prefs()
diff --git a/gnuradio-runtime/lib/qa_logger.cc b/gnuradio-runtime/lib/qa_logger.cc
index b147b36da1..904893cc4d 100644
--- a/gnuradio-runtime/lib/qa_logger.cc
+++ b/gnuradio-runtime/lib/qa_logger.cc
@@ -1,18 +1,18 @@
/*
* Copyright 2012 Free Software Foundation, Inc.
- *
+ *
* This file is part of GNU Radio
- *
+ *
* GNU Radio is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
* any later version.
- *
+ *
* GNU Radio is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with GNU Radio; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street,
diff --git a/gnuradio-runtime/lib/qa_logger.h b/gnuradio-runtime/lib/qa_logger.h
index 35f7f1f6c4..2e237eebf8 100644
--- a/gnuradio-runtime/lib/qa_logger.h
+++ b/gnuradio-runtime/lib/qa_logger.h
@@ -1,19 +1,19 @@
/* -*- c++ -*- */
/*
* Copyright 2012 Free Software Foundation, Inc.
- *
+ *
* This file is part of GNU Radio
- *
+ *
* GNU Radio is free software; you can redistribute it and/or modify
* it under the terms of the GNU Example 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 Example Public License for more details.
- *
+ *
* You should have received a copy of the GNU Example Public License
* along with GNU Radio; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street,
@@ -31,7 +31,7 @@
class qa_logger : public CppUnit::TestCase
{
public:
- CPPUNIT_TEST_SUITE(qa_logger);
+ CPPUNIT_TEST_SUITE(qa_logger);
CPPUNIT_TEST(t1);
CPPUNIT_TEST_SUITE_END();
diff --git a/gnuradio-runtime/lib/realtime.cc b/gnuradio-runtime/lib/realtime.cc
index 99deff5b52..603e97a2f1 100644
--- a/gnuradio-runtime/lib/realtime.cc
+++ b/gnuradio-runtime/lib/realtime.cc
@@ -27,7 +27,7 @@
#include <gnuradio/realtime.h>
namespace gr {
-
+
rt_status_t
enable_realtime_scheduling()
{
diff --git a/gnuradio-runtime/lib/scheduler_tpb.cc b/gnuradio-runtime/lib/scheduler_tpb.cc
index 2fe9e10f6a..0319a43a88 100644
--- a/gnuradio-runtime/lib/scheduler_tpb.cc
+++ b/gnuradio-runtime/lib/scheduler_tpb.cc
@@ -29,7 +29,7 @@
#include <sstream>
namespace gr {
-
+
class tpb_container
{
block_sptr d_block;
@@ -56,7 +56,7 @@ namespace gr {
: scheduler(ffg, max_noutput_items)
{
int block_max_noutput_items;
-
+
// Get a topologically sorted vector of all the blocks in use.
// Being topologically sorted probably isn't going to matter, but
// there's a non-zero chance it might help...
@@ -84,7 +84,7 @@ namespace gr {
else {
block_max_noutput_items = max_noutput_items;
}
-
+
d_threads.create_thread(
gr::thread::thread_body_wrapper<tpb_container>
(tpb_container(blocks[i], block_max_noutput_items),
diff --git a/gnuradio-runtime/lib/test.cc b/gnuradio-runtime/lib/test.cc
index 775dc2bde4..37da40e641 100644
--- a/gnuradio-runtime/lib/test.cc
+++ b/gnuradio-runtime/lib/test.cc
@@ -51,10 +51,10 @@ namespace gr {
unsigned int sizeof_input_item,
int min_outputs, int max_outputs,
unsigned int sizeof_output_item,
- unsigned int history,
+ unsigned int history,
unsigned int output_multiple,
double relative_rate,
- bool fixed_rate,
+ bool fixed_rate,
consume_type_t cons_type, produce_type_t prod_type)
: block (name,
io_signature::make(min_inputs, max_inputs, sizeof_input_item),
diff --git a/gnuradio-runtime/lib/test.h b/gnuradio-runtime/lib/test.h
index cbe42f94e8..24266ab977 100644
--- a/gnuradio-runtime/lib/test.h
+++ b/gnuradio-runtime/lib/test.h
@@ -129,7 +129,7 @@ namespace gr {
* returns true. Generally speaking, you don't need to override
* this.
*/
- int fixed_rate_ninput_to_noutput(int ninput) {
+ int fixed_rate_ninput_to_noutput(int ninput) {
return (int)((double)ninput/relative_rate());
}
diff --git a/gnuradio-runtime/lib/thread/thread.cc b/gnuradio-runtime/lib/thread/thread.cc
index 8c59b6df74..483dfed493 100644
--- a/gnuradio-runtime/lib/thread/thread.cc
+++ b/gnuradio-runtime/lib/thread/thread.cc
@@ -120,24 +120,17 @@ namespace gr {
DWORD dwFlags; // Reserved for future use, must be zero
} THREADNAME_INFO;
#pragma pack(pop)
- void
- set_thread_name(gr_thread_t thread, std::string name)
+ static void
+ _set_thread_name(gr_thread_t thread, const char* name, DWORD dwThreadId)
{
const DWORD SET_THREAD_NAME_EXCEPTION = 0x406D1388;
-
- DWORD dwThreadId = GetThreadId(thread);
- if (dwThreadId == 0)
- return;
-
- if (name.empty())
- name = boost::str(boost::format("thread %lu") % dwThreadId);
-
+
THREADNAME_INFO info;
info.dwType = 0x1000;
- info.szName = name.c_str();
+ info.szName = name;
info.dwThreadID = dwThreadId;
info.dwFlags = 0;
-
+
__try
{
RaiseException(SET_THREAD_NAME_EXCEPTION, 0, sizeof(info)/sizeof(ULONG_PTR), (ULONG_PTR*)&info);
@@ -147,6 +140,19 @@ namespace gr {
}
}
+ void
+ set_thread_name(gr_thread_t thread, std::string name)
+ {
+ DWORD dwThreadId = GetThreadId(thread);
+ if (dwThreadId == 0)
+ return;
+
+ if (name.empty())
+ name = boost::str(boost::format("thread %lu") % dwThreadId);
+
+ _set_thread_name(thread, name.c_str(), dwThreadId);
+ }
+
} /* namespace thread */
} /* namespace gr */
@@ -221,7 +227,7 @@ namespace gr {
param.sched_priority = priority;
return pthread_setschedparam(thread, policy, &param);
}
-
+
void
set_thread_name(gr_thread_t thread, std::string name)
{
@@ -334,18 +340,18 @@ namespace gr {
param.sched_priority = priority;
return pthread_setschedparam(thread, policy, &param);
}
-
+
void
set_thread_name(gr_thread_t thread, std::string name)
{
if (thread != pthread_self()) // Naming another thread is not supported
return;
-
+
if (name.empty())
name = boost::str(boost::format("thread %llu") % ((unsigned long long)thread));
-
+
const int max_len = 16; // Maximum accepted by PR_SET_NAME
-
+
if ((int)name.size() > max_len) // Shorten the name if necessary by taking as many characters from the front
{ // so that the unique_id can still fit on the end
int i = name.size() - 1;
@@ -356,10 +362,10 @@ namespace gr {
if ((n == 0) && (s != "0"))
break;
}
-
+
name = name.substr(0, std::max(0, max_len - ((int)name.size() - (i + 1)))) + name.substr(i + 1);
}
-
+
prctl(PR_SET_NAME, name.c_str(), 0, 0, 0);
}
diff --git a/gnuradio-runtime/lib/tpb_thread_body.cc b/gnuradio-runtime/lib/tpb_thread_body.cc
index eb47a43ee3..d80ab860fa 100644
--- a/gnuradio-runtime/lib/tpb_thread_body.cc
+++ b/gnuradio-runtime/lib/tpb_thread_body.cc
@@ -36,8 +36,13 @@ namespace gr {
: d_exec(block, max_noutput_items)
{
//std::cerr << "tpb_thread_body: " << block << std::endl;
-
+
+#ifdef _MSC_VER
+ #include <Windows.h>
+ thread::set_thread_name(GetCurrentThread(), boost::str(boost::format("%s%d") % block->name() % block->unique_id()));
+#else
thread::set_thread_name(pthread_self(), boost::str(boost::format("%s%d") % block->name() % block->unique_id()));
+#endif
block_detail *d = block->detail().get();
block_executor::state s;
@@ -61,13 +66,13 @@ namespace gr {
GR_CONFIG_LOGGER(config_file);
if(log_file.size() > 0) {
if(log_file == "stdout") {
- GR_LOG_ADD_CONSOLE_APPENDER(LOG, "cout","gr::log :%p: %c{1} - %m%n");
+ GR_LOG_SET_CONSOLE_APPENDER(LOG, "cout","gr::log :%p: %c{1} - %m%n");
}
else if(log_file == "stderr") {
- GR_LOG_ADD_CONSOLE_APPENDER(LOG, "cerr","gr::log :%p: %c{1} - %m%n");
+ GR_LOG_SET_CONSOLE_APPENDER(LOG, "cerr","gr::log :%p: %c{1} - %m%n");
}
else {
- GR_LOG_ADD_FILE_APPENDER(LOG, log_file , true,"%r :%p: %c{1} - %m%n");
+ GR_LOG_SET_FILE_APPENDER(LOG, log_file , true,"%r :%p: %c{1} - %m%n");
}
}
#endif /* HAVE_LOG4CPP */
@@ -83,7 +88,7 @@ namespace gr {
if(block->thread_priority() > 0) {
gr::thread::set_thread_priority(d->thread, block->thread_priority());
}
-
+
// make sure our block isnt finished
block->clear_finished();
@@ -107,7 +112,7 @@ namespace gr {
if(block->nmsgs(i.first) > max_nmsgs){
GR_LOG_WARN(LOG,"asynchronous message buffer overflowing, dropping message");
msg = block->delete_head_nowait(i.first);
- }
+ }
}
}
@@ -154,19 +159,19 @@ namespace gr {
// handle all pending messages
BOOST_FOREACH(basic_block::msg_queue_map_t::value_type &i, block->msg_queue) {
if(block->has_msg_handler(i.first)) {
- while((msg = block->delete_head_nowait(i.first))) {
- guard.unlock(); // release lock while processing msg
- block->dispatch_msg(i.first, msg);
- guard.lock();
- }
+ while((msg = block->delete_head_nowait(i.first))) {
+ guard.unlock(); // release lock while processing msg
+ block->dispatch_msg(i.first, msg);
+ guard.lock();
+ }
}
else {
- // leave msg in queue if no handler is defined
- // start dropping if we have too many
- if(block->nmsgs(i.first) > max_nmsgs){
- GR_LOG_WARN(LOG,"asynchronous message buffer overflowing, dropping message");
- msg = block->delete_head_nowait(i.first);
- }
+ // leave msg in queue if no handler is defined
+ // start dropping if we have too many
+ if(block->nmsgs(i.first) > max_nmsgs){
+ GR_LOG_WARN(LOG,"asynchronous message buffer overflowing, dropping message");
+ msg = block->delete_head_nowait(i.first);
+ }
}
}
if (d->done()) {
@@ -197,11 +202,11 @@ namespace gr {
// leave msg in queue if no handler is defined
// start dropping if we have too many
if(block->nmsgs(i.first) > max_nmsgs){
- GR_LOG_WARN(LOG,"asynchronous message buffer overflowing, dropping message");
- msg = block->delete_head_nowait(i.first);
- }
+ GR_LOG_WARN(LOG,"asynchronous message buffer overflowing, dropping message");
+ msg = block->delete_head_nowait(i.first);
}
}
+ }
}
}
break;
diff --git a/gnuradio-runtime/lib/vmcircbuf.cc b/gnuradio-runtime/lib/vmcircbuf.cc
index ff5093d5c4..d17ed72c43 100644
--- a/gnuradio-runtime/lib/vmcircbuf.cc
+++ b/gnuradio-runtime/lib/vmcircbuf.cc
@@ -184,7 +184,7 @@ namespace gr {
}
return buf.c_str();
}
-
+
static bool
test_a_bunch(vmcircbuf_factory *factory, int n, int size, int *start_ptr, bool verbose)
{
diff --git a/gnuradio-runtime/lib/vmcircbuf_sysv_shm.cc b/gnuradio-runtime/lib/vmcircbuf_sysv_shm.cc
index 4d8741807b..27ad4f3829 100644
--- a/gnuradio-runtime/lib/vmcircbuf_sysv_shm.cc
+++ b/gnuradio-runtime/lib/vmcircbuf_sysv_shm.cc
@@ -64,24 +64,24 @@ namespace gr {
// Attempt to allocate buffers (handle bad_alloc errors)
int attempts_remain(MAX_SYSV_SHM_ATTEMPTS);
while(attempts_remain-- > 0){
-
+
int shmid_guard = -1;
int shmid1 = -1;
int shmid2 = -1;
-
+
// We use this as a guard page. We'll map it read-only on both ends of the buffer.
// Ideally we'd map it no access, but I don't think that's possible with SysV
if((shmid_guard = shmget(IPC_PRIVATE, pagesize, IPC_CREAT | 0400)) == -1) {
perror("gr::vmcircbuf_sysv_shm: shmget (0)");
continue;
}
-
+
if((shmid2 = shmget(IPC_PRIVATE, 2 * size + 2 * pagesize, IPC_CREAT | 0700)) == -1) {
perror("gr::vmcircbuf_sysv_shm: shmget(1)");
shmctl(shmid_guard, IPC_RMID, 0);
continue;
}
-
+
if((shmid1 = shmget(IPC_PRIVATE, size, IPC_CREAT | 0700)) == -1) {
perror("gr::vmcircbuf_sysv_shm: shmget (2)");
shmctl(shmid_guard, IPC_RMID, 0);
@@ -148,7 +148,7 @@ namespace gr {
shmctl(shmid1, IPC_RMID, 0);
shmctl(shmid_guard, IPC_RMID, 0);
-
+
// Now remember the important stuff
d_base = (char*)first_copy + pagesize;
d_size = size;
diff --git a/gnuradio-runtime/python/gnuradio/ctrlport/CMakeLists.txt b/gnuradio-runtime/python/gnuradio/ctrlport/CMakeLists.txt
index d1b27e50a7..80806341ea 100644
--- a/gnuradio-runtime/python/gnuradio/ctrlport/CMakeLists.txt
+++ b/gnuradio-runtime/python/gnuradio/ctrlport/CMakeLists.txt
@@ -1,17 +1,17 @@
# Copyright 2012 Free Software Foundation, Inc.
-#
+#
# This file is part of GNU Radio
-#
+#
# GNU Radio is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
-#
+#
# GNU Radio is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-#
+#
# You should have received a copy of the GNU General Public License
# along with GNU Radio; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street,
@@ -97,6 +97,6 @@ GR_PYTHON_INSTALL(
${CMAKE_CURRENT_SOURCE_DIR}/gr-perf-monitorx
${CMAKE_CURRENT_SOURCE_DIR}/gr-ctrlport-curses
DESTINATION ${GR_RUNTIME_DIR}
- PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+ PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
COMPONENT "runtime_python"
)
diff --git a/gnuradio-runtime/python/gnuradio/ctrlport/GrDataPlotter.py b/gnuradio-runtime/python/gnuradio/ctrlport/GrDataPlotter.py
index 78b83c2411..661705d613 100644
--- a/gnuradio-runtime/python/gnuradio/ctrlport/GrDataPlotter.py
+++ b/gnuradio-runtime/python/gnuradio/ctrlport/GrDataPlotter.py
@@ -184,7 +184,7 @@ class GrDataPlotParent(gr.top_block, QtGui.QWidget):
data[n] = [data[n],]
data[n] = self.data_to_complex(data[n])
self.src[n].set_data(data[n])
-
+
class GrDataPlotterC(GrDataPlotParent):
@@ -236,7 +236,7 @@ class GrDataPlotterF(GrDataPlotParent):
self._name, self._ncons)
snk.enable_autoscale(True)
return snk
-
+
def get_vecsource(self):
return blocks.vector_source_f([])
@@ -246,7 +246,7 @@ class GrDataPlotterF(GrDataPlotParent):
def set_line_label(self, n, name):
self.snk.set_line_label(n, self.knobnames[n])
-
+
class GrDataPlotterConst(GrDataPlotParent):
def __init__(self, name, rate, pmin=None, pmax=None, stripchart=False):
diff --git a/gnuradio-runtime/python/gnuradio/ctrlport/IceRadioClient.py b/gnuradio-runtime/python/gnuradio/ctrlport/IceRadioClient.py
index 4657482c3e..87998f7911 100644
--- a/gnuradio-runtime/python/gnuradio/ctrlport/IceRadioClient.py
+++ b/gnuradio-runtime/python/gnuradio/ctrlport/IceRadioClient.py
@@ -64,7 +64,7 @@ class IceRadioClient(Ice.Application):
if self.useglacier:
gstring = ginst + "/router -t:tcp -h " + ghost + " -p " + gport
print "GLACIER: {0}".format(gstring)
-
+
setrouter = Glacier2.RouterPrx.checkedCast(self.communicator().stringToProxy(gstring))
self.communicator().setDefaultRouter(setrouter)
defaultRouter = self.communicator().getDefaultRouter()
diff --git a/gnuradio-runtime/python/gnuradio/ctrlport/__init__.py b/gnuradio-runtime/python/gnuradio/ctrlport/__init__.py
index 031c3b424e..cfb30ce850 100644
--- a/gnuradio-runtime/python/gnuradio/ctrlport/__init__.py
+++ b/gnuradio-runtime/python/gnuradio/ctrlport/__init__.py
@@ -1,18 +1,18 @@
#
# Copyright 2012 Free Software Foundation, Inc.
-#
+#
# This file is part of GNU Radio
-#
+#
# GNU Radio is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
-#
+#
# GNU Radio is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-#
+#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
diff --git a/gnuradio-runtime/python/gnuradio/ctrlport/gr-ctrlport-curses b/gnuradio-runtime/python/gnuradio/ctrlport/gr-ctrlport-curses
index 1bee3b1a1e..f40c87a6d8 100755
--- a/gnuradio-runtime/python/gnuradio/ctrlport/gr-ctrlport-curses
+++ b/gnuradio-runtime/python/gnuradio/ctrlport/gr-ctrlport-curses
@@ -43,7 +43,7 @@ class modem_monitor(threading.Thread):
def __del__(self):
rx.close()
- def run(self):
+ def run(self):
while self.running:
time.sleep(0.5)
@@ -80,7 +80,7 @@ class modem_window(threading.Thread):
self.ssel = 0
self.start()
#self.updateGUI()
-
+
# input loop
while(self.running):
self.getInput()
@@ -239,7 +239,7 @@ class monitor_gui:
self.updateGUI()
except:
pass
-
+
def shutdown(self):
curses.endwin()
os._exit(0)
diff --git a/gnuradio-runtime/python/gnuradio/ctrlport/gr-ctrlport-monitor b/gnuradio-runtime/python/gnuradio/ctrlport/gr-ctrlport-monitor
index 56cb2f3696..76dd2e5bc1 100755
--- a/gnuradio-runtime/python/gnuradio/ctrlport/gr-ctrlport-monitor
+++ b/gnuradio-runtime/python/gnuradio/ctrlport/gr-ctrlport-monitor
@@ -53,7 +53,7 @@ class MAINWindow(QtGui.QMainWindow):
return Qtgui.QSize(800,600)
def __init__(self, radio, port, interface):
-
+
super(MAINWindow, self).__init__()
self.updateRate = 1000;
self.conns = []
@@ -195,11 +195,11 @@ class MAINWindow(QtGui.QMainWindow):
else:
self.newPlotC(tag, uid, title, pmin, pmax,
log, strip, stem)
-
+
elif(disp & gr.DISPXY):
scatter = disp & gr.DISPOPTSCATTER
self.newPlotConst(tag, uid, title, pmin, pmax, scatter)
-
+
elif(disp & gr.DISPPSD):
if(disp & gr.DISPOPTCPLX == 0):
self.newPlotPsdF(tag, uid, title)
@@ -215,7 +215,7 @@ class MAINWindow(QtGui.QMainWindow):
knobprop = self.knobprops[tree.uid][tag]
disp = knobprop.display
iscomplex = (disp & gr.DISPOPTCPLX) or (disp & gr.DISPXY)
-
+
if(disp != gr.DISPNULL):
data = "PlotData:::{0}:::{1}".format(tag, iscomplex)
else:
@@ -268,8 +268,8 @@ class MAINWindow(QtGui.QMainWindow):
plot = GrDataPlotterConst(tag, 32e6, pmin, pmax, stripchart)
plot.scatter(scatter)
self.createPlot(plot, uid, title)
-
- def newPlotF(self, tag, uid, title="", pmin=None, pmax=None,
+
+ def newPlotF(self, tag, uid, title="", pmin=None, pmax=None,
logy=False, stripchart=False, stem=False):
plot = GrDataPlotterF(tag, 32e6, pmin, pmax, stripchart)
plot.semilogy(logy)
@@ -461,7 +461,7 @@ class ConInfoDialog(QtGui.QDialog):
super(ConInfoDialog, self).__init__(parent)
self.gridLayout = QtGui.QGridLayout(self)
-
+
self.host = QtGui.QLineEdit(self);
self.port = QtGui.QLineEdit(self);
@@ -515,7 +515,7 @@ class UpdaterWindow(QtGui.QDialog):
self.buttonlayout = QtGui.QHBoxLayout()
self.buttonlayout.addWidget(self.cancelButton)
self.layout.addLayout(self.buttonlayout)
-
+
else: # we have a set function
self.textInput = QtGui.QLineEdit()
self.layout.addWidget(self.textInput)
@@ -535,7 +535,7 @@ class UpdaterWindow(QtGui.QDialog):
self.applyButton.connect(self.applyButton, QtCore.SIGNAL('clicked()'), self._apply)
self.setButton.connect(self.setButton, QtCore.SIGNAL('clicked()'), self._set)
self.cancelButton.connect(self.cancelButton, QtCore.SIGNAL('clicked()'), self.reject)
-
+
self.is_num = ((type(self.sv.value)==float) or (type(self.sv.value)==int))
if(self.is_num):
self.sliderlayout = QtGui.QHBoxLayout()
@@ -548,7 +548,7 @@ class UpdaterWindow(QtGui.QDialog):
self.steps = 10000
self.valspan = self.props.max.value - self.props.min.value
-
+
self.slider.setRange(0, 10000)
self._set_slider_value(self.sv.value)
@@ -566,10 +566,10 @@ class UpdaterWindow(QtGui.QDialog):
# set layout and go...
self.setLayout(self.layout)
-
+
def _set_slider_value(self, val):
self.slider.setValue(self.steps*(val-self.props.min.value)/self.valspan)
-
+
def _slide(self):
val = (self.slider.value()*self.valspan + self.props.min.value)/float(self.steps)
self.textInput.setText(str(val))
@@ -611,7 +611,7 @@ class MForm(QtGui.QWidget):
ft = time.time();
latency = ft-st;
self.parent.statusBar().showMessage("Current GNU Radio Control Port Query Latency: %f ms"%(latency*1000))
-
+
except Exception, e:
sys.stderr.write("ctrlport-monitor: radio.get threw exception ({0}).\n".format(e))
if(type(self.parent) is MAINWindow):
@@ -626,7 +626,7 @@ class MForm(QtGui.QWidget):
for plot in self.parent.plots[self.uid]:
if plot.qwidget() == p.widget():
remove.append(p)
-
+
# Clean up local references to these
self.parent.conns.remove(self.parent.conns[self.uid])
self.parent.plots.remove(self.parent.plots[self.uid])
@@ -642,7 +642,7 @@ class MForm(QtGui.QWidget):
return
tableitems = knobs.keys()
-
+
#UPDATE TABLE:
try:
self.table.updateItems(knobs, self.knobprops)
@@ -666,7 +666,7 @@ class MForm(QtGui.QWidget):
else:
self.radio = None
return
-
+
self.uid = uid
self.parent = parent
self.horizontalLayout = QtGui.QVBoxLayout(self)
@@ -680,7 +680,7 @@ class MForm(QtGui.QWidget):
self.constupdatediv = 0
self.tableupdatediv = 0
plotsize=250
-
+
# make table
self.table = GrDataPlotterValueTable(uid, self, 0, 0, 400, 200)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
@@ -692,12 +692,12 @@ class MForm(QtGui.QWidget):
# add things to layouts
self.horizontalLayout.addWidget(self.table.treeWidget)
- # set up timer
+ # set up timer
self.connect(self.timer, QtCore.SIGNAL('timeout()'), self.update)
self.updateRate = updateRate;
self.timer.start(self.updateRate)
- # set up context menu ..
+ # set up context menu ..
self.table.treeWidget.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.table.treeWidget.customContextMenuRequested.connect(self.openMenu)
@@ -710,13 +710,13 @@ class MForm(QtGui.QWidget):
self.connect(self.table.treeWidget,
QtCore.SIGNAL('itemPressed(QTreeWidgetItem*, int)'),
self.parent.startDrag)
-
+
def openMenu(self, pos):
index = self.table.treeWidget.selectedIndexes()
item = self.table.treeWidget.itemFromIndex(index[0])
itemname = str(item.text(0))
self.parent.propertiesMenu(itemname, self.radio, self.uid)
-
+
def get_minmax(p):
pmin = p.min.value
@@ -733,7 +733,7 @@ def get_minmax(p):
pmin = struct.unpack('b', pmin)[0]
if(type(pmax) == str):
pmax = struct.unpack('b', pmax)[0]
-
+
if pmin == []:
pmin = None
else:
diff --git a/gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitor b/gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitor
index f2c01691a1..612eb66063 100755
--- a/gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitor
+++ b/gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitor
@@ -38,7 +38,7 @@ class MAINWindow(QtGui.QMainWindow):
return QtGui.QSize(800,600)
def __init__(self, radio, port, interface):
-
+
super(MAINWindow, self).__init__()
self.conns = []
self.plots = []
@@ -223,7 +223,7 @@ class ConInfoDialog(QtGui.QDialog):
super(ConInfoDialog, self).__init__(parent)
self.gridLayout = QtGui.QGridLayout(self)
-
+
self.host = QtGui.QLineEdit(self);
self.port = QtGui.QLineEdit(self);
@@ -270,13 +270,13 @@ class UpdaterWindow(QtGui.QDialog):
self.buttonlayout = QtGui.QHBoxLayout()
self.buttonlayout.addWidget(self.cancelButton)
self.layout.addLayout(self.buttonlayout)
-
+
# set layout and go...
self.setLayout(self.layout)
-
+
def _set_slider_value(self, val):
self.slider.setValue(self.steps*(val-self.props.min.value)/self.valspan)
-
+
def _slide(self):
val = (self.slider.value()*self.valspan + self.props.min.value)/float(self.steps)
self.textInput.setText(str(val))
@@ -368,7 +368,7 @@ class MForm(QtGui.QWidget):
latency = ft-st
self.parent.statusBar().showMessage("Current GNU Radio Control Port Query Latency: %f ms"%\
(latency*1000))
-
+
except Exception, e:
sys.stderr.write("ctrlport-monitor: radio.get threw exception ({0}).\n".format(e))
if(type(self.parent) is MAINWindow):
@@ -383,7 +383,7 @@ class MForm(QtGui.QWidget):
for plot in self.parent.plots[self.uid]:
if plot.qwidget() == p.widget():
remove.append(p)
-
+
# Clean up local references to these
self.parent.conns.remove(self.parent.conns[self.uid])
self.parent.plots.remove(self.parent.plots[self.uid])
@@ -397,13 +397,13 @@ class MForm(QtGui.QWidget):
else:
sys.exit(1)
return
-
+
#UPDATE TABLE:
self.updateItems(knobs)
#UPDATE PLOTS
self.parent.update(knobs, self.uid)
-
+
def updateItems(self, knobs):
for b in self.block_dict:
if(knobs[b[0]].ice_id.im_class == GNURadio.KnobVecF):
@@ -424,7 +424,7 @@ class MForm(QtGui.QWidget):
else:
self.radio = None
return
-
+
self.uid = uid
self.parent = parent
self.layout = QtGui.QGridLayout(self)
@@ -500,7 +500,7 @@ class MForm(QtGui.QWidget):
for col, block in enumerate(blockrow):
if(block == ''):
continue
-
+
bgroup = QtGui.QGroupBox(block)
playout = QtGui.QFormLayout()
bgroup.setLayout(playout)
@@ -539,7 +539,7 @@ class MForm(QtGui.QWidget):
bufflayout = QtGui.QFormLayout()
buffgroup.setLayout(bufflayout)
self.layout.addWidget(buffgroup, row, 2*col+1)
-
+
i = int(block.split(":")[1])
name = output_name(blockname)
obuff = knobs[name].value
@@ -550,7 +550,7 @@ class MForm(QtGui.QWidget):
self.block_dict.append((name, newobuff, i))
bufflayout.addRow("Out Buffer {0}".format(i),
newobuff)
-
+
if blockname in blocks or blockname in sinks:
item = self.layout.itemAtPosition(row, 2*col-1)
if(item):
@@ -561,7 +561,7 @@ class MForm(QtGui.QWidget):
bufflayout = QtGui.QFormLayout()
buffgroup.setLayout(bufflayout)
self.layout.addWidget(buffgroup, row, 2*col-1)
-
+
i = int(block.split(":")[1])
name = input_name(blockname)
ibuff = knobs[name].value[i]
@@ -582,7 +582,7 @@ class MForm(QtGui.QWidget):
item = self.table.treeWidget.itemFromIndex(index[0])
itemname = str(item.text(0))
self.parent.propertiesMenu(itemname, self.radio, self.uid)
-
+
class MyClient(IceRadioClient):
def __init__(self):
diff --git a/gnuradio-runtime/python/gnuradio/gr/packet_utils.py b/gnuradio-runtime/python/gnuradio/gr/packet_utils.py
index 7ae42e88e3..720cfd962f 100644
--- a/gnuradio-runtime/python/gnuradio/gr/packet_utils.py
+++ b/gnuradio-runtime/python/gnuradio/gr/packet_utils.py
@@ -1,24 +1,24 @@
#!/usr/bin/env python
#
# Copyright 2013 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.
-#
+#
from gnuradio import gr
import pmt
diff --git a/gnuradio-runtime/python/gnuradio/gr/prefs.py b/gnuradio-runtime/python/gnuradio/gr/prefs.py
deleted file mode 100644
index 17f5bfb54c..0000000000
--- a/gnuradio-runtime/python/gnuradio/gr/prefs.py
+++ /dev/null
@@ -1,127 +0,0 @@
-#
-# Copyright 2006,2009 Free Software Foundation, Inc.
-#
-# This file is part of GNU Radio
-#
-# GNU Radio is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# GNU Radio is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Radio; see the file COPYING. If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street,
-# Boston, MA 02110-1301, USA.
-#
-
-import gnuradio_runtime as gsp
-_prefs_base = gsp.prefs
-
-
-import ConfigParser
-import os
-import os.path
-import sys
-import glob
-
-
-def _user_prefs_filename():
- return os.path.expanduser('~/.gnuradio/config.conf')
-
-def _sys_prefs_dirname():
- return gsp.prefsdir()
-
-def _bool(x):
- """
- Try to coerce obj to a True or False
- """
- if isinstance(x, bool):
- return x
- if isinstance(x, (float, int)):
- return bool(x)
- raise TypeError, x
-
-
-class _prefs(_prefs_base):
- """
- Derive our 'real class' from the stubbed out base class that has support
- for SWIG directors. This allows C++ code to magically and transparently
- invoke the methods in this python class.
- """
- def __init__(self):
- _prefs_base.__init__(self)
- self.cp = ConfigParser.RawConfigParser()
- self.__getattr__ = lambda self, name: getattr(self.cp, name)
-
- def _sys_prefs_filenames(self):
- dir = _sys_prefs_dirname()
- try:
- fnames = glob.glob(os.path.join(dir, '*.conf'))
- except (IOError, OSError):
- return []
- fnames.sort()
- return fnames
-
- def _read_files(self):
- filenames = self._sys_prefs_filenames()
- filenames.append(_user_prefs_filename())
- #print "filenames: ", filenames
- self.cp.read(filenames)
-
- # ----------------------------------------------------------------
- # These methods override the C++ virtual methods of the same name
- # ----------------------------------------------------------------
- def has_section(self, section):
- return self.cp.has_section(section)
-
- def has_option(self, section, option):
- return self.cp.has_option(section, option)
-
- def get_string(self, section, option, default_val):
- try:
- return self.cp.get(section, option)
- except:
- return default_val
-
- def get_bool(self, section, option, default_val):
- try:
- return self.cp.getboolean(section, option)
- except:
- return default_val
-
- def get_long(self, section, option, default_val):
- try:
- return self.cp.getint(section, option)
- except:
- return default_val
-
- def get_double(self, section, option, default_val):
- try:
- return self.cp.getfloat(section, option)
- except:
- return default_val
- # ----------------------------------------------------------------
- # End override of C++ virtual methods
- # ----------------------------------------------------------------
-
-
-_prefs_db = _prefs()
-
-# if GR_DONT_LOAD_PREFS is set, don't load them.
-# (make check uses this to avoid interactions.)
-if os.getenv("GR_DONT_LOAD_PREFS", None) is None:
- _prefs_db._read_files()
-
-
-_prefs_base.set_singleton(_prefs_db) # tell C++ what instance to use
-
-def prefs():
- """
- Return the global preference data base
- """
- return _prefs_db
diff --git a/gnuradio-runtime/python/gnuradio/gru/socket_stuff.py b/gnuradio-runtime/python/gnuradio/gru/socket_stuff.py
index 489b6ab255..b7c5ac2fe1 100644
--- a/gnuradio-runtime/python/gnuradio/gru/socket_stuff.py
+++ b/gnuradio-runtime/python/gnuradio/gru/socket_stuff.py
@@ -27,10 +27,10 @@ import sys
def tcp_connect_or_die(sock_addr):
"""
-
+
Args:
sock_addr: (host, port) to connect to (tuple)
-
+
Returns:
: socket or exits
"""
@@ -45,10 +45,10 @@ def tcp_connect_or_die(sock_addr):
def udp_connect_or_die(sock_addr):
"""
-
+
Args:
sock_addr: (host, port) to connect to (tuple)
-
+
Returns:
: socket or exits
"""
diff --git a/gnuradio-runtime/python/pmt/__init__.py b/gnuradio-runtime/python/pmt/__init__.py
index 00940e4cc1..1c7db73322 100644
--- a/gnuradio-runtime/python/pmt/__init__.py
+++ b/gnuradio-runtime/python/pmt/__init__.py
@@ -48,6 +48,9 @@ except ImportError:
__path__.append(os.path.join(dirname, "..", "..", "swig"))
from pmt_swig import *
+# due to changes in the PMT_NIL singleton for static builds, we force
+# this into Python here.
+PMT_NIL = get_PMT_NIL()
+
from pmt_to_python import pmt_to_python as to_python
from pmt_to_python import python_to_pmt as to_pmt
-
diff --git a/gnuradio-runtime/python/pmt/pmt_to_python.py b/gnuradio-runtime/python/pmt/pmt_to_python.py
index 8973b886e6..e08b7265de 100644
--- a/gnuradio-runtime/python/pmt/pmt_to_python.py
+++ b/gnuradio-runtime/python/pmt/pmt_to_python.py
@@ -21,6 +21,10 @@ try: import pmt_swig as pmt
except: import pmt
import numpy
+# SWIG isn't taking in the #define PMT_NIL;
+# getting the singleton locally.
+PMT_NIL = pmt.get_PMT_NIL()
+
#define missing
def pmt_to_tuple(p):
elems = list()
@@ -41,7 +45,7 @@ def pmt_to_vector(p):
return v
def pmt_from_vector(p):
- v = pmt.make_vector(len(p), pmt.PMT_NIL)
+ v = pmt.make_vector(len(p), PMT_NIL)
for i, elem in enumerate(p):
pmt.vector_set(v, i, python_to_pmt(elem))
return v
@@ -99,7 +103,7 @@ def uvector_to_numpy(uvector):
raise ValueError("unsupported uvector data type for conversion to numpy array %s"%(uvector))
type_mappings = ( #python type, check pmt type, to python, from python
- (None, pmt.is_null, lambda x: None, lambda x: pmt.PMT_NIL),
+ (None, pmt.is_null, lambda x: None, lambda x: PMT_NIL),
(bool, pmt.is_bool, pmt.to_bool, pmt.from_bool),
(str, pmt.is_symbol, pmt.symbol_to_string, pmt.string_to_symbol),
(unicode, lambda x: False, None, lambda x: pmt.string_to_symbol(x.encode('utf-8'))),
@@ -116,7 +120,7 @@ type_mappings = ( #python type, check pmt type, to python, from python
def pmt_to_python(p):
for python_type, pmt_check, to_python, from_python in type_mappings:
- if pmt_check(p):
+ if pmt_check(p):
try:
return to_python(p)
except:
@@ -129,4 +133,3 @@ def python_to_pmt(p):
if p == None: return from_python(p)
elif isinstance(p, python_type): return from_python(p)
raise ValueError("can't convert %s type to pmt (%s)"%(type(p),p))
-
diff --git a/gnuradio-runtime/python/pmt/qa_pmt_to_python.py b/gnuradio-runtime/python/pmt/qa_pmt_to_python.py
index 39cfc05dd6..e63ade1843 100755
--- a/gnuradio-runtime/python/pmt/qa_pmt_to_python.py
+++ b/gnuradio-runtime/python/pmt/qa_pmt_to_python.py
@@ -30,7 +30,7 @@ class test_pmt_to_python(unittest.TestCase):
b = pmt.from_double(123765)
self.assertEqual(pmt.to_python(b), 123765)
t = pmt.to_pmt(range(5))
-
+
def test_numpy_to_uvector_and_reverse(self):
import numpy as np
N = 100
diff --git a/gnuradio-runtime/swig/CMakeLists.txt b/gnuradio-runtime/swig/CMakeLists.txt
index f6f63b4384..06ccc751be 100644
--- a/gnuradio-runtime/swig/CMakeLists.txt
+++ b/gnuradio-runtime/swig/CMakeLists.txt
@@ -40,11 +40,11 @@ set(GR_SWIG_LIBRARIES
)
###############################################################
-# Build pmt swig
+# Build pmt swig
###############################################################
set(GR_SWIG_DOC_FILE ${CMAKE_CURRENT_BINARY_DIR}/pmt_swig_doc.i)
-set(GR_SWIG_DOC_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/../include/pmt
+set(GR_SWIG_DOC_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/../include/pmt
${CMAKE_CURRENT_BINARY_DIR}/../include/pmt)
list(APPEND GR_SWIG_TARGET_DEPS pmt_generated)
GR_SWIG_MAKE(pmt_swig pmt_swig.i)
@@ -58,7 +58,7 @@ GR_SWIG_INSTALL(
add_custom_target(pmt_swig DEPENDS ${SWIG_MODULE_pmt_swig_REAL_NAME})
###############################################################
-# Build gnuradio-runtime swig
+# Build gnuradio-runtime swig
###############################################################
# Only use if log4cpp is installed
diff --git a/gnuradio-runtime/swig/buffer.i b/gnuradio-runtime/swig/buffer.i
index 44bd4887a8..9a1ab21776 100644
--- a/gnuradio-runtime/swig/buffer.i
+++ b/gnuradio-runtime/swig/buffer.i
@@ -26,7 +26,7 @@ typedef boost::shared_ptr<gr::buffer> gr::buffer_sptr;
%rename(buffer) gr::make_buffer;
%ignore gr::buffer;
-gr::buffer_sptr
+gr::buffer_sptr
gr::make_buffer (int nitems, size_t sizeof_item, gr::block_sptr link);
class gr::buffer_reader;
diff --git a/gnuradio-runtime/swig/pmt_swig.i b/gnuradio-runtime/swig/pmt_swig.i
index 5ea612b5b8..e54b544977 100644
--- a/gnuradio-runtime/swig/pmt_swig.i
+++ b/gnuradio-runtime/swig/pmt_swig.i
@@ -83,9 +83,11 @@ namespace pmt{
extern const pmt_t PMT_T;
extern const pmt_t PMT_F;
- extern const pmt_t PMT_NIL;
extern const pmt_t PMT_EOF;
+ pmt_t get_PMT_NIL();
+ #define PMT_NIL get_PMT_NIL()
+
bool is_bool(pmt_t obj);
bool is_true(pmt_t obj);
bool is_false(pmt_t obj);
@@ -219,7 +221,7 @@ namespace pmt{
void c64vector_set(pmt_t v, size_t k, std::complex<double> x);
%apply size_t & INOUT { size_t &len };
- const void *uniform_vector_elements(pmt_t v, size_t &len);
+ const void *uniform_vector_elements(pmt_t v, size_t &len);
const std::vector<uint8_t> u8vector_elements(pmt_t v);
const std::vector<int8_t> s8vector_elements(pmt_t v);
diff --git a/gnuradio-runtime/swig/prefs.i b/gnuradio-runtime/swig/prefs.i
index f56c7910ee..ac5fab7adc 100644
--- a/gnuradio-runtime/swig/prefs.i
+++ b/gnuradio-runtime/swig/prefs.i
@@ -24,7 +24,6 @@ class gr::prefs
{
public:
static gr::prefs *singleton();
- static void set_singleton(gr::prefs *p);
virtual ~prefs();
@@ -60,4 +59,3 @@ public:
const std::string &option,
double val);
};
-
diff --git a/gr-analog/CMakeLists.txt b/gr-analog/CMakeLists.txt
index 44b0c739d2..e0be42a0a5 100644
--- a/gr-analog/CMakeLists.txt
+++ b/gr-analog/CMakeLists.txt
@@ -1,17 +1,17 @@
# Copyright 2012 Free Software Foundation, Inc.
-#
+#
# This file is part of GNU Radio
-#
+#
# GNU Radio is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
-#
+#
# GNU Radio is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-#
+#
# You should have received a copy of the GNU General Public License
# along with GNU Radio; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street,
diff --git a/gr-analog/doc/CMakeLists.txt b/gr-analog/doc/CMakeLists.txt
index 5a02547dbb..009c2d3dca 100644
--- a/gr-analog/doc/CMakeLists.txt
+++ b/gr-analog/doc/CMakeLists.txt
@@ -1,17 +1,17 @@
# Copyright 2012 Free Software Foundation, Inc.
-#
+#
# This file is part of GNU Radio
-#
+#
# GNU Radio is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
-#
+#
# GNU Radio is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-#
+#
# You should have received a copy of the GNU General Public License
# along with GNU Radio; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street,
diff --git a/gr-analog/doc/README.analog b/gr-analog/doc/README.analog
index b2b763cc30..9e242878bb 100644
--- a/gr-analog/doc/README.analog
+++ b/gr-analog/doc/README.analog
@@ -7,7 +7,7 @@ imported as:
See the Doxygen documentation for details about the blocks available
in this package. A quick listing of the details can be found in Python
-after importing by using:
+after importing by using:
help(analog)
diff --git a/gr-analog/grc/analog_block_tree.xml b/gr-analog/grc/analog_block_tree.xml
index ff64f03b70..9e7e4f6037 100644
--- a/gr-analog/grc/analog_block_tree.xml
+++ b/gr-analog/grc/analog_block_tree.xml
@@ -2,19 +2,19 @@
<!--
Copyright 2012 Free Software Foundation, Inc.
-
+
This file is part of GNU Radio
-
+
GNU Radio is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
-
+
GNU Radio is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with GNU Radio; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street,
diff --git a/gr-analog/include/gnuradio/analog/CMakeLists.txt b/gr-analog/include/gnuradio/analog/CMakeLists.txt
index bc2631c89a..01c0518f0b 100644
--- a/gr-analog/include/gnuradio/analog/CMakeLists.txt
+++ b/gr-analog/include/gnuradio/analog/CMakeLists.txt
@@ -47,7 +47,7 @@ macro(expand_h root)
string(REGEX REPLACE "X+" ${sig} name ${root})
list(APPEND expanded_files_h ${CMAKE_CURRENT_BINARY_DIR}/${name}.h)
endforeach(sig)
-
+
#create a command to generate the files
add_custom_command(
OUTPUT ${expanded_files_h}
@@ -107,7 +107,7 @@ install(FILES
quadrature_demod_cf.h
rail_ff.h
sig_source_waveform.h
- simple_squelch_cc.h
+ simple_squelch_cc.h
DESTINATION ${GR_INCLUDE_DIR}/gnuradio/analog
COMPONENT "analog_devel"
)
diff --git a/gr-analog/include/gnuradio/analog/agc.h b/gr-analog/include/gnuradio/analog/agc.h
index ca6125082f..44896250d4 100644
--- a/gr-analog/include/gnuradio/analog/agc.h
+++ b/gr-analog/include/gnuradio/analog/agc.h
@@ -97,7 +97,7 @@ namespace gr {
*
* Power is approximated by absolute value
*/
- class ANALOG_API agc_ff
+ class ANALOG_API agc_ff
{
public:
/*!
diff --git a/gr-analog/include/gnuradio/analog/agc2.h b/gr-analog/include/gnuradio/analog/agc2.h
index 225adc4410..f7a43ba9f6 100644
--- a/gr-analog/include/gnuradio/analog/agc2.h
+++ b/gr-analog/include/gnuradio/analog/agc2.h
@@ -172,7 +172,7 @@ namespace gr {
float _gain; // current gain
float _max_gain; // maximum gain
};
-
+
} /* namespace kernel */
} /* namespace analog */
} /* namespace gr */
diff --git a/gr-analog/include/gnuradio/analog/agc2_cc.h b/gr-analog/include/gnuradio/analog/agc2_cc.h
index 8a24c79288..d280fc0836 100644
--- a/gr-analog/include/gnuradio/analog/agc2_cc.h
+++ b/gr-analog/include/gnuradio/analog/agc2_cc.h
@@ -43,7 +43,7 @@ namespace gr {
public:
// gr::analog::agc2_cc::sptr
typedef boost::shared_ptr<agc2_cc> sptr;
-
+
/*!
* Build a complex value AGC loop block with attack and decay rates.
*
@@ -60,7 +60,7 @@ namespace gr {
virtual float reference() const = 0;
virtual float gain() const = 0;
virtual float max_gain() const = 0;
-
+
virtual void set_attack_rate(float rate) = 0;
virtual void set_decay_rate(float rate) = 0;
virtual void set_reference(float reference) = 0;
diff --git a/gr-analog/include/gnuradio/analog/agc2_ff.h b/gr-analog/include/gnuradio/analog/agc2_ff.h
index 646882371e..2a11fe7b5c 100644
--- a/gr-analog/include/gnuradio/analog/agc2_ff.h
+++ b/gr-analog/include/gnuradio/analog/agc2_ff.h
@@ -43,7 +43,7 @@ namespace gr {
public:
// gr::analog::agc2_ff::sptr
typedef boost::shared_ptr<agc2_ff> sptr;
-
+
/*!
* Build a floating point AGC loop block with attack and decay rates.
*
@@ -60,7 +60,7 @@ namespace gr {
virtual float reference() const = 0;
virtual float gain() const = 0;
virtual float max_gain() const = 0;
-
+
virtual void set_attack_rate(float rate) = 0;
virtual void set_decay_rate(float rate) = 0;
virtual void set_reference(float reference) = 0;
diff --git a/gr-analog/include/gnuradio/analog/agc3_cc.h b/gr-analog/include/gnuradio/analog/agc3_cc.h
index eb542eae08..197a22ca04 100644
--- a/gr-analog/include/gnuradio/analog/agc3_cc.h
+++ b/gr-analog/include/gnuradio/analog/agc3_cc.h
@@ -38,7 +38,7 @@ namespace gr {
* Unlike the AGC2 loop, this uses an initial linear calculation
* at the beginning for very fast initial acquisition. Moves to
* IIR model for tracking purposes.
- *
+ *
* For Power the absolute value of the complex number is used.
*/
class ANALOG_API agc3_cc : virtual public sync_block
@@ -46,7 +46,7 @@ namespace gr {
public:
// gr::analog::agc3_cc::sptr
typedef boost::shared_ptr<agc3_cc> sptr;
-
+
/*!
* Build a complex value AGC loop block with attack and decay rates.
*
@@ -54,7 +54,7 @@ namespace gr {
* \param decay_rate the update rate of the loop when in decay mode.
* \param reference reference value to adjust signal power to.
* \param gain initial gain value.
- * \param iir_update_decim stride by this number of samples before
+ * \param iir_update_decim stride by this number of samples before
* computing an IIR gain update
*/
static sptr make(float attack_rate = 1e-1, float decay_rate = 1e-2,
@@ -65,7 +65,7 @@ namespace gr {
virtual float reference() const = 0;
virtual float gain() const = 0;
virtual float max_gain() const = 0;
-
+
virtual void set_attack_rate(float rate) = 0;
virtual void set_decay_rate(float rate) = 0;
virtual void set_reference(float reference) = 0;
diff --git a/gr-analog/include/gnuradio/analog/agc_cc.h b/gr-analog/include/gnuradio/analog/agc_cc.h
index 9a489f11da..3048e63fbf 100644
--- a/gr-analog/include/gnuradio/analog/agc_cc.h
+++ b/gr-analog/include/gnuradio/analog/agc_cc.h
@@ -42,7 +42,7 @@ namespace gr {
public:
// gr::analog::agc_cc::sptr
typedef boost::shared_ptr<agc_cc> sptr;
-
+
/*!
* Build a complex value AGC loop block.
*
@@ -57,7 +57,7 @@ namespace gr {
virtual float reference() const = 0;
virtual float gain() const = 0;
virtual float max_gain() const = 0;
-
+
virtual void set_rate(float rate) = 0;
virtual void set_reference(float reference) = 0;
virtual void set_gain(float gain) = 0;
diff --git a/gr-analog/include/gnuradio/analog/agc_ff.h b/gr-analog/include/gnuradio/analog/agc_ff.h
index 19e2fcbee2..5f3922d253 100644
--- a/gr-analog/include/gnuradio/analog/agc_ff.h
+++ b/gr-analog/include/gnuradio/analog/agc_ff.h
@@ -42,7 +42,7 @@ namespace gr {
public:
// gr::analog::agc_ff::sptr
typedef boost::shared_ptr<agc_ff> sptr;
-
+
/*!
* Build a floating point AGC loop block.
*
@@ -52,12 +52,12 @@ namespace gr {
*/
static sptr make(float rate = 1e-4, float reference = 1.0,
float gain = 1.0);
-
+
virtual float rate() const = 0;
virtual float reference() const = 0;
virtual float gain() const = 0;
virtual float max_gain() const = 0;
-
+
virtual void set_rate(float rate) = 0;
virtual void set_reference(float reference) = 0;
virtual void set_gain(float gain) = 0;
diff --git a/gr-analog/include/gnuradio/analog/cpfsk_bc.h b/gr-analog/include/gnuradio/analog/cpfsk_bc.h
index 580c387d45..0d889d3e20 100644
--- a/gr-analog/include/gnuradio/analog/cpfsk_bc.h
+++ b/gr-analog/include/gnuradio/analog/cpfsk_bc.h
@@ -26,7 +26,7 @@
namespace gr {
namespace analog {
-
+
/*!
* \brief Perform continuous phase 2-level frequency shift keying modulation
* on an input stream of unpacked bits.
@@ -37,7 +37,7 @@ namespace gr {
public:
// gr::analog::cpfsk_bc::sptr
typedef boost::shared_ptr<cpfsk_bc> sptr;
-
+
/*!
* \brief Make a CPFSK block.
*
diff --git a/gr-analog/include/gnuradio/analog/cpm.h b/gr-analog/include/gnuradio/analog/cpm.h
index 040f20514a..e3c8341478 100644
--- a/gr-analog/include/gnuradio/analog/cpm.h
+++ b/gr-analog/include/gnuradio/analog/cpm.h
@@ -42,7 +42,7 @@ namespace gr {
GAUSSIAN,
GENERIC = 999
};
-
+
/*! \brief Return the taps for an interpolating FIR filter
* (gr::filter::interp_fir_filter_fff).
*
diff --git a/gr-analog/include/gnuradio/analog/ctcss_squelch_ff.h b/gr-analog/include/gnuradio/analog/ctcss_squelch_ff.h
index f9ecc88a03..6d1b5291d0 100644
--- a/gr-analog/include/gnuradio/analog/ctcss_squelch_ff.h
+++ b/gr-analog/include/gnuradio/analog/ctcss_squelch_ff.h
@@ -44,7 +44,7 @@ namespace gr {
public:
// gr::analog::ctcss_squelch_ff::sptr
typedef boost::shared_ptr<ctcss_squelch_ff> sptr;
-
+
/*!
* \brief Make CTCSS tone squelch block.
*
diff --git a/gr-analog/include/gnuradio/analog/dpll_bb.h b/gr-analog/include/gnuradio/analog/dpll_bb.h
index 4f9a6c0dd9..a23816d97f 100644
--- a/gr-analog/include/gnuradio/analog/dpll_bb.h
+++ b/gr-analog/include/gnuradio/analog/dpll_bb.h
@@ -28,7 +28,7 @@
namespace gr {
namespace analog {
-
+
/*!
* \brief Detect the peak of a signal
* \ingroup peak_detectors_blk
@@ -47,7 +47,7 @@ namespace gr {
virtual void set_gain(float gain) = 0;
virtual void set_decision_threshold(float thresh) = 0;
-
+
virtual float gain() const = 0;
virtual float freq() const = 0;
virtual float phase() const = 0;
diff --git a/gr-analog/include/gnuradio/analog/feedforward_agc_cc.h b/gr-analog/include/gnuradio/analog/feedforward_agc_cc.h
index 5d4abfeedb..647cdf675f 100644
--- a/gr-analog/include/gnuradio/analog/feedforward_agc_cc.h
+++ b/gr-analog/include/gnuradio/analog/feedforward_agc_cc.h
@@ -48,7 +48,7 @@ namespace gr {
*/
static sptr make(int nsamples, float reference);
};
-
+
} /* namespace analog */
} /* namespace gr */
diff --git a/gr-analog/include/gnuradio/analog/fmdet_cf.h b/gr-analog/include/gnuradio/analog/fmdet_cf.h
index 571795bbd8..72437a875d 100644
--- a/gr-analog/include/gnuradio/analog/fmdet_cf.h
+++ b/gr-analog/include/gnuradio/analog/fmdet_cf.h
@@ -31,7 +31,7 @@ namespace gr {
/*!
* \brief Implements an IQ slope detector
- * \ingroup modulators_blk
+ * \ingroup modulators_blk
*
* \details
* input: stream of complex; output: stream of floats
diff --git a/gr-analog/include/gnuradio/analog/frequency_modulator_fc.h b/gr-analog/include/gnuradio/analog/frequency_modulator_fc.h
index d6e2b277fe..c573efe5cc 100644
--- a/gr-analog/include/gnuradio/analog/frequency_modulator_fc.h
+++ b/gr-analog/include/gnuradio/analog/frequency_modulator_fc.h
@@ -28,7 +28,7 @@
namespace gr {
namespace analog {
-
+
/*!
* \brief Frequency modulator block
* \ingroup modulators_blk
diff --git a/gr-analog/include/gnuradio/analog/noise_source_X.h.t b/gr-analog/include/gnuradio/analog/noise_source_X.h.t
index 6e3ff3e909..31e742a4ed 100644
--- a/gr-analog/include/gnuradio/analog/noise_source_X.h.t
+++ b/gr-analog/include/gnuradio/analog/noise_source_X.h.t
@@ -31,7 +31,7 @@
namespace gr {
namespace analog {
-
+
/*!
* \brief Random number source
* \ingroup waveform_generators_blk
@@ -40,7 +40,7 @@ namespace gr {
* Generate random values from different distributions.
* Currently, only Gaussian and uniform are enabled.
*/
- class ANALOG_API @BASE_NAME@ : virtual public sync_block
+ class ANALOG_API @BASE_NAME@ : virtual public sync_block
{
public:
// gr::analog::@BASE_NAME@::sptr
diff --git a/gr-analog/include/gnuradio/analog/noise_type.h b/gr-analog/include/gnuradio/analog/noise_type.h
index c3a2146b7e..f1efa4573b 100644
--- a/gr-analog/include/gnuradio/analog/noise_type.h
+++ b/gr-analog/include/gnuradio/analog/noise_type.h
@@ -25,7 +25,7 @@
namespace gr {
namespace analog {
-
+
typedef enum {
GR_UNIFORM = 200, GR_GAUSSIAN, GR_LAPLACIAN, GR_IMPULSE
} noise_type_t;
diff --git a/gr-analog/include/gnuradio/analog/phase_modulator_fc.h b/gr-analog/include/gnuradio/analog/phase_modulator_fc.h
index 56c39ce3ea..e9e29fbf9a 100644
--- a/gr-analog/include/gnuradio/analog/phase_modulator_fc.h
+++ b/gr-analog/include/gnuradio/analog/phase_modulator_fc.h
@@ -57,7 +57,7 @@ namespace gr {
virtual void set_sensitivity(double s) = 0;
virtual void set_phase(double p) = 0;
};
-
+
} /* namespace analog */
} /* namespace gr */
diff --git a/gr-analog/include/gnuradio/analog/pll_carriertracking_cc.h b/gr-analog/include/gnuradio/analog/pll_carriertracking_cc.h
index 35da29c8af..ce4170fff1 100644
--- a/gr-analog/include/gnuradio/analog/pll_carriertracking_cc.h
+++ b/gr-analog/include/gnuradio/analog/pll_carriertracking_cc.h
@@ -29,7 +29,7 @@
namespace gr {
namespace analog {
-
+
/*!
* \brief Implements a PLL which locks to the input frequency and outputs the
* input signal mixed with that carrier.
diff --git a/gr-analog/include/gnuradio/analog/pll_freqdet_cf.h b/gr-analog/include/gnuradio/analog/pll_freqdet_cf.h
index 1ea7eb97ec..88eb46edc5 100644
--- a/gr-analog/include/gnuradio/analog/pll_freqdet_cf.h
+++ b/gr-analog/include/gnuradio/analog/pll_freqdet_cf.h
@@ -29,7 +29,7 @@
namespace gr {
namespace analog {
-
+
/*!
* \brief Implements a PLL which locks to the input frequency and outputs
* an estimate of that frequency. Useful for FM Demod.
@@ -53,7 +53,7 @@ namespace gr {
public:
// gr::analog::pll_freqdet_cf::sptr
typedef boost::shared_ptr<pll_freqdet_cf> sptr;
-
+
/* \brief Make PLL block that outputs the tracked signal's frequency.
*
* \param loop_bw: control loop's bandwidth parameter.
diff --git a/gr-analog/include/gnuradio/analog/pll_refout_cc.h b/gr-analog/include/gnuradio/analog/pll_refout_cc.h
index 29a2f43198..9f9d168111 100644
--- a/gr-analog/include/gnuradio/analog/pll_refout_cc.h
+++ b/gr-analog/include/gnuradio/analog/pll_refout_cc.h
@@ -29,7 +29,7 @@
namespace gr {
namespace analog {
-
+
/*!
* \brief Implements a PLL which locks to the input frequency and outputs a carrier
* \ingroup synchronizers_blk
@@ -47,14 +47,14 @@ namespace gr {
* and should be set around pi/200 -- 2pi/100. \sa
* pll_freqdet_cf, pll_carriertracking_cc
*/
- class ANALOG_API pll_refout_cc
+ class ANALOG_API pll_refout_cc
: virtual public sync_block,
virtual public blocks::control_loop
{
public:
// gr::analog::pll_refout_cc::sptr
typedef boost::shared_ptr<pll_refout_cc> sptr;
-
+
/* \brief Make PLL block that outputs the tracked carrier signal.
*
* \param loop_bw: control loop's bandwidth parameter.
diff --git a/gr-analog/include/gnuradio/analog/probe_avg_mag_sqrd_c.h b/gr-analog/include/gnuradio/analog/probe_avg_mag_sqrd_c.h
index fe67f3ad59..781d72f742 100644
--- a/gr-analog/include/gnuradio/analog/probe_avg_mag_sqrd_c.h
+++ b/gr-analog/include/gnuradio/analog/probe_avg_mag_sqrd_c.h
@@ -27,7 +27,7 @@
namespace gr {
namespace analog {
-
+
/*!
* \brief compute avg magnitude squared.
* \ingroup measurement_tools_blk
diff --git a/gr-analog/include/gnuradio/analog/probe_avg_mag_sqrd_cf.h b/gr-analog/include/gnuradio/analog/probe_avg_mag_sqrd_cf.h
index d491321e68..03f465b2c5 100644
--- a/gr-analog/include/gnuradio/analog/probe_avg_mag_sqrd_cf.h
+++ b/gr-analog/include/gnuradio/analog/probe_avg_mag_sqrd_cf.h
@@ -28,7 +28,7 @@
namespace gr {
namespace analog {
-
+
/*!
* \brief compute avg magnitude squared.
* \ingroup measurement_tools_blk
diff --git a/gr-analog/include/gnuradio/analog/probe_avg_mag_sqrd_f.h b/gr-analog/include/gnuradio/analog/probe_avg_mag_sqrd_f.h
index 960480b962..b9424dbd96 100644
--- a/gr-analog/include/gnuradio/analog/probe_avg_mag_sqrd_f.h
+++ b/gr-analog/include/gnuradio/analog/probe_avg_mag_sqrd_f.h
@@ -28,7 +28,7 @@
namespace gr {
namespace analog {
-
+
/*!
* \brief compute avg magnitude squared.
* \ingroup measurement_tools_blk
diff --git a/gr-analog/include/gnuradio/analog/pwr_squelch_cc.h b/gr-analog/include/gnuradio/analog/pwr_squelch_cc.h
index 766f76d385..6913d62934 100644
--- a/gr-analog/include/gnuradio/analog/pwr_squelch_cc.h
+++ b/gr-analog/include/gnuradio/analog/pwr_squelch_cc.h
@@ -29,7 +29,7 @@
namespace gr {
namespace analog {
-
+
/*!
* \brief gate or zero output when input power below threshold
* \ingroup level_controllers_blk
@@ -44,7 +44,7 @@ namespace gr {
public:
// gr::analog::pwr_squelch_cc::sptr
typedef boost::shared_ptr<pwr_squelch_cc> sptr;
-
+
/*!
* \brief Make power-based squelch block.
*
diff --git a/gr-analog/include/gnuradio/analog/pwr_squelch_ff.h b/gr-analog/include/gnuradio/analog/pwr_squelch_ff.h
index abff53d5e0..46046eae07 100644
--- a/gr-analog/include/gnuradio/analog/pwr_squelch_ff.h
+++ b/gr-analog/include/gnuradio/analog/pwr_squelch_ff.h
@@ -29,7 +29,7 @@
namespace gr {
namespace analog {
-
+
/*!
* \brief gate or zero output when input power below threshold
* \ingroup level_controllers_blk
@@ -44,7 +44,7 @@ namespace gr {
public:
// gr::analog::pwr_squelch_ff::sptr
typedef boost::shared_ptr<pwr_squelch_ff> sptr;
-
+
/*!
* \brief Make power-based squelch block.
*
diff --git a/gr-analog/include/gnuradio/analog/quadrature_demod_cf.h b/gr-analog/include/gnuradio/analog/quadrature_demod_cf.h
index 888cb4a20b..1e13841dc7 100644
--- a/gr-analog/include/gnuradio/analog/quadrature_demod_cf.h
+++ b/gr-analog/include/gnuradio/analog/quadrature_demod_cf.h
@@ -28,7 +28,7 @@
namespace gr {
namespace analog {
-
+
/*!
* \brief quadrature demodulator: complex in, float out
* \ingroup modulators_blk
diff --git a/gr-analog/include/gnuradio/analog/rail_ff.h b/gr-analog/include/gnuradio/analog/rail_ff.h
index 29856bbcbc..c28c1746f6 100644
--- a/gr-analog/include/gnuradio/analog/rail_ff.h
+++ b/gr-analog/include/gnuradio/analog/rail_ff.h
@@ -28,7 +28,7 @@
namespace gr {
namespace analog {
-
+
/*!
* \brief clips input values to min, max
* \ingroup level_controllers_blk
diff --git a/gr-analog/include/gnuradio/analog/sig_source_X.h.t b/gr-analog/include/gnuradio/analog/sig_source_X.h.t
index 81c42926cf..cf6cdc212d 100644
--- a/gr-analog/include/gnuradio/analog/sig_source_X.h.t
+++ b/gr-analog/include/gnuradio/analog/sig_source_X.h.t
@@ -41,7 +41,7 @@ namespace gr {
public:
// gr::analog::@BASE_NAME@::sptr
typedef boost::shared_ptr<@BASE_NAME@> sptr;
-
+
/*!
* Build a signal source block.
*
diff --git a/gr-analog/include/gnuradio/analog/simple_squelch_cc.h b/gr-analog/include/gnuradio/analog/simple_squelch_cc.h
index de6252b288..53d2835ff3 100644
--- a/gr-analog/include/gnuradio/analog/simple_squelch_cc.h
+++ b/gr-analog/include/gnuradio/analog/simple_squelch_cc.h
@@ -28,7 +28,7 @@
namespace gr {
namespace analog {
-
+
/*!
* \brief simple squelch block based on average signal power and threshold in dB.
* \ingroup level_controllers_blk
diff --git a/gr-analog/lib/CMakeLists.txt b/gr-analog/lib/CMakeLists.txt
index 473003a3bf..34a852fdb3 100644
--- a/gr-analog/lib/CMakeLists.txt
+++ b/gr-analog/lib/CMakeLists.txt
@@ -71,7 +71,7 @@ macro(expand_cc root)
list(APPEND expanded_files_cc ${CMAKE_CURRENT_BINARY_DIR}/${name}.cc)
list(APPEND expanded_files_h ${CMAKE_CURRENT_BINARY_DIR}/${name}.h)
endforeach(sig)
-
+
#create a command to generate the source files
add_custom_command(
OUTPUT ${expanded_files_cc}
@@ -89,15 +89,15 @@ macro(expand_cc root)
${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
${root} ${root}.h.t ${ARGN}
)
-
+
#make source files depends on headers to force generation
set_source_files_properties(${expanded_files_cc}
PROPERTIES OBJECT_DEPENDS "${expanded_files_h}"
)
-
+
#install rules for the generated cc files
- list(APPEND generated_sources ${expanded_files_cc})
- list(APPEND generated_headers ${expanded_files_h})
+ list(APPEND generated_sources ${expanded_files_cc})
+ list(APPEND generated_headers ${expanded_files_h})
endmacro(expand_cc)
@@ -169,6 +169,22 @@ target_link_libraries(gnuradio-analog ${analog_libs})
GR_LIBRARY_FOO(gnuradio-analog RUNTIME_COMPONENT "analog_runtime" DEVEL_COMPONENT "analog_devel")
add_dependencies(gnuradio-analog analog_generated_includes analog_generated_swigs gnuradio-filter)
+if(ENABLE_STATIC_LIBS)
+ add_library(gnuradio-analog_static STATIC ${analog_sources})
+
+ add_dependencies(gnuradio-analog_static
+ analog_generated_includes
+ gnuradio-filter_static)
+
+ if(NOT WIN32)
+ set_target_properties(gnuradio-analog_static
+ PROPERTIES OUTPUT_NAME gnuradio-analog)
+ endif(NOT WIN32)
+
+ install(TARGETS gnuradio-analog_static
+ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT "analog_devel" # .lib file
+ )
+endif(ENABLE_STATIC_LIBS)
########################################################################
# QA C++ Code for gr-filter
@@ -189,7 +205,7 @@ if(ENABLE_TESTING)
target_link_libraries(
test-gr-analog
gnuradio-runtime
- gnuradio-analog
+ gnuradio-analog
${Boost_LIBRARIES}
${CPPUNIT_LIBRARIES}
)
diff --git a/gr-analog/lib/agc3_cc_impl.cc b/gr-analog/lib/agc3_cc_impl.cc
index 86da630d8f..fddefd6710 100644
--- a/gr-analog/lib/agc3_cc_impl.cc
+++ b/gr-analog/lib/agc3_cc_impl.cc
@@ -72,12 +72,12 @@ namespace gr {
gr_complex *out = (gr_complex*)output_items[0];
#ifdef __GNUC__
- // Compute a linear average on reset (no expected)
+ // Compute a linear average on reset (no expected)
if(__builtin_expect(d_reset, false)) {
float mags[noutput_items] __attribute__ ((aligned (16)));
volk_32fc_magnitude_32f(mags, &in[0], noutput_items);
-#else
- // Compute a linear average on reset (no expected)
+#else
+ // Compute a linear average on reset (no expected)
if(!d_reset) {
std::vector<float> mags(noutput_items);
volk_32fc_magnitude_32f(&mags[0], &in[0], noutput_items);
@@ -117,7 +117,7 @@ namespace gr {
mag_sq[i] = in[idx].real()*in[idx].real() + in[idx].imag()*in[idx].imag();
}
- // compute inverse square roots
+ // compute inverse square roots
volk_32f_invsqrt_32f(&inv_mag[0], &mag_sq[0], noutput_items/d_iir_update_decim);
// apply updates
diff --git a/gr-analog/lib/cpfsk_bc_impl.cc b/gr-analog/lib/cpfsk_bc_impl.cc
index d529936608..3c1674aaa4 100644
--- a/gr-analog/lib/cpfsk_bc_impl.cc
+++ b/gr-analog/lib/cpfsk_bc_impl.cc
@@ -28,7 +28,7 @@
namespace gr {
namespace analog {
-
+
#define M_TWOPI (2*M_PI)
cpfsk_bc::sptr
diff --git a/gr-analog/lib/cpfsk_bc_impl.h b/gr-analog/lib/cpfsk_bc_impl.h
index c3ae0dc864..7b8ac2adf3 100644
--- a/gr-analog/lib/cpfsk_bc_impl.h
+++ b/gr-analog/lib/cpfsk_bc_impl.h
@@ -25,7 +25,7 @@
namespace gr {
namespace analog {
-
+
class cpfsk_bc_impl : public cpfsk_bc
{
private:
diff --git a/gr-analog/lib/ctcss_squelch_ff_impl.cc b/gr-analog/lib/ctcss_squelch_ff_impl.cc
index 5532c70d6f..7714da3fe4 100644
--- a/gr-analog/lib/ctcss_squelch_ff_impl.cc
+++ b/gr-analog/lib/ctcss_squelch_ff_impl.cc
@@ -56,7 +56,7 @@ namespace gr {
}
ctcss_squelch_ff_impl::ctcss_squelch_ff_impl(int rate, float freq, float level,
- int len, int ramp, bool gate)
+ int len, int ramp, bool gate)
: block("ctcss_squelch_ff",
io_signature::make(1, 1, sizeof(float)),
io_signature::make(1, 1, sizeof(float))),
diff --git a/gr-analog/lib/ctcss_squelch_ff_impl.h b/gr-analog/lib/ctcss_squelch_ff_impl.h
index 94ba31569f..c0db6030d3 100644
--- a/gr-analog/lib/ctcss_squelch_ff_impl.h
+++ b/gr-analog/lib/ctcss_squelch_ff_impl.h
@@ -68,7 +68,7 @@ namespace gr {
gr_vector_int &ninput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items)
- {
+ {
return squelch_base_ff_impl::general_work(noutput_items,
ninput_items,
input_items,
diff --git a/gr-analog/lib/dpll_bb_impl.h b/gr-analog/lib/dpll_bb_impl.h
index 4caa498d70..365d626b13 100644
--- a/gr-analog/lib/dpll_bb_impl.h
+++ b/gr-analog/lib/dpll_bb_impl.h
@@ -27,7 +27,7 @@
namespace gr {
namespace analog {
-
+
class dpll_bb_impl : public dpll_bb
{
private:
@@ -41,7 +41,7 @@ namespace gr {
void set_gain(float gain) { d_gain = gain; }
void set_decision_threshold(float thresh) { d_decision_threshold = thresh; }
-
+
float gain() const { return d_gain; }
float freq() const { return d_pulse_frequency; }
float phase() const { return d_pulse_phase; }
diff --git a/gr-analog/lib/fastnoise_source_X_impl.cc.t b/gr-analog/lib/fastnoise_source_X_impl.cc.t
index 1ec108ba0d..c25230dc6a 100644
--- a/gr-analog/lib/fastnoise_source_X_impl.cc.t
+++ b/gr-analog/lib/fastnoise_source_X_impl.cc.t
@@ -32,7 +32,7 @@
namespace gr {
namespace analog {
-
+
@BASE_NAME@::sptr
@BASE_NAME@::make(noise_type_t type, float ampl, long seed, long samples)
{
@@ -63,9 +63,9 @@ namespace gr {
d_type = type;
generate();
}
-
+
void
- @IMPL_NAME@::set_amplitude(float ampl)
+ @IMPL_NAME@::set_amplitude(float ampl)
{
gr::thread::scoped_lock l(d_setlock);
d_ampl = ampl;
@@ -154,7 +154,7 @@ namespace gr {
@TYPE@ @IMPL_NAME@::sample_unbiased()
{
-#if @IS_COMPLEX@
+#if @IS_COMPLEX@
gr_complex s(sample());
return gr_complex(FASTNOISE_RANDOM_SIGN * s.real(),
FASTNOISE_RANDOM_SIGN * s.imag());
diff --git a/gr-analog/lib/feedforward_agc_cc_impl.cc b/gr-analog/lib/feedforward_agc_cc_impl.cc
index 94894d9bf1..9870c7c3c0 100644
--- a/gr-analog/lib/feedforward_agc_cc_impl.cc
+++ b/gr-analog/lib/feedforward_agc_cc_impl.cc
@@ -46,7 +46,7 @@ namespace gr {
{
if(nsamples < 1)
throw std::invalid_argument("feedforward_agc_cc_impl: nsamples must be >= 1");
-
+
set_history(nsamples);
}
diff --git a/gr-analog/lib/frequency_modulator_fc_impl.h b/gr-analog/lib/frequency_modulator_fc_impl.h
index cdd3562e09..d2c57b3e4c 100644
--- a/gr-analog/lib/frequency_modulator_fc_impl.h
+++ b/gr-analog/lib/frequency_modulator_fc_impl.h
@@ -27,7 +27,7 @@
namespace gr {
namespace analog {
-
+
class frequency_modulator_fc_impl : public frequency_modulator_fc
{
private:
@@ -37,7 +37,7 @@ namespace gr {
public:
frequency_modulator_fc_impl(double sensitivity);
~frequency_modulator_fc_impl();
-
+
void set_sensitivity(float sens) { d_sensitivity = sens; }
float sensitivity() const { return d_sensitivity; }
diff --git a/gr-analog/lib/noise_source_X_impl.cc.t b/gr-analog/lib/noise_source_X_impl.cc.t
index 5d09647848..960666f14d 100644
--- a/gr-analog/lib/noise_source_X_impl.cc.t
+++ b/gr-analog/lib/noise_source_X_impl.cc.t
@@ -32,7 +32,7 @@
namespace gr {
namespace analog {
-
+
@BASE_NAME@::sptr
@BASE_NAME@::make(noise_type_t type, float ampl, long seed)
{
@@ -49,7 +49,7 @@ namespace gr {
d_rng(seed)
{
}
-
+
@IMPL_NAME@::~@IMPL_NAME@()
{
}
diff --git a/gr-analog/lib/pll_carriertracking_cc_impl.h b/gr-analog/lib/pll_carriertracking_cc_impl.h
index 49259f996e..d379fa2ca9 100644
--- a/gr-analog/lib/pll_carriertracking_cc_impl.h
+++ b/gr-analog/lib/pll_carriertracking_cc_impl.h
@@ -27,7 +27,7 @@
namespace gr {
namespace analog {
-
+
class pll_carriertracking_cc_impl : public pll_carriertracking_cc
{
private:
diff --git a/gr-analog/lib/pll_freqdet_cf_impl.h b/gr-analog/lib/pll_freqdet_cf_impl.h
index 646b0609c0..668a2b18bb 100644
--- a/gr-analog/lib/pll_freqdet_cf_impl.h
+++ b/gr-analog/lib/pll_freqdet_cf_impl.h
@@ -27,7 +27,7 @@
namespace gr {
namespace analog {
-
+
class pll_freqdet_cf_impl : public pll_freqdet_cf
{
private:
diff --git a/gr-analog/lib/pll_refout_cc_impl.cc b/gr-analog/lib/pll_refout_cc_impl.cc
index 157961318a..4822263a9c 100644
--- a/gr-analog/lib/pll_refout_cc_impl.cc
+++ b/gr-analog/lib/pll_refout_cc_impl.cc
@@ -43,7 +43,7 @@ namespace gr {
return gnuradio::get_initial_sptr
(new pll_refout_cc_impl(loop_bw, max_freq, min_freq));
}
-
+
pll_refout_cc_impl::pll_refout_cc_impl(float loop_bw, float max_freq, float min_freq)
: sync_block("pll_refout_cc",
io_signature::make(1, 1, sizeof(gr_complex)),
diff --git a/gr-analog/lib/pll_refout_cc_impl.h b/gr-analog/lib/pll_refout_cc_impl.h
index 1a7e3d5066..005cb003ed 100644
--- a/gr-analog/lib/pll_refout_cc_impl.h
+++ b/gr-analog/lib/pll_refout_cc_impl.h
@@ -27,7 +27,7 @@
namespace gr {
namespace analog {
-
+
class pll_refout_cc_impl : public pll_refout_cc
{
private:
diff --git a/gr-analog/lib/pwr_squelch_cc_impl.cc b/gr-analog/lib/pwr_squelch_cc_impl.cc
index 6c832bc392..1a414ed464 100644
--- a/gr-analog/lib/pwr_squelch_cc_impl.cc
+++ b/gr-analog/lib/pwr_squelch_cc_impl.cc
@@ -38,7 +38,7 @@ namespace gr {
}
pwr_squelch_cc_impl::pwr_squelch_cc_impl(double threshold, double alpha,
- int ramp, bool gate)
+ int ramp, bool gate)
: block("pwr_squelch_cc",
io_signature::make(1, 1, sizeof(gr_complex)),
io_signature::make(1, 1, sizeof(gr_complex))),
diff --git a/gr-analog/lib/pwr_squelch_cc_impl.h b/gr-analog/lib/pwr_squelch_cc_impl.h
index 1fd2bc8a71..eea881a733 100644
--- a/gr-analog/lib/pwr_squelch_cc_impl.h
+++ b/gr-analog/lib/pwr_squelch_cc_impl.h
@@ -30,7 +30,7 @@
namespace gr {
namespace analog {
-
+
class ANALOG_API pwr_squelch_cc_impl :
public pwr_squelch_cc, squelch_base_cc_impl
{
@@ -64,7 +64,7 @@ namespace gr {
gr_vector_int &ninput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items)
- {
+ {
return squelch_base_cc_impl::general_work(noutput_items,
ninput_items,
input_items,
diff --git a/gr-analog/lib/pwr_squelch_ff_impl.h b/gr-analog/lib/pwr_squelch_ff_impl.h
index 022f97c16c..26099d5d31 100644
--- a/gr-analog/lib/pwr_squelch_ff_impl.h
+++ b/gr-analog/lib/pwr_squelch_ff_impl.h
@@ -30,7 +30,7 @@
namespace gr {
namespace analog {
-
+
class ANALOG_API pwr_squelch_ff_impl :
public pwr_squelch_ff, squelch_base_ff_impl
{
@@ -64,7 +64,7 @@ namespace gr {
gr_vector_int &ninput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items)
- {
+ {
return squelch_base_ff_impl::general_work(noutput_items,
ninput_items,
input_items,
diff --git a/gr-analog/lib/quadrature_demod_cf_impl.cc b/gr-analog/lib/quadrature_demod_cf_impl.cc
index 059cc89627..b038d491bc 100644
--- a/gr-analog/lib/quadrature_demod_cf_impl.cc
+++ b/gr-analog/lib/quadrature_demod_cf_impl.cc
@@ -31,7 +31,7 @@
namespace gr {
namespace analog {
-
+
quadrature_demod_cf::sptr
quadrature_demod_cf::make(float gain)
{
diff --git a/gr-analog/lib/quadrature_demod_cf_impl.h b/gr-analog/lib/quadrature_demod_cf_impl.h
index 2b505c3c55..7a4a8eaf14 100644
--- a/gr-analog/lib/quadrature_demod_cf_impl.h
+++ b/gr-analog/lib/quadrature_demod_cf_impl.h
@@ -27,7 +27,7 @@
namespace gr {
namespace analog {
-
+
class quadrature_demod_cf_impl : public quadrature_demod_cf
{
private:
diff --git a/gr-analog/lib/rail_ff_impl.cc b/gr-analog/lib/rail_ff_impl.cc
index a0e4f7cccd..525cf0c76e 100644
--- a/gr-analog/lib/rail_ff_impl.cc
+++ b/gr-analog/lib/rail_ff_impl.cc
@@ -30,7 +30,7 @@
namespace gr {
namespace analog {
-
+
rail_ff::sptr
rail_ff::make(float lo, float hi)
{
@@ -57,7 +57,7 @@ namespace gr {
d_lo = lo;
set_clipping();
}
-
+
void
rail_ff_impl::set_hi(float hi)
{
diff --git a/gr-analog/lib/rail_ff_impl.h b/gr-analog/lib/rail_ff_impl.h
index 3617d097d9..7f8f3db1f7 100644
--- a/gr-analog/lib/rail_ff_impl.h
+++ b/gr-analog/lib/rail_ff_impl.h
@@ -27,7 +27,7 @@
namespace gr {
namespace analog {
-
+
class rail_ff_impl : public rail_ff
{
private:
diff --git a/gr-analog/lib/sig_source_X_impl.cc.t b/gr-analog/lib/sig_source_X_impl.cc.t
index c9e99f015a..5e0cace9c4 100644
--- a/gr-analog/lib/sig_source_X_impl.cc.t
+++ b/gr-analog/lib/sig_source_X_impl.cc.t
@@ -35,7 +35,7 @@
namespace gr {
namespace analog {
-
+
@BASE_NAME@::sptr
@BASE_NAME@::make(double sampling_freq, gr_waveform_t waveform,
double frequency, double ampl, @TYPE@ offset)
@@ -67,7 +67,7 @@ namespace gr {
@TYPE@ *optr = (@TYPE@*)output_items[0];
@TYPE@ t;
- switch(d_waveform) {
+ switch(d_waveform) {
#if @IS_COMPLEX@ // complex?
diff --git a/gr-analog/lib/simple_squelch_cc_impl.cc b/gr-analog/lib/simple_squelch_cc_impl.cc
index edaf8de9ce..18a3997387 100644
--- a/gr-analog/lib/simple_squelch_cc_impl.cc
+++ b/gr-analog/lib/simple_squelch_cc_impl.cc
@@ -30,7 +30,7 @@
namespace gr {
namespace analog {
-
+
simple_squelch_cc::sptr
simple_squelch_cc::make(double threshold_db, double alpha)
{
diff --git a/gr-analog/lib/simple_squelch_cc_impl.h b/gr-analog/lib/simple_squelch_cc_impl.h
index d1a923a296..9d6c8d5f99 100644
--- a/gr-analog/lib/simple_squelch_cc_impl.h
+++ b/gr-analog/lib/simple_squelch_cc_impl.h
@@ -28,7 +28,7 @@
namespace gr {
namespace analog {
-
+
class simple_squelch_cc_impl : public simple_squelch_cc
{
private:
diff --git a/gr-analog/lib/squelch_base_cc_impl.cc b/gr-analog/lib/squelch_base_cc_impl.cc
index 73be18349d..c62efc339b 100644
--- a/gr-analog/lib/squelch_base_cc_impl.cc
+++ b/gr-analog/lib/squelch_base_cc_impl.cc
@@ -51,26 +51,26 @@ namespace gr {
{
return d_ramp;
}
-
- void
+
+ void
squelch_base_cc_impl::set_ramp(int ramp)
{
d_ramp = ramp;
}
-
- bool
+
+ bool
squelch_base_cc_impl::gate() const
{
return d_gate;
}
- void
+ void
squelch_base_cc_impl::set_gate(bool gate)
{
d_gate = gate;
}
-
- bool
+
+ bool
squelch_base_cc_impl::unmuted() const
{
return (d_state == ST_UNMUTED || d_state == ST_ATTACK);
diff --git a/gr-analog/lib/squelch_base_ff_impl.cc b/gr-analog/lib/squelch_base_ff_impl.cc
index 2fb0e64301..a729fedb24 100644
--- a/gr-analog/lib/squelch_base_ff_impl.cc
+++ b/gr-analog/lib/squelch_base_ff_impl.cc
@@ -51,26 +51,26 @@ namespace gr {
{
return d_ramp;
}
-
- void
+
+ void
squelch_base_ff_impl::set_ramp(int ramp)
{
d_ramp = ramp;
}
-
- bool
+
+ bool
squelch_base_ff_impl::gate() const
{
return d_gate;
}
- void
+ void
squelch_base_ff_impl::set_gate(bool gate)
{
d_gate = gate;
}
-
- bool
+
+ bool
squelch_base_ff_impl::unmuted() const
{
return (d_state == ST_UNMUTED || d_state == ST_ATTACK);
@@ -109,7 +109,7 @@ namespace gr {
d_envelope = 0.5-std::cos(M_PI*(++d_ramped)/d_ramp)/2.0;
// use >= in case d_ramp is set to lower value elsewhere
- if(d_ramped >= d_ramp) {
+ if(d_ramped >= d_ramp) {
d_state = ST_UNMUTED;
d_envelope = 1.0;
}
diff --git a/gr-analog/python/analog/__init__.py b/gr-analog/python/analog/__init__.py
index 836d4ba935..3c4a0ff624 100644
--- a/gr-analog/python/analog/__init__.py
+++ b/gr-analog/python/analog/__init__.py
@@ -1,22 +1,22 @@
# Copyright 2012 Free Software Foundation, Inc.
-#
+#
# This file is part of GNU Radio
-#
+#
# GNU Radio is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
-#
+#
# GNU Radio is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-#
+#
# You should have received a copy of the GNU General Public License
# along with GNU Radio; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street,
# Boston, MA 02110-1301, USA.
-#
+#
'''
Blocks and utilities for analog modulation and demodulation.
diff --git a/gr-analog/python/analog/qa_agc.py b/gr-analog/python/analog/qa_agc.py
index cb72668341..70c9ba578c 100755
--- a/gr-analog/python/analog/qa_agc.py
+++ b/gr-analog/python/analog/qa_agc.py
@@ -489,7 +489,7 @@ class test_agc(gr_unittest.TestCase):
length = 8
gain = 2
-
+
input_data = 8*(0.0,) + 24*(1.0,) + 24*(0.0,)
expected_result = (8+length-1)*(0.0,) + 24*(gain*1.0,) + (0,)
diff --git a/gr-analog/python/analog/qa_cpfsk.py b/gr-analog/python/analog/qa_cpfsk.py
index a33a6e6092..be2e0a9b7e 100755
--- a/gr-analog/python/analog/qa_cpfsk.py
+++ b/gr-analog/python/analog/qa_cpfsk.py
@@ -34,7 +34,7 @@ class test_cpfsk_bc(gr_unittest.TestCase):
def test_cpfsk_bc_001(self):
# Test set/gets
-
+
op = analog.cpfsk_bc(2, 1, 2)
op.set_amplitude(2)
diff --git a/gr-analog/python/analog/qa_ctcss_squelch.py b/gr-analog/python/analog/qa_ctcss_squelch.py
index f5cfcbf976..3be1e9de3b 100755
--- a/gr-analog/python/analog/qa_ctcss_squelch.py
+++ b/gr-analog/python/analog/qa_ctcss_squelch.py
@@ -32,7 +32,7 @@ class test_ctcss_squelch(gr_unittest.TestCase):
def test_ctcss_squelch_001(self):
# Test set/gets
-
+
rate = 1
rate2 = 2
freq = 100
diff --git a/gr-analog/python/analog/qa_dpll.py b/gr-analog/python/analog/qa_dpll.py
index 44b1486035..3ae8a3684b 100755
--- a/gr-analog/python/analog/qa_dpll.py
+++ b/gr-analog/python/analog/qa_dpll.py
@@ -32,7 +32,7 @@ class test_dpll_bb(gr_unittest.TestCase):
def test_dpll_bb_001(self):
# Test set/gets
-
+
period = 1.0
gain = 0.1
op = analog.dpll_bb(period, gain)
diff --git a/gr-analog/python/analog/qa_phase_modulator.py b/gr-analog/python/analog/qa_phase_modulator.py
index 05fe2127c0..c6223e5cd4 100755
--- a/gr-analog/python/analog/qa_phase_modulator.py
+++ b/gr-analog/python/analog/qa_phase_modulator.py
@@ -45,11 +45,11 @@ class test_phase_modulator(gr_unittest.TestCase):
src = blocks.vector_source_f(src_data)
op = analog.phase_modulator_fc(sensitivity)
dst = blocks.vector_sink_c()
-
+
self.tb.connect(src, op)
self.tb.connect(op, dst)
self.tb.run()
-
+
result_data = dst.data()
self.assertComplexTuplesAlmostEqual(expected_result, result_data, 5)
diff --git a/gr-analog/python/analog/qa_pwr_squelch.py b/gr-analog/python/analog/qa_pwr_squelch.py
index e366192f68..561ca79a7c 100755
--- a/gr-analog/python/analog/qa_pwr_squelch.py
+++ b/gr-analog/python/analog/qa_pwr_squelch.py
@@ -34,7 +34,7 @@ class test_pwr_squelch(gr_unittest.TestCase):
# Test set/gets
alpha = 0.0001
-
+
thr1 = 10
thr2 = 20
ramp = 1
@@ -80,7 +80,7 @@ class test_pwr_squelch(gr_unittest.TestCase):
# Test set/gets
alpha = 0.0001
-
+
thr1 = 10
thr2 = 20
ramp = 1
diff --git a/gr-analog/python/analog/qa_quadrature_demod.py b/gr-analog/python/analog/qa_quadrature_demod.py
index bcf9aaa17f..08f3f4600e 100755
--- a/gr-analog/python/analog/qa_quadrature_demod.py
+++ b/gr-analog/python/analog/qa_quadrature_demod.py
@@ -50,11 +50,11 @@ class test_quadrature_demod(gr_unittest.TestCase):
src = blocks.vector_source_c(src_data)
op = analog.quadrature_demod_cf(gain)
dst = blocks.vector_sink_f()
-
+
self.tb.connect(src, op)
self.tb.connect(op, dst)
self.tb.run()
-
+
result_data = dst.data()
self.assertComplexTuplesAlmostEqual(expected_result, result_data, 5)
diff --git a/gr-analog/python/analog/qa_rail_ff.py b/gr-analog/python/analog/qa_rail_ff.py
index 4a7d3f3f7d..e3990dfd3a 100755
--- a/gr-analog/python/analog/qa_rail_ff.py
+++ b/gr-analog/python/analog/qa_rail_ff.py
@@ -40,7 +40,7 @@ class test_rail(gr_unittest.TestCase):
def test_rail_001(self):
# Test set/gets
-
+
hi1 = 1
hi2 = 2
lo1 = -1
diff --git a/gr-analog/python/analog/qa_simple_squelch.py b/gr-analog/python/analog/qa_simple_squelch.py
index 35f28a6122..b09a3b2a87 100755
--- a/gr-analog/python/analog/qa_simple_squelch.py
+++ b/gr-analog/python/analog/qa_simple_squelch.py
@@ -34,7 +34,7 @@ class test_simple_squelch(gr_unittest.TestCase):
# Test set/gets
alpha = 0.0001
-
+
thr1 = 10
thr2 = 20
diff --git a/gr-analog/swig/analog_swig.i b/gr-analog/swig/analog_swig.i
index d9561b32d5..84ac1486d9 100644
--- a/gr-analog/swig/analog_swig.i
+++ b/gr-analog/swig/analog_swig.i
@@ -1,18 +1,18 @@
/*
* Copyright 2012 Free Software Foundation, Inc.
- *
+ *
* This file is part of GNU Radio
- *
+ *
* GNU Radio is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
* any later version.
- *
+ *
* GNU Radio is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with GNU Radio; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street,
diff --git a/gr-atsc/lib/CMakeLists.txt b/gr-atsc/lib/CMakeLists.txt
index 22ea35c09e..5ac14fa118 100644
--- a/gr-atsc/lib/CMakeLists.txt
+++ b/gr-atsc/lib/CMakeLists.txt
@@ -127,6 +127,19 @@ add_library(gnuradio-atsc SHARED ${gr_atsc_sources})
target_link_libraries(gnuradio-atsc ${atsc_libs})
GR_LIBRARY_FOO(gnuradio-atsc RUNTIME_COMPONENT "atsc_runtime" DEVEL_COMPONENT "atsc_devel")
+if(ENABLE_STATIC_LIBS)
+ add_library(gnuradio-atsc_static STATIC ${gr_atsc_sources})
+
+ if(NOT WIN32)
+ set_target_properties(gnuradio-atsc_static
+ PROPERTIES OUTPUT_NAME gnuradio-atsc)
+ endif(NOT WIN32)
+
+ install(TARGETS gnuradio-atsc_static
+ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT "atsc_devel" # .lib file
+ )
+endif(ENABLE_STATIC_LIBS)
+
########################################################################
# Build and register unit test
########################################################################
diff --git a/gr-atsc/lib/atsc_bit_timing_loop.cc b/gr-atsc/lib/atsc_bit_timing_loop.cc
index f75e724834..1458c9ed63 100644
--- a/gr-atsc/lib/atsc_bit_timing_loop.cc
+++ b/gr-atsc/lib/atsc_bit_timing_loop.cc
@@ -120,6 +120,6 @@ atsc_bit_timing_loop::work (int noutput_items,
out_tag[k] = tag;
}
-
+
return k;
}
diff --git a/gr-atsc/python/atsc/atsc_rx.py b/gr-atsc/python/atsc/atsc_rx.py
index 377c4daa29..940eeac4bd 100755
--- a/gr-atsc/python/atsc/atsc_rx.py
+++ b/gr-atsc/python/atsc/atsc_rx.py
@@ -28,7 +28,7 @@
# -s output shorts
#
# This python script converts from interleaved shorts to the complex data type,
-# then multiplies the sample rate by 3, from 6.4e6 to 19.2e6
+# then multiplies the sample rate by 3, from 6.4e6 to 19.2e6
# complex samples / sec, then lowpass filters with a cutoff of 3.2MHz
# and a transition band width of .5MHz. Center of the tv channels is
# now at 0 with edges at -3.2MHz and 3.2MHz. This puts the pilot at
@@ -38,7 +38,7 @@
# not stored in the phase with atsc ), this is then feed to the bit lock
# loop, this looks for the bit sync marker put at the beginning of every segment
# field, this then adjusts the timing so the amplitude will be sampled at the
-# correct sample ( sub-sample is used in this case ).
+# correct sample ( sub-sample is used in this case ).
#
# Output is float.
@@ -82,7 +82,7 @@ def graph (args):
# Move the center frequency to 5.75MHz ( this wont be needed soon )
duc_coeffs = filter.firdes.low_pass ( 1, 19.2e6, 9e6, 1e6, filter.firdes.WIN_HAMMING )
duc = filter.freq_xlating_fir_filter_ccf ( 1, duc_coeffs, -5.75e6, 19.2e6 )
-
+
# fpll input is float
c2f = blocks.complex_to_float()
diff --git a/gr-audio/examples/c++/CMakeLists.txt b/gr-audio/examples/c++/CMakeLists.txt
index a61c089c3e..205bdeb287 100644
--- a/gr-audio/examples/c++/CMakeLists.txt
+++ b/gr-audio/examples/c++/CMakeLists.txt
@@ -25,7 +25,7 @@ include_directories(
)
add_executable(dial_tone dial_tone.cc)
-target_link_libraries(dial_tone
+target_link_libraries(dial_tone
gnuradio-runtime gnuradio-audio gnuradio-analog)
INSTALL(TARGETS
diff --git a/gr-audio/lib/CMakeLists.txt b/gr-audio/lib/CMakeLists.txt
index f07373def9..2ae7c41e56 100644
--- a/gr-audio/lib/CMakeLists.txt
+++ b/gr-audio/lib/CMakeLists.txt
@@ -185,3 +185,16 @@ target_link_libraries(gnuradio-audio ${gr_audio_libs})
GR_LIBRARY_FOO(gnuradio-audio RUNTIME_COMPONENT "audio_runtime" DEVEL_COMPONENT "audio_devel")
install(FILES ${gr_audio_confs} DESTINATION ${GR_PREFSDIR} COMPONENT "audio_runtime")
+
+if(ENABLE_STATIC_LIBS)
+ add_library(gnuradio-audio_static STATIC ${gr_audio_sources})
+
+ if(NOT WIN32)
+ set_target_properties(gnuradio-audio_static
+ PROPERTIES OUTPUT_NAME gnuradio-audio)
+ endif(NOT WIN32)
+
+ install(TARGETS gnuradio-audio_static
+ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT "audio_devel" # .lib file
+ )
+endif(ENABLE_STATIC_LIBS)
diff --git a/gr-audio/lib/alsa/alsa_sink.cc b/gr-audio/lib/alsa/alsa_sink.cc
index 63634e0aea..a9224733aa 100644
--- a/gr-audio/lib/alsa/alsa_sink.cc
+++ b/gr-audio/lib/alsa/alsa_sink.cc
@@ -104,7 +104,7 @@ namespace gr {
while((error!=0)&&(attempts-->0)){
error = snd_pcm_open(&d_pcm_handle, d_device_name.c_str(),
SND_PCM_STREAM_PLAYBACK, 0);
- if(error<0){
+ if(error<0){
boost::this_thread::sleep( boost::posix_time::milliseconds(10));
}
}
diff --git a/gr-audio/lib/jack/jack_sink.cc b/gr-audio/lib/jack/jack_sink.cc
index ed3f63b81f..0da074290f 100644
--- a/gr-audio/lib/jack/jack_sink.cc
+++ b/gr-audio/lib/jack/jack_sink.cc
@@ -117,7 +117,7 @@ namespace gr {
pthread_cond_init(&d_ringbuffer_ready, NULL);;
pthread_mutex_init(&d_jack_process_lock, NULL);
#endif
-
+
// try to become a client of the JACK server
jack_options_t options = JackNullOption;
jack_status_t status;
diff --git a/gr-audio/lib/jack/jack_sink.h b/gr-audio/lib/jack/jack_sink.h
index 9c97b34f96..eefe5d5b50 100644
--- a/gr-audio/lib/jack/jack_sink.h
+++ b/gr-audio/lib/jack/jack_sink.h
@@ -55,7 +55,7 @@ namespace gr {
bool d_ok_to_block;
jack_client_t *d_jack_client;
- static const int MAX_PORTS = 10;
+ static const int MAX_PORTS = 10;
int d_portcount;
jack_port_t *d_jack_output_port[MAX_PORTS];
jack_ringbuffer_t *d_ringbuffer[MAX_PORTS];
diff --git a/gr-audio/lib/jack/jack_source.cc b/gr-audio/lib/jack/jack_source.cc
index d2a1698982..9223cbb588 100644
--- a/gr-audio/lib/jack/jack_source.cc
+++ b/gr-audio/lib/jack/jack_source.cc
@@ -66,7 +66,7 @@ namespace gr {
{
jack_source *self = (jack_source *)arg;
unsigned int write_size = nframes*sizeof(sample_t);
-
+
for(int i = 0; i < self->d_portcount; i++) {
if(jack_ringbuffer_write_space (self->d_ringbuffer[i]) < write_size) {
self->d_noverruns++;
@@ -74,7 +74,7 @@ namespace gr {
fputs ("jO", stderr);
return 0;
}
-
+
char *buffer = (char *)jack_port_get_buffer(self->d_jack_input_port[i], nframes);
jack_ringbuffer_write (self->d_ringbuffer[i], buffer, write_size);
@@ -109,7 +109,7 @@ namespace gr {
d_ok_to_block(ok_to_block),
d_jack_client(0),
d_portcount(0),
- d_jack_input_port(),
+ d_jack_input_port(),
d_ringbuffer(),
d_noverruns(0)
{
diff --git a/gr-audio/lib/jack/jack_source.h b/gr-audio/lib/jack/jack_source.h
index 2f7a0163a4..6c895ae067 100644
--- a/gr-audio/lib/jack/jack_source.h
+++ b/gr-audio/lib/jack/jack_source.h
@@ -41,7 +41,7 @@ namespace gr {
*
* Output samples will be in the range [-1,1].
*/
- class jack_source : public source
+ class jack_source : public source
{
friend int jack_source_process(jack_nframes_t nframes, void *arg);
@@ -55,8 +55,8 @@ namespace gr {
bool d_ok_to_block;
jack_client_t *d_jack_client;
- static const int MAX_PORTS = 10;
- int d_portcount;
+ static const int MAX_PORTS = 10;
+ int d_portcount;
jack_port_t *d_jack_input_port[MAX_PORTS];
jack_ringbuffer_t *d_ringbuffer[MAX_PORTS];
jack_nframes_t d_jack_buffer_size;
diff --git a/gr-audio/lib/oss/oss_sink.h b/gr-audio/lib/oss/oss_sink.h
index e190944857..3b17348c41 100644
--- a/gr-audio/lib/oss/oss_sink.h
+++ b/gr-audio/lib/oss/oss_sink.h
@@ -36,7 +36,7 @@ namespace gr {
* input signature is one or two streams of floats.
* Input samples must be in the range [-1,1].
*/
- class oss_sink : public sink
+ class oss_sink : public sink
{
int d_sampling_rate;
std::string d_device_name;
diff --git a/gr-audio/lib/oss/oss_source.h b/gr-audio/lib/oss/oss_source.h
index 6f1df26a11..1180a7b35a 100644
--- a/gr-audio/lib/oss/oss_source.h
+++ b/gr-audio/lib/oss/oss_source.h
@@ -36,7 +36,7 @@ namespace gr {
* Output signature is one or two streams of floats.
* Output samples will be in the range [-1,1].
*/
- class oss_source : public source
+ class oss_source : public source
{
int d_sampling_rate;
std::string d_device_name;
diff --git a/gr-audio/lib/osx/gr-audio-osx.conf b/gr-audio/lib/osx/gr-audio-osx.conf
index a4fed33327..e1c6934452 100644
--- a/gr-audio/lib/osx/gr-audio-osx.conf
+++ b/gr-audio/lib/osx/gr-audio-osx.conf
@@ -7,5 +7,5 @@
[audio_osx]
-default_input_device =
-default_output_device =
+default_input_device =
+default_output_device =
diff --git a/gr-audio/lib/osx/osx_common.h b/gr-audio/lib/osx/osx_common.h
index 34266f2c63..59b866dbe3 100644
--- a/gr-audio/lib/osx/osx_common.h
+++ b/gr-audio/lib/osx/osx_common.h
@@ -35,9 +35,9 @@ namespace osx {
#define check_error_and_throw(err,what,throw_str) \
if(err) { \
OSStatus error = static_cast<OSStatus>(err); \
- char err_str[5]; \
- *((UInt32*)err_str) = error; \
- err_str[4] = 0; \
+ char err_str[sizeof(OSStatus)+1]; \
+ memcpy((void*)(&err_str), (void*)(&error), sizeof(OSStatus)); \
+ err_str[sizeof(OSStatus)] = 0; \
GR_LOG_FATAL(d_logger, boost::format(what)); \
GR_LOG_FATAL(d_logger, boost::format(" Error# %u ('%s')") \
% error % err_str); \
@@ -49,9 +49,9 @@ namespace osx {
#define check_error(err,what) \
if(err) { \
OSStatus error = static_cast<OSStatus>(err); \
- char err_str[5]; \
- *((UInt32*)err_str) = error; \
- err_str[4] = 0; \
+ char err_str[sizeof(OSStatus)+1]; \
+ memcpy((void*)(&err_str), (void*)(&error), sizeof(OSStatus)); \
+ err_str[sizeof(OSStatus)] = 0; \
GR_LOG_WARN(d_logger, boost::format(what)); \
GR_LOG_WARN(d_logger, boost::format(" Error# %u ('%s')") \
% error % err_str); \
diff --git a/gr-audio/lib/osx/osx_source.cc b/gr-audio/lib/osx/osx_source.cc
index 93d857e4be..b51a6563ed 100644
--- a/gr-audio/lib/osx/osx_source.cc
+++ b/gr-audio/lib/osx/osx_source.cc
@@ -933,8 +933,7 @@ namespace gr {
err = AudioHardwareRemovePropertyListener
(kAudioHardwarePropertyDevices,
reinterpret_cast<AudioHardwarePropertyListenerProc>
- (&osx_source::hardware_listener)
- reinterpret_cast<void*>(this));
+ (&osx_source::hardware_listener));
#if _OSX_AU_DEBUG_
check_error(err, "AudioObjectRemovePropertyListener hardware");
#endif
@@ -943,8 +942,7 @@ namespace gr {
err = AudioHardwareRemovePropertyListener
(kAudioHardwarePropertyDefaultInputDevice,
reinterpret_cast<AudioHardwarePropertyListenerProc>
- (&osx_source::default_listener),
- reinterpret_cast<void*>(this));
+ (&osx_source::default_listener));
#if _OSX_AU_DEBUG_
check_error(err, "AudioObjectRemovePropertyListener default");
#endif
diff --git a/gr-audio/lib/portaudio/portaudio_sink.cc b/gr-audio/lib/portaudio/portaudio_sink.cc
index 089dedc33e..f3315f1268 100644
--- a/gr-audio/lib/portaudio/portaudio_sink.cc
+++ b/gr-audio/lib/portaudio/portaudio_sink.cc
@@ -306,7 +306,7 @@ namespace gr {
{
const float **in = (const float **)&input_items[0];
const unsigned nchan = d_output_parameters.channelCount; // # of channels == samples/frame
-
+
int k;
for(k = 0; k < noutput_items;) {
int nframes = d_writer->space_available() / nchan; // How much space in ringbuffer
diff --git a/gr-audio/lib/portaudio/portaudio_source.cc b/gr-audio/lib/portaudio/portaudio_source.cc
index 5d081f63e2..178d507562 100644
--- a/gr-audio/lib/portaudio/portaudio_source.cc
+++ b/gr-audio/lib/portaudio/portaudio_source.cc
@@ -296,7 +296,7 @@ namespace gr {
{
float **out = (float **)&output_items[0];
const unsigned nchan = d_input_parameters.channelCount; // # of channels == samples/frame
-
+
int k;
for(k = 0; k < noutput_items;) {
int nframes = d_reader->items_available() / nchan; // # of frames in ringbuffer
diff --git a/gr-audio/lib/windows/windows_sink.cc b/gr-audio/lib/windows/windows_sink.cc
index 4241a5c16b..33a706baf5 100644
--- a/gr-audio/lib/windows/windows_sink.cc
+++ b/gr-audio/lib/windows/windows_sink.cc
@@ -101,7 +101,7 @@ namespace gr {
for(int i = 0; i < noutput_items; i += d_chunk_size) {
for(int j = 0; j < d_chunk_size; j++) {
- d_buffer[2*j + 0] = (short)(sin(2.0 * 3.1415926535897932384626 *
+ d_buffer[2*j + 0] = (short)(sin(2.0 * 3.1415926535897932384626 *
(float)j * 1000.0 / (float)d_sampling_freq) *
8192 + 0); //+32767
d_buffer[2*j + 1] = d_buffer[2*j + 0];
@@ -119,7 +119,7 @@ namespace gr {
switch(input_items.size ()) {
case 1: // mono input
f0 = (const float*)input_items[0];
-
+
for(int i = 0; i < noutput_items; i += d_chunk_size) {
for(int j = 0; j < d_chunk_size; j++) {
d_buffer[2*j + 0] = (short)(f0[j] * 32767);
diff --git a/gr-audio/lib/windows/windows_source.cc b/gr-audio/lib/windows/windows_source.cc
index 5180868f2e..bc1597f0df 100644
--- a/gr-audio/lib/windows/windows_source.cc
+++ b/gr-audio/lib/windows/windows_source.cc
@@ -83,7 +83,7 @@ namespace gr {
int format = AFMT_S16_NE;
int orig_format = format;
if(ioctl(d_fd, SNDCTL_DSP_SETFMT, &format) < 0) {
- std::cerr << "audio_windows_source: " << d_device_name
+ std::cerr << "audio_windows_source: " << d_device_name
<< " ioctl failed\n";
perror(d_device_name.c_str());
throw std::runtime_error("audio_windows_source");
diff --git a/gr-blocks/doc/CMakeLists.txt b/gr-blocks/doc/CMakeLists.txt
index c1397804be..4e185fde06 100644
--- a/gr-blocks/doc/CMakeLists.txt
+++ b/gr-blocks/doc/CMakeLists.txt
@@ -1,17 +1,17 @@
# Copyright 2012 Free Software Foundation, Inc.
-#
+#
# This file is part of GNU Radio
-#
+#
# GNU Radio is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
-#
+#
# GNU Radio is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-#
+#
# You should have received a copy of the GNU General Public License
# along with GNU Radio; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street,
diff --git a/gr-blocks/doc/README.blocks b/gr-blocks/doc/README.blocks
index 418a068255..7b36898f2e 100644
--- a/gr-blocks/doc/README.blocks
+++ b/gr-blocks/doc/README.blocks
@@ -7,6 +7,6 @@ imported as:
See the Doxygen documentation for details about the blocks available
in this package. A quick listing of the details can be found in Python
-after importing by using:
+after importing by using:
help(blocks)
diff --git a/gr-blocks/examples/ctrlport/pfb_sync_test-qt.grc b/gr-blocks/examples/ctrlport/pfb_sync_test-qt.grc
index c28ed6d71a..0c397351cc 100644
--- a/gr-blocks/examples/ctrlport/pfb_sync_test-qt.grc
+++ b/gr-blocks/examples/ctrlport/pfb_sync_test-qt.grc
@@ -378,7 +378,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
diff --git a/gr-blocks/examples/metadata/file_metadata_source.grc b/gr-blocks/examples/metadata/file_metadata_source.grc
index 5d0a0417a8..55d52a9a2d 100644
--- a/gr-blocks/examples/metadata/file_metadata_source.grc
+++ b/gr-blocks/examples/metadata/file_metadata_source.grc
@@ -181,7 +181,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
diff --git a/gr-blocks/grc/blocks_block_tree.xml b/gr-blocks/grc/blocks_block_tree.xml
index 7001d906ac..b0d7ff0687 100644
--- a/gr-blocks/grc/blocks_block_tree.xml
+++ b/gr-blocks/grc/blocks_block_tree.xml
@@ -2,19 +2,19 @@
<!--
Copyright 2012,2013 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,
diff --git a/gr-blocks/grc/blocks_ctrlport_performance.xml b/gr-blocks/grc/blocks_ctrlport_performance.xml
index 00be541547..ae0fb91c50 100644
--- a/gr-blocks/grc/blocks_ctrlport_performance.xml
+++ b/gr-blocks/grc/blocks_ctrlport_performance.xml
@@ -2,19 +2,19 @@
<!--
Copyright 2012 Free Software Foundation, Inc.
-
+
This file is part of GNU Radio
-
+
GNU Radio is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
-
+
GNU Radio is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with GNU Radio; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street,
diff --git a/gr-blocks/grc/blocks_ctrlport_probe2_c.xml b/gr-blocks/grc/blocks_ctrlport_probe2_c.xml
index b5f0b089a7..708a8fdf9b 100644
--- a/gr-blocks/grc/blocks_ctrlport_probe2_c.xml
+++ b/gr-blocks/grc/blocks_ctrlport_probe2_c.xml
@@ -2,19 +2,19 @@
<!--
Copyright 2012-2013 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,
@@ -41,7 +41,7 @@
<value>Sample Points</value>
<type>string</type>
</param>
-
+
<param>
<name>Length</name>
<key>len</key>
diff --git a/gr-blocks/grc/blocks_ctrlport_probe2_x.xml b/gr-blocks/grc/blocks_ctrlport_probe2_x.xml
index b9b1660bc9..47d1b81d3d 100644
--- a/gr-blocks/grc/blocks_ctrlport_probe2_x.xml
+++ b/gr-blocks/grc/blocks_ctrlport_probe2_x.xml
@@ -2,19 +2,19 @@
<!--
Copyright 2013 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,
@@ -72,7 +72,7 @@
<value>Sample Points</value>
<type>string</type>
</param>
-
+
<param>
<name>Length</name>
<key>len</key>
diff --git a/gr-blocks/grc/blocks_ctrlport_probe_c.xml b/gr-blocks/grc/blocks_ctrlport_probe_c.xml
index 00a3f9cad7..64174204f1 100644
--- a/gr-blocks/grc/blocks_ctrlport_probe_c.xml
+++ b/gr-blocks/grc/blocks_ctrlport_probe_c.xml
@@ -2,19 +2,19 @@
<!--
Copyright 2012 Free Software Foundation, Inc.
-
+
This file is part of GNU Radio
-
+
GNU Radio is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
-
+
GNU Radio is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with GNU Radio; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street,
diff --git a/gr-blocks/grc/blocks_ctrlport_viewer.xml b/gr-blocks/grc/blocks_ctrlport_viewer.xml
index c8770d5dd9..2b69ae05ad 100644
--- a/gr-blocks/grc/blocks_ctrlport_viewer.xml
+++ b/gr-blocks/grc/blocks_ctrlport_viewer.xml
@@ -2,19 +2,19 @@
<!--
Copyright 2012 Free Software Foundation, Inc.
-
+
This file is part of GNU Radio
-
+
GNU Radio is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
-
+
GNU Radio is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with GNU Radio; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street,
diff --git a/gr-blocks/grc/blocks_message_strobe.xml b/gr-blocks/grc/blocks_message_strobe.xml
index 526a846477..4a6091d8e0 100644
--- a/gr-blocks/grc/blocks_message_strobe.xml
+++ b/gr-blocks/grc/blocks_message_strobe.xml
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<!--
###################################################
-##Message Strobe
+##Message Strobe
###################################################
-->
<block>
diff --git a/gr-blocks/grc/blocks_message_strobe_random.xml b/gr-blocks/grc/blocks_message_strobe_random.xml
index 71c51322c5..0b3e7296a0 100644
--- a/gr-blocks/grc/blocks_message_strobe_random.xml
+++ b/gr-blocks/grc/blocks_message_strobe_random.xml
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<!--
###################################################
-##Message Strobe
+##Message Strobe
###################################################
-->
<block>
@@ -59,7 +59,7 @@
<type>message</type>
<optional>1</optional>
</source>
-
+
<doc>
Please note some peculiarities below:
- poisson does not care about your std
diff --git a/gr-blocks/grc/blocks_tags_strobe.xml b/gr-blocks/grc/blocks_tags_strobe.xml
index f17edd2b99..ed14929329 100644
--- a/gr-blocks/grc/blocks_tags_strobe.xml
+++ b/gr-blocks/grc/blocks_tags_strobe.xml
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<!--
###################################################
-## Tags Strobe
+## Tags Strobe
###################################################
-->
<block>
diff --git a/gr-blocks/include/gnuradio/blocks/abs_XX.h.t b/gr-blocks/include/gnuradio/blocks/abs_XX.h.t
index a30e752b4b..f8688edcd3 100644
--- a/gr-blocks/include/gnuradio/blocks/abs_XX.h.t
+++ b/gr-blocks/include/gnuradio/blocks/abs_XX.h.t
@@ -42,10 +42,10 @@ namespace gr {
{
public:
-
+
// gr::blocks::@NAME@::sptr
typedef boost::shared_ptr<@NAME@> sptr;
-
+
/*!
* \brief Create an instance of @NAME@
*/
diff --git a/gr-blocks/include/gnuradio/blocks/add_XX.h.t b/gr-blocks/include/gnuradio/blocks/add_XX.h.t
index 74c38889c0..0a7195d7c3 100644
--- a/gr-blocks/include/gnuradio/blocks/add_XX.h.t
+++ b/gr-blocks/include/gnuradio/blocks/add_XX.h.t
@@ -35,7 +35,7 @@ namespace gr {
* \brief output = sum(input[0], input[1], ..., input[M-1])
* \ingroup math_operators_blk
*
- * \details
+ * \details
* Add samples across all input streams. For all \f$n\f$ samples
* on all \f$M\f$ input streams \f$x_m\f$:
*
@@ -46,7 +46,7 @@ namespace gr {
class BLOCKS_API @NAME@ : virtual public sync_block
{
public:
-
+
// gr::blocks::@NAME@::sptr
typedef boost::shared_ptr<@NAME@> sptr;
diff --git a/gr-blocks/include/gnuradio/blocks/add_const_XX.h.t b/gr-blocks/include/gnuradio/blocks/add_const_XX.h.t
index 3e783213a8..723fc78218 100644
--- a/gr-blocks/include/gnuradio/blocks/add_const_XX.h.t
+++ b/gr-blocks/include/gnuradio/blocks/add_const_XX.h.t
@@ -38,16 +38,16 @@ namespace gr {
class BLOCKS_API @NAME@ : virtual public sync_block
{
public:
-
+
// gr::blocks::@NAME@::sptr
typedef boost::shared_ptr<@NAME@> sptr;
-
+
/*!
* \brief Create an instance of @NAME@
* \param k additive constant
*/
static sptr make(@O_TYPE@ k);
-
+
/*!
* \brief Return additive constant
*/
diff --git a/gr-blocks/include/gnuradio/blocks/add_const_vXX.h.t b/gr-blocks/include/gnuradio/blocks/add_const_vXX.h.t
index d1ce947175..55b8ce3f73 100644
--- a/gr-blocks/include/gnuradio/blocks/add_const_vXX.h.t
+++ b/gr-blocks/include/gnuradio/blocks/add_const_vXX.h.t
@@ -39,16 +39,16 @@ namespace gr {
{
public:
-
+
// gr::blocks::@NAME@::sptr
typedef boost::shared_ptr<@NAME@> sptr;
-
+
/*!
* \brief Create an instance of @NAME@
* \param k additive constant vector
*/
static sptr make(std::vector<@O_TYPE@> k);
-
+
/*!
* \brief Return additive constant vector
*/
diff --git a/gr-blocks/include/gnuradio/blocks/and_XX.h.t b/gr-blocks/include/gnuradio/blocks/and_XX.h.t
index 8dc48fc04a..cf2b1ab488 100644
--- a/gr-blocks/include/gnuradio/blocks/and_XX.h.t
+++ b/gr-blocks/include/gnuradio/blocks/and_XX.h.t
@@ -41,7 +41,7 @@ namespace gr {
class BLOCKS_API @NAME@ : virtual public sync_block
{
public:
-
+
// gr::blocks::@NAME@::sptr
typedef boost::shared_ptr<@NAME@> sptr;
diff --git a/gr-blocks/include/gnuradio/blocks/and_const_XX.h.t b/gr-blocks/include/gnuradio/blocks/and_const_XX.h.t
index 62bfca2041..ee2ff3da20 100644
--- a/gr-blocks/include/gnuradio/blocks/and_const_XX.h.t
+++ b/gr-blocks/include/gnuradio/blocks/and_const_XX.h.t
@@ -42,16 +42,16 @@ namespace gr {
{
public:
-
+
// gr::blocks::@NAME@::sptr
typedef boost::shared_ptr<@NAME@> sptr;
-
+
/*!
* \brief Create an instance of @NAME@
* \param k AND constant
*/
static sptr make(@O_TYPE@ k);
-
+
/*!
* \brief Return AND constant
*/
diff --git a/gr-blocks/include/gnuradio/blocks/char_to_float.h b/gr-blocks/include/gnuradio/blocks/char_to_float.h
index be7adf46a1..1fce660427 100644
--- a/gr-blocks/include/gnuradio/blocks/char_to_float.h
+++ b/gr-blocks/include/gnuradio/blocks/char_to_float.h
@@ -42,7 +42,7 @@ namespace gr {
class BLOCKS_API char_to_float : virtual public sync_block
{
public:
-
+
// gr::blocks::char_to_float_ff::sptr
typedef boost::shared_ptr<char_to_float> sptr;
diff --git a/gr-blocks/include/gnuradio/blocks/char_to_short.h b/gr-blocks/include/gnuradio/blocks/char_to_short.h
index 05880e0735..aa45810eee 100644
--- a/gr-blocks/include/gnuradio/blocks/char_to_short.h
+++ b/gr-blocks/include/gnuradio/blocks/char_to_short.h
@@ -30,18 +30,19 @@ namespace gr {
namespace blocks {
/*!
- * \brief Convert stream of chars to a stream of short
+ * \brief Convert stream of chars to a stream of shorts.
* \ingroup type_converters_blk
*
* \details
- * Converts \p vlen length vectors of input char samples to shorts:
+ * Converts \p vlen length vectors of input char samples to shorts,
+ * multiplying each element by 256:
*
- * \li output[0][m:m+vlen] = static_cast<short>(input[0][m:m+vlen])
+ * \li output[0][m:m+vlen] = 256 * static_cast<short>(input[0][m:m+vlen])
*/
class BLOCKS_API char_to_short : virtual public sync_block
{
public:
-
+
// gr::blocks::char_to_short_ff::sptr
typedef boost::shared_ptr<char_to_short> sptr;
diff --git a/gr-blocks/include/gnuradio/blocks/conjugate_cc.h b/gr-blocks/include/gnuradio/blocks/conjugate_cc.h
index 9477130e98..6be3219e70 100644
--- a/gr-blocks/include/gnuradio/blocks/conjugate_cc.h
+++ b/gr-blocks/include/gnuradio/blocks/conjugate_cc.h
@@ -36,7 +36,7 @@ namespace gr {
class BLOCKS_API conjugate_cc : virtual public sync_block
{
public:
-
+
// gr::blocks::conjugate_cc_ff::sptr
typedef boost::shared_ptr<conjugate_cc> sptr;
diff --git a/gr-blocks/include/gnuradio/blocks/control_loop.h b/gr-blocks/include/gnuradio/blocks/control_loop.h
index f956c88285..f7ff9770f9 100644
--- a/gr-blocks/include/gnuradio/blocks/control_loop.h
+++ b/gr-blocks/include/gnuradio/blocks/control_loop.h
@@ -207,7 +207,7 @@ namespace gr {
* \brief Set the control loop's maximum frequency.
*
* \details
- * Set the maximum frequency the control loop can track.
+ * Set the maximum frequency the control loop can track.
*
* \param freq (float) new max frequency
*/
@@ -217,7 +217,7 @@ namespace gr {
* \brief Set the control loop's minimum frequency.
*
* \details
- * Set the minimum frequency the control loop can track.
+ * Set the minimum frequency the control loop can track.
*
* \param freq (float) new min frequency
*/
diff --git a/gr-blocks/include/gnuradio/blocks/count_bits.h b/gr-blocks/include/gnuradio/blocks/count_bits.h
index 88f56f7221..80b58041bd 100644
--- a/gr-blocks/include/gnuradio/blocks/count_bits.h
+++ b/gr-blocks/include/gnuradio/blocks/count_bits.h
@@ -29,7 +29,7 @@ namespace gr {
namespace blocks {
//! return number of set bits in the low 8 bits of x
- BLOCKS_API unsigned int count_bits8(unsigned int x);
+ BLOCKS_API unsigned int count_bits8(unsigned int x);
//! return number of set bits in the low 16 bits of x
BLOCKS_API unsigned int count_bits16(unsigned int x);
diff --git a/gr-blocks/include/gnuradio/blocks/delay.h b/gr-blocks/include/gnuradio/blocks/delay.h
index bae5e40a8e..fc90e22493 100644
--- a/gr-blocks/include/gnuradio/blocks/delay.h
+++ b/gr-blocks/include/gnuradio/blocks/delay.h
@@ -32,6 +32,9 @@ namespace gr {
/*!
* \brief delay the input by a certain number of samples
* \ingroup misc_blk
+ *
+ * Positive delays insert zero items at the beginning of the stream.
+ * Negative delays discard items from the stream.
*/
class BLOCKS_API delay : virtual public block
{
diff --git a/gr-blocks/include/gnuradio/blocks/divide_XX.h.t b/gr-blocks/include/gnuradio/blocks/divide_XX.h.t
index aa918facad..1ceeb5f1df 100644
--- a/gr-blocks/include/gnuradio/blocks/divide_XX.h.t
+++ b/gr-blocks/include/gnuradio/blocks/divide_XX.h.t
@@ -41,7 +41,7 @@ namespace gr {
class BLOCKS_API @NAME@ : virtual public sync_block
{
public:
-
+
// gr::blocks::@NAME@::sptr
typedef boost::shared_ptr<@NAME@> sptr;
diff --git a/gr-blocks/include/gnuradio/blocks/endian_swap.h b/gr-blocks/include/gnuradio/blocks/endian_swap.h
index e55190fc17..f73eae3306 100644
--- a/gr-blocks/include/gnuradio/blocks/endian_swap.h
+++ b/gr-blocks/include/gnuradio/blocks/endian_swap.h
@@ -42,7 +42,7 @@ namespace gr {
/*!
* Make an endian swap block.
*
- * \param item_size_bytes number of bytes per item, 1=no-op,
+ * \param item_size_bytes number of bytes per item, 1=no-op,
* 2=uint16_t, 4=uint32_t, 8=uint64_t
*/
static sptr make(size_t item_size_bytes=1);
diff --git a/gr-blocks/include/gnuradio/blocks/file_descriptor_sink.h b/gr-blocks/include/gnuradio/blocks/file_descriptor_sink.h
index 31ec0cc142..6399aec854 100644
--- a/gr-blocks/include/gnuradio/blocks/file_descriptor_sink.h
+++ b/gr-blocks/include/gnuradio/blocks/file_descriptor_sink.h
@@ -40,7 +40,8 @@ namespace gr {
typedef boost::shared_ptr<file_descriptor_sink> sptr;
/*!
- * Build a file descriptor sink block.
+ * Build a file descriptor sink block. The provided file descriptor will
+ * be closed when the sink is destroyed.
*
* \param itemsize item size of the incoming data stream.
* \param fd file descriptor (as an integer).
diff --git a/gr-blocks/include/gnuradio/blocks/file_descriptor_source.h b/gr-blocks/include/gnuradio/blocks/file_descriptor_source.h
index 6292b6357b..d78b10a84f 100644
--- a/gr-blocks/include/gnuradio/blocks/file_descriptor_source.h
+++ b/gr-blocks/include/gnuradio/blocks/file_descriptor_source.h
@@ -46,7 +46,8 @@ namespace gr {
typedef boost::shared_ptr<file_descriptor_source> sptr;
/*!
- * Build a file descriptor source block.
+ * Build a file descriptor source block. The provided file descriptor will
+ * be closed when the sink is destroyed.
*
* \param itemsize item size of the incoming data stream.
* \param fd file descriptor (as an integer).
diff --git a/gr-blocks/include/gnuradio/blocks/float_to_uchar.h b/gr-blocks/include/gnuradio/blocks/float_to_uchar.h
index bdcc4e7205..26189ac981 100644
--- a/gr-blocks/include/gnuradio/blocks/float_to_uchar.h
+++ b/gr-blocks/include/gnuradio/blocks/float_to_uchar.h
@@ -36,7 +36,7 @@ namespace gr {
class BLOCKS_API float_to_uchar : virtual public sync_block
{
public:
-
+
// gr::blocks::float_to_uchar_ff::sptr
typedef boost::shared_ptr<float_to_uchar> sptr;
diff --git a/gr-blocks/include/gnuradio/blocks/integrate_XX.h.t b/gr-blocks/include/gnuradio/blocks/integrate_XX.h.t
index 343ab1ef6c..33707970bc 100644
--- a/gr-blocks/include/gnuradio/blocks/integrate_XX.h.t
+++ b/gr-blocks/include/gnuradio/blocks/integrate_XX.h.t
@@ -38,10 +38,10 @@ namespace gr {
class BLOCKS_API @NAME@ : virtual public sync_decimator
{
public:
-
+
// gr::blocks::@NAME@::sptr
typedef boost::shared_ptr<@NAME@> sptr;
-
+
static sptr make(int decim);
};
diff --git a/gr-blocks/include/gnuradio/blocks/interleaved_short_to_complex.h b/gr-blocks/include/gnuradio/blocks/interleaved_short_to_complex.h
index 39304e8088..fee4352b71 100644
--- a/gr-blocks/include/gnuradio/blocks/interleaved_short_to_complex.h
+++ b/gr-blocks/include/gnuradio/blocks/interleaved_short_to_complex.h
@@ -43,7 +43,7 @@ namespace gr {
* Build an interleaved short to complex block.
*/
static sptr make(bool vector_input=false, bool swap=false);
-
+
virtual void set_swap(bool swap)=0;
};
diff --git a/gr-blocks/include/gnuradio/blocks/keep_m_in_n.h b/gr-blocks/include/gnuradio/blocks/keep_m_in_n.h
index e6e7914847..b3b7a934db 100644
--- a/gr-blocks/include/gnuradio/blocks/keep_m_in_n.h
+++ b/gr-blocks/include/gnuradio/blocks/keep_m_in_n.h
@@ -36,7 +36,7 @@ namespace gr {
class BLOCKS_API keep_m_in_n : virtual public block
{
public:
-
+
// gr::blocks::keep_m_in_n::sptr
typedef boost::shared_ptr<keep_m_in_n> sptr;
diff --git a/gr-blocks/include/gnuradio/blocks/keep_one_in_n.h b/gr-blocks/include/gnuradio/blocks/keep_one_in_n.h
index d1e751aee5..85eeb974f6 100644
--- a/gr-blocks/include/gnuradio/blocks/keep_one_in_n.h
+++ b/gr-blocks/include/gnuradio/blocks/keep_one_in_n.h
@@ -36,7 +36,7 @@ namespace gr {
class BLOCKS_API keep_one_in_n : virtual public block
{
public:
-
+
// gr::blocks::keep_one_in_n::sptr
typedef boost::shared_ptr<keep_one_in_n> sptr;
diff --git a/gr-blocks/include/gnuradio/blocks/message_burst_source.h b/gr-blocks/include/gnuradio/blocks/message_burst_source.h
index 91d8b55145..b5c068dcd4 100644
--- a/gr-blocks/include/gnuradio/blocks/message_burst_source.h
+++ b/gr-blocks/include/gnuradio/blocks/message_burst_source.h
@@ -1,19 +1,19 @@
/* -*- c++ -*- */
/*
* Copyright 2012-2013 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,
diff --git a/gr-blocks/include/gnuradio/blocks/message_debug.h b/gr-blocks/include/gnuradio/blocks/message_debug.h
index ec32c050dd..c6c43f5644 100644
--- a/gr-blocks/include/gnuradio/blocks/message_debug.h
+++ b/gr-blocks/include/gnuradio/blocks/message_debug.h
@@ -54,14 +54,14 @@ namespace gr {
// gr::blocks::message_debug::sptr
typedef boost::shared_ptr<message_debug> sptr;
- /*!
+ /*!
* \brief Build the message debug block. It takes no parameters
* and has three message ports: print, store, and
* print_pdu.
*/
static sptr make();
- /*!
+ /*!
* \brief Reports the number of messages received by this block.
*/
virtual int num_messages() = 0;
diff --git a/gr-blocks/include/gnuradio/blocks/moving_average_XX.h.t b/gr-blocks/include/gnuradio/blocks/moving_average_XX.h.t
index 37472f70d7..da5968240c 100644
--- a/gr-blocks/include/gnuradio/blocks/moving_average_XX.h.t
+++ b/gr-blocks/include/gnuradio/blocks/moving_average_XX.h.t
@@ -37,7 +37,7 @@ namespace gr {
*/
class BLOCKS_API @NAME@ : virtual public sync_block
{
- public:
+ public:
// gr::blocks::@NAME@::sptr
typedef boost::shared_ptr<@NAME@> sptr;
diff --git a/gr-blocks/include/gnuradio/blocks/multiply_const_XX.h.t b/gr-blocks/include/gnuradio/blocks/multiply_const_XX.h.t
index d1bc76c3b3..9cb2823f46 100644
--- a/gr-blocks/include/gnuradio/blocks/multiply_const_XX.h.t
+++ b/gr-blocks/include/gnuradio/blocks/multiply_const_XX.h.t
@@ -39,16 +39,16 @@ namespace gr {
{
public:
-
+
// gr::blocks::@NAME@::sptr
typedef boost::shared_ptr<@NAME@> sptr;
-
+
/*!
* \brief Create an instance of @NAME@
* \param k multiplicative constant
*/
static sptr make(@O_TYPE@ k);
-
+
/*!
* \brief Return multiplicative constant
*/
diff --git a/gr-blocks/include/gnuradio/blocks/multiply_const_cc.h b/gr-blocks/include/gnuradio/blocks/multiply_const_cc.h
index 6641880142..ff72572da9 100644
--- a/gr-blocks/include/gnuradio/blocks/multiply_const_cc.h
+++ b/gr-blocks/include/gnuradio/blocks/multiply_const_cc.h
@@ -39,17 +39,17 @@ namespace gr {
{
public:
-
+
// gr::blocks::multiply_const_cc::sptr
typedef boost::shared_ptr<multiply_const_cc> sptr;
-
+
/*!
* \brief Create an instance of multiply_const_cc
* \param k complex multiplicative constant
* \param vlen Vector length of incoming stream
*/
static sptr make(gr_complex k, size_t vlen=1);
-
+
/*!
* \brief Return complex multiplicative constant
*/
diff --git a/gr-blocks/include/gnuradio/blocks/multiply_const_ff.h b/gr-blocks/include/gnuradio/blocks/multiply_const_ff.h
index 916d7a7463..5d93f04184 100644
--- a/gr-blocks/include/gnuradio/blocks/multiply_const_ff.h
+++ b/gr-blocks/include/gnuradio/blocks/multiply_const_ff.h
@@ -39,17 +39,17 @@ namespace gr {
{
public:
-
+
// gr::blocks::multiply_const_ff::sptr
typedef boost::shared_ptr<multiply_const_ff> sptr;
-
+
/*!
* \brief Create an instance of multiply_const_ff
* \param k real multiplicative constant
* \param vlen Vector length of incoming stream
*/
static sptr make(float k, size_t vlen=1);
-
+
/*!
* \brief Return real multiplicative constant
*/
diff --git a/gr-blocks/include/gnuradio/blocks/multiply_const_vXX.h.t b/gr-blocks/include/gnuradio/blocks/multiply_const_vXX.h.t
index ed180dba33..608c52f78a 100644
--- a/gr-blocks/include/gnuradio/blocks/multiply_const_vXX.h.t
+++ b/gr-blocks/include/gnuradio/blocks/multiply_const_vXX.h.t
@@ -39,16 +39,16 @@ namespace gr {
{
public:
-
+
// gr::blocks::@NAME@::sptr
typedef boost::shared_ptr<@NAME@> sptr;
-
+
/*!
* \brief Create an instance of @NAME@
* \param k multiplicative constant vector
*/
static sptr make(std::vector<@O_TYPE@> k);
-
+
/*!
* \brief Return multiplicative constant vector
*/
diff --git a/gr-blocks/include/gnuradio/blocks/nlog10_ff.h b/gr-blocks/include/gnuradio/blocks/nlog10_ff.h
index 0203c5e0a2..e5f7d7bc2a 100644
--- a/gr-blocks/include/gnuradio/blocks/nlog10_ff.h
+++ b/gr-blocks/include/gnuradio/blocks/nlog10_ff.h
@@ -36,7 +36,7 @@ namespace gr {
class BLOCKS_API nlog10_ff : virtual public sync_block
{
public:
-
+
// gr::blocks::nlog10_ff::sptr
typedef boost::shared_ptr<nlog10_ff> sptr;
diff --git a/gr-blocks/include/gnuradio/blocks/not_XX.h.t b/gr-blocks/include/gnuradio/blocks/not_XX.h.t
index 2c32237ce5..1164c1f855 100644
--- a/gr-blocks/include/gnuradio/blocks/not_XX.h.t
+++ b/gr-blocks/include/gnuradio/blocks/not_XX.h.t
@@ -40,7 +40,7 @@ namespace gr {
class BLOCKS_API @NAME@ : virtual public sync_block
{
public:
-
+
// gr::blocks::@NAME@::sptr
typedef boost::shared_ptr<@NAME@> sptr;
diff --git a/gr-blocks/include/gnuradio/blocks/or_XX.h.t b/gr-blocks/include/gnuradio/blocks/or_XX.h.t
index d485f04962..fbc691c5ed 100644
--- a/gr-blocks/include/gnuradio/blocks/or_XX.h.t
+++ b/gr-blocks/include/gnuradio/blocks/or_XX.h.t
@@ -40,7 +40,7 @@ namespace gr {
class BLOCKS_API @NAME@ : virtual public sync_block
{
public:
-
+
// gr::blocks::@NAME@::sptr
typedef boost::shared_ptr<@NAME@> sptr;
diff --git a/gr-blocks/include/gnuradio/blocks/pack_k_bits_bb.h b/gr-blocks/include/gnuradio/blocks/pack_k_bits_bb.h
index cd057725c1..af77aec18f 100644
--- a/gr-blocks/include/gnuradio/blocks/pack_k_bits_bb.h
+++ b/gr-blocks/include/gnuradio/blocks/pack_k_bits_bb.h
@@ -1,19 +1,19 @@
/* -*- c++ -*- */
/*
* Copyright 2012-2013 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,
@@ -48,7 +48,7 @@ namespace gr {
public:
// gr::blocks::pack_k_bits_bb::sptr
typedef boost::shared_ptr<pack_k_bits_bb> sptr;
-
+
/*!
* \brief Make a pack_k_bits block.
* \param k number of bits to be packed.
diff --git a/gr-blocks/include/gnuradio/blocks/peak_detector_XX.h.t b/gr-blocks/include/gnuradio/blocks/peak_detector_XX.h.t
index 6bf14320a0..bc743571fc 100644
--- a/gr-blocks/include/gnuradio/blocks/peak_detector_XX.h.t
+++ b/gr-blocks/include/gnuradio/blocks/peak_detector_XX.h.t
@@ -85,7 +85,7 @@ namespace gr {
* \param look new look-ahead factor
*/
virtual void set_look_ahead(int look) = 0;
-
+
/*! \brief Set the running average alpha
* \param alpha new alpha for running average
*/
diff --git a/gr-blocks/include/gnuradio/blocks/probe_rate.h b/gr-blocks/include/gnuradio/blocks/probe_rate.h
index 90dfa67cdf..a941d10279 100644
--- a/gr-blocks/include/gnuradio/blocks/probe_rate.h
+++ b/gr-blocks/include/gnuradio/blocks/probe_rate.h
@@ -48,7 +48,7 @@ namespace gr {
static sptr make(size_t itemsize, double update_rate_ms = 500.0, double alpha = 0.0001);
virtual void set_alpha(double alpha) = 0;
-
+
virtual double rate() = 0;
virtual bool start() = 0;
diff --git a/gr-blocks/include/gnuradio/blocks/probe_signal_X.h.t b/gr-blocks/include/gnuradio/blocks/probe_signal_X.h.t
index 5398411a73..5b45fd2864 100644
--- a/gr-blocks/include/gnuradio/blocks/probe_signal_X.h.t
+++ b/gr-blocks/include/gnuradio/blocks/probe_signal_X.h.t
@@ -40,7 +40,7 @@ namespace gr {
public:
// gr::blocks::@NAME@::sptr
typedef boost::shared_ptr<@NAME@> sptr;
-
+
static sptr make();
virtual @TYPE@ level() const = 0;
diff --git a/gr-blocks/include/gnuradio/blocks/probe_signal_vX.h.t b/gr-blocks/include/gnuradio/blocks/probe_signal_vX.h.t
index 05e0137953..9f24731663 100644
--- a/gr-blocks/include/gnuradio/blocks/probe_signal_vX.h.t
+++ b/gr-blocks/include/gnuradio/blocks/probe_signal_vX.h.t
@@ -42,7 +42,7 @@ namespace gr {
public:
// gr::blocks::@NAME@::sptr
typedef boost::shared_ptr<@NAME@> sptr;
-
+
static sptr make(size_t size);
virtual std::vector<@TYPE@> level() const = 0;
diff --git a/gr-blocks/include/gnuradio/blocks/repeat.h b/gr-blocks/include/gnuradio/blocks/repeat.h
index 68f92fcd8d..622b066017 100644
--- a/gr-blocks/include/gnuradio/blocks/repeat.h
+++ b/gr-blocks/include/gnuradio/blocks/repeat.h
@@ -30,7 +30,7 @@ namespace gr {
namespace blocks {
/*!
- * \brief repeat each input \p repeat times
+ * \brief repeat each input \p repeat times
* \ingroup stream_operators_blk
*/
class BLOCKS_API repeat : virtual public sync_interpolator
diff --git a/gr-blocks/include/gnuradio/blocks/rotator.h b/gr-blocks/include/gnuradio/blocks/rotator.h
index 9c3d9b6262..66843fde07 100644
--- a/gr-blocks/include/gnuradio/blocks/rotator.h
+++ b/gr-blocks/include/gnuradio/blocks/rotator.h
@@ -30,7 +30,7 @@
namespace gr {
namespace blocks {
- class rotator
+ class rotator
{
private:
gr_complex d_phase;
diff --git a/gr-blocks/include/gnuradio/blocks/sample_and_hold_XX.h.t b/gr-blocks/include/gnuradio/blocks/sample_and_hold_XX.h.t
index 2f15b2490f..a87ae0f423 100644
--- a/gr-blocks/include/gnuradio/blocks/sample_and_hold_XX.h.t
+++ b/gr-blocks/include/gnuradio/blocks/sample_and_hold_XX.h.t
@@ -44,7 +44,7 @@ namespace gr {
public:
// gr::blocks::@NAME@::sptr
typedef boost::shared_ptr<@NAME@> sptr;
-
+
static sptr make();
};
diff --git a/gr-blocks/include/gnuradio/blocks/short_to_char.h b/gr-blocks/include/gnuradio/blocks/short_to_char.h
index 22a157d341..7e72ee34a3 100644
--- a/gr-blocks/include/gnuradio/blocks/short_to_char.h
+++ b/gr-blocks/include/gnuradio/blocks/short_to_char.h
@@ -33,11 +33,15 @@ namespace gr {
* \brief Convert stream of shorts to a stream of chars.
*
* This block strips off the least significant byte from the
- * short value.
- *
+ * short value.
+ *
* [0x00ff, 0x0ff0, 0xff00] => [0x00, 0x0f, 0xff]
*
* \ingroup type_converters_blk
+ *
+ * \details
+ * Converts \p vlen length vectors of input short samples to chars,
+ * dividing each element by 256.
*/
class BLOCKS_API short_to_char : virtual public sync_block
{
diff --git a/gr-blocks/include/gnuradio/blocks/stream_mux.h b/gr-blocks/include/gnuradio/blocks/stream_mux.h
index 7830b5f70f..941c186b3f 100644
--- a/gr-blocks/include/gnuradio/blocks/stream_mux.h
+++ b/gr-blocks/include/gnuradio/blocks/stream_mux.h
@@ -45,7 +45,7 @@ namespace gr {
class BLOCKS_API stream_mux : virtual public block
{
public:
-
+
// gr::blocks::stream_mux::sptr
typedef boost::shared_ptr<stream_mux> sptr;
diff --git a/gr-blocks/include/gnuradio/blocks/stretch_ff.h b/gr-blocks/include/gnuradio/blocks/stretch_ff.h
index 8552d0dd18..d464ab34a1 100644
--- a/gr-blocks/include/gnuradio/blocks/stretch_ff.h
+++ b/gr-blocks/include/gnuradio/blocks/stretch_ff.h
@@ -28,7 +28,7 @@
namespace gr {
namespace blocks {
-
+
/*!
* \brief adjust y-range of an input vector by mapping to range
* (max-of-input, stipulated-min). Primarily for spectral
@@ -40,7 +40,7 @@ namespace gr {
public:
// gr::blocks::stretch_ff::sptr
typedef boost::shared_ptr<stretch_ff> sptr;
-
+
/*!
* \brief Make a stretch block.
*
diff --git a/gr-blocks/include/gnuradio/blocks/sub_XX.h.t b/gr-blocks/include/gnuradio/blocks/sub_XX.h.t
index ecc55fc865..44da6e16c4 100644
--- a/gr-blocks/include/gnuradio/blocks/sub_XX.h.t
+++ b/gr-blocks/include/gnuradio/blocks/sub_XX.h.t
@@ -41,7 +41,7 @@ namespace gr {
class BLOCKS_API @NAME@ : virtual public sync_block
{
public:
-
+
// gr::blocks::@NAME@::sptr
typedef boost::shared_ptr<@NAME@> sptr;
diff --git a/gr-blocks/include/gnuradio/blocks/tagged_file_sink.h b/gr-blocks/include/gnuradio/blocks/tagged_file_sink.h
index 31046d4170..61c2ad8e60 100644
--- a/gr-blocks/include/gnuradio/blocks/tagged_file_sink.h
+++ b/gr-blocks/include/gnuradio/blocks/tagged_file_sink.h
@@ -50,7 +50,7 @@ namespace gr {
public:
// gr::blocks::tagged_file_sink::sptr
typedef boost::shared_ptr<tagged_file_sink> sptr;
-
+
/*!
* \brief Build a tagged_file_sink block.
*
diff --git a/gr-blocks/include/gnuradio/blocks/tagged_stream_multiply_length.h b/gr-blocks/include/gnuradio/blocks/tagged_stream_multiply_length.h
index de46516f24..234b42c041 100644
--- a/gr-blocks/include/gnuradio/blocks/tagged_stream_multiply_length.h
+++ b/gr-blocks/include/gnuradio/blocks/tagged_stream_multiply_length.h
@@ -1,18 +1,18 @@
/* -*- c++ -*- */
/* Copyright 2013 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,
diff --git a/gr-blocks/include/gnuradio/blocks/tagged_stream_mux.h b/gr-blocks/include/gnuradio/blocks/tagged_stream_mux.h
index 19879b67a9..b7f5685ae1 100644
--- a/gr-blocks/include/gnuradio/blocks/tagged_stream_mux.h
+++ b/gr-blocks/include/gnuradio/blocks/tagged_stream_mux.h
@@ -1,18 +1,18 @@
/* -*- c++ -*- */
/* Copyright 2012 Free Software Foundation, Inc.
- *
+ *
* This file is part of GNU Radio
- *
+ *
* GNU Radio is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
* any later version.
- *
+ *
* GNU Radio is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with GNU Radio; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street,
diff --git a/gr-blocks/include/gnuradio/blocks/tsb_vector_sink_X.h.t b/gr-blocks/include/gnuradio/blocks/tsb_vector_sink_X.h.t
index ec7c7d4c3f..03cc37afd2 100644
--- a/gr-blocks/include/gnuradio/blocks/tsb_vector_sink_X.h.t
+++ b/gr-blocks/include/gnuradio/blocks/tsb_vector_sink_X.h.t
@@ -1,19 +1,19 @@
/* -*- c++ -*- */
-/*
+/*
* Copyright 2014 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,
diff --git a/gr-blocks/include/gnuradio/blocks/unpack_k_bits_bb.h b/gr-blocks/include/gnuradio/blocks/unpack_k_bits_bb.h
index 09d7ae912c..73e3ca2ac4 100644
--- a/gr-blocks/include/gnuradio/blocks/unpack_k_bits_bb.h
+++ b/gr-blocks/include/gnuradio/blocks/unpack_k_bits_bb.h
@@ -28,7 +28,7 @@
namespace gr {
namespace blocks {
-
+
/*!
* \brief Converts a byte with k relevent bits to k output bytes with 1 bit in the LSB.
*
@@ -46,7 +46,7 @@ namespace gr {
public:
// gr::blocks::unpack_k_bits_bb::sptr
typedef boost::shared_ptr<unpack_k_bits_bb> sptr;
-
+
/*!
* \brief Make an unpack_k_bits block.
* \param k number of bits to unpack.
diff --git a/gr-blocks/include/gnuradio/blocks/vector_insert_X.h.t b/gr-blocks/include/gnuradio/blocks/vector_insert_X.h.t
index 8b26b0b9b0..73330b175b 100644
--- a/gr-blocks/include/gnuradio/blocks/vector_insert_X.h.t
+++ b/gr-blocks/include/gnuradio/blocks/vector_insert_X.h.t
@@ -1,19 +1,19 @@
/* -*- c++ -*- */
/*
* Copyright 2012-2013 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,
@@ -35,7 +35,7 @@ namespace gr {
* \brief source of @TYPE@'s that gets its data from a vector
* \ingroup stream_operators_blk
*/
- class BLOCKS_API @NAME@ : virtual public block
+ class BLOCKS_API @NAME@ : virtual public block
{
public:
// gr::blocks::@NAME@::sptr
diff --git a/gr-blocks/include/gnuradio/blocks/wavfile.h b/gr-blocks/include/gnuradio/blocks/wavfile.h
index f0c8a4c1e7..9440105e76 100644
--- a/gr-blocks/include/gnuradio/blocks/wavfile.h
+++ b/gr-blocks/include/gnuradio/blocks/wavfile.h
@@ -61,7 +61,7 @@ namespace gr {
short int
wav_read_sample(FILE *fp, int bytes_per_sample);
-
+
/*!
* \brief Write a valid RIFF file header
*
diff --git a/gr-blocks/include/gnuradio/blocks/xor_XX.h.t b/gr-blocks/include/gnuradio/blocks/xor_XX.h.t
index fa32192e76..e58866f03e 100644
--- a/gr-blocks/include/gnuradio/blocks/xor_XX.h.t
+++ b/gr-blocks/include/gnuradio/blocks/xor_XX.h.t
@@ -40,7 +40,7 @@ namespace gr {
class BLOCKS_API @NAME@ : virtual public sync_block
{
public:
-
+
// gr::blocks::@NAME@::sptr
typedef boost::shared_ptr<@NAME@> sptr;
diff --git a/gr-blocks/lib/CMakeLists.txt b/gr-blocks/lib/CMakeLists.txt
index d1ca0402d5..7702e4bf1d 100644
--- a/gr-blocks/lib/CMakeLists.txt
+++ b/gr-blocks/lib/CMakeLists.txt
@@ -303,6 +303,21 @@ add_dependencies(gnuradio-blocks blocks_generated_includes)
target_link_libraries(gnuradio-blocks ${blocks_libs})
GR_LIBRARY_FOO(gnuradio-blocks RUNTIME_COMPONENT "blocks_runtime" DEVEL_COMPONENT "blocks_devel")
+if(ENABLE_STATIC_LIBS)
+ add_library(gnuradio-blocks_static STATIC ${gr_blocks_sources})
+
+ add_dependencies(gnuradio-blocks_static blocks_generated_includes)
+
+ if(NOT WIN32)
+ set_target_properties(gnuradio-blocks_static
+ PROPERTIES OUTPUT_NAME gnuradio-blocks)
+ endif(NOT WIN32)
+
+ install(TARGETS gnuradio-blocks_static
+ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT "blocks_devel" # .lib file
+ )
+endif(ENABLE_STATIC_LIBS)
+
########################################################################
# QA C++ Code for gr-blocks
########################################################################
diff --git a/gr-blocks/lib/add_XX_impl.cc.t b/gr-blocks/lib/add_XX_impl.cc.t
index 281dcea050..a88398d89b 100644
--- a/gr-blocks/lib/add_XX_impl.cc.t
+++ b/gr-blocks/lib/add_XX_impl.cc.t
@@ -51,14 +51,14 @@ namespace gr {
gr_vector_void_star &output_items)
{
@O_TYPE@ *optr = (@O_TYPE@ *) output_items[0];
-
+
int ninputs = input_items.size ();
-
+
for (size_t i = 0; i < noutput_items*d_vlen; i++){
@I_TYPE@ acc = ((@I_TYPE@ *) input_items[0])[i];
for (int j = 1; j < ninputs; j++)
acc += ((@I_TYPE@ *) input_items[j])[i];
-
+
*optr++ = (@O_TYPE@) acc;
}
diff --git a/gr-blocks/lib/add_const_XX_impl.cc.t b/gr-blocks/lib/add_const_XX_impl.cc.t
index 87b22452dc..fe68216923 100644
--- a/gr-blocks/lib/add_const_XX_impl.cc.t
+++ b/gr-blocks/lib/add_const_XX_impl.cc.t
@@ -52,9 +52,9 @@ namespace gr {
{
@I_TYPE@ *iptr = (@I_TYPE@ *) input_items[0];
@O_TYPE@ *optr = (@O_TYPE@ *) output_items[0];
-
+
int size = noutput_items;
-
+
while (size >= 8){
*optr++ = *iptr++ + d_k;
*optr++ = *iptr++ + d_k;
@@ -69,7 +69,7 @@ namespace gr {
while (size-- > 0)
*optr++ = *iptr++ + d_k;
-
+
return noutput_items;
}
diff --git a/gr-blocks/lib/add_const_vXX_impl.cc.t b/gr-blocks/lib/add_const_vXX_impl.cc.t
index 3a7174a4ef..28471ddeb1 100644
--- a/gr-blocks/lib/add_const_vXX_impl.cc.t
+++ b/gr-blocks/lib/add_const_vXX_impl.cc.t
@@ -52,13 +52,13 @@ namespace gr {
{
@I_TYPE@ *iptr = (@I_TYPE@ *)input_items[0];
@O_TYPE@ *optr = (@O_TYPE@ *)output_items[0];
-
+
int nitems_per_block = output_signature()->sizeof_stream_item(0)/sizeof(@I_TYPE@);
-
+
for (int i = 0; i < noutput_items; i++)
for (int j = 0; j < nitems_per_block; j++)
*optr++ = *iptr++ + d_k[j];
-
+
return noutput_items;
}
diff --git a/gr-blocks/lib/add_ff_impl.cc b/gr-blocks/lib/add_ff_impl.cc
index ca2fbe659c..e99b121816 100644
--- a/gr-blocks/lib/add_ff_impl.cc
+++ b/gr-blocks/lib/add_ff_impl.cc
@@ -54,7 +54,7 @@ namespace gr {
{
float *out = (float *) output_items[0];
int noi = d_vlen*noutput_items;
-
+
memcpy(out, input_items[0], noi*sizeof(float));
for(size_t i = 1; i < input_items.size(); i++)
volk_32f_x2_add_32f(out, out, (const float*)input_items[i], noi);
diff --git a/gr-blocks/lib/add_ff_impl.h b/gr-blocks/lib/add_ff_impl.h
index 237ca37217..4683688399 100644
--- a/gr-blocks/lib/add_ff_impl.h
+++ b/gr-blocks/lib/add_ff_impl.h
@@ -42,6 +42,6 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-
+
#endif /* INCLUDED_BLOCKS_ADD_FF_IMPL_H */
diff --git a/gr-blocks/lib/and_XX_impl.cc.t b/gr-blocks/lib/and_XX_impl.cc.t
index 04d6dfe862..c2aa31c50c 100644
--- a/gr-blocks/lib/and_XX_impl.cc.t
+++ b/gr-blocks/lib/and_XX_impl.cc.t
@@ -51,14 +51,14 @@ namespace gr {
gr_vector_void_star &output_items)
{
@O_TYPE@ *optr = (@O_TYPE@ *) output_items[0];
-
+
int ninputs = input_items.size ();
-
+
for (size_t i = 0; i < noutput_items*d_vlen; i++){
@I_TYPE@ acc = ((@I_TYPE@ *) input_items[0])[i];
for (int j = 1; j < ninputs; j++)
acc &= ((@I_TYPE@ *) input_items[j])[i];
-
+
*optr++ = (@O_TYPE@) acc;
}
diff --git a/gr-blocks/lib/and_const_XX_impl.cc.t b/gr-blocks/lib/and_const_XX_impl.cc.t
index 8eba4ed588..975dd9334a 100644
--- a/gr-blocks/lib/and_const_XX_impl.cc.t
+++ b/gr-blocks/lib/and_const_XX_impl.cc.t
@@ -52,9 +52,9 @@ namespace gr {
{
@I_TYPE@ *iptr = (@I_TYPE@ *) input_items[0];
@O_TYPE@ *optr = (@O_TYPE@ *) output_items[0];
-
+
int size = noutput_items;
-
+
while (size >= 8){
*optr++ = *iptr++ & d_k;
*optr++ = *iptr++ & d_k;
@@ -69,7 +69,7 @@ namespace gr {
while (size-- > 0)
*optr++ = *iptr++ & d_k;
-
+
return noutput_items;
}
diff --git a/gr-blocks/lib/annotator_raw_impl.cc b/gr-blocks/lib/annotator_raw_impl.cc
index 499168c275..ea763c7658 100644
--- a/gr-blocks/lib/annotator_raw_impl.cc
+++ b/gr-blocks/lib/annotator_raw_impl.cc
@@ -1,19 +1,19 @@
/* -*- c++ -*- */
/*
* Copyright 2010,2013 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,
@@ -91,14 +91,14 @@ namespace gr {
uint64_t start_N = nitems_read(0);
uint64_t end_N = start_N + (uint64_t)(noutput_items);
-
+
// locate queued tags that fall in this range and insert them when appropriate
std::vector<tag_t>::iterator i = d_queued_tags.begin();
while( i != d_queued_tags.end() ) {
if( (*i).offset >= start_N && (*i).offset < end_N) {
add_item_tag(0, (*i).offset,(*i).key, (*i).value, (*i).srcid);
i = d_queued_tags.erase(i);
- }
+ }
else {
break;
}
diff --git a/gr-blocks/lib/char_to_float_impl.cc b/gr-blocks/lib/char_to_float_impl.cc
index de6ee5ba5a..f6fb990981 100644
--- a/gr-blocks/lib/char_to_float_impl.cc
+++ b/gr-blocks/lib/char_to_float_impl.cc
@@ -57,7 +57,7 @@ namespace gr {
// Note: the unaligned benchmarked much faster than the aligned
volk_8i_s32f_convert_32f_u(out, in, d_scale, d_vlen*noutput_items);
-
+
return noutput_items;
}
diff --git a/gr-blocks/lib/char_to_float_impl.h b/gr-blocks/lib/char_to_float_impl.h
index f5677f86bd..4d056850b0 100644
--- a/gr-blocks/lib/char_to_float_impl.h
+++ b/gr-blocks/lib/char_to_float_impl.h
@@ -46,6 +46,6 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-
+
#endif /* INCLUDED_CHAR_TO_FLOAT_IMPL_H */
diff --git a/gr-blocks/lib/char_to_short_impl.h b/gr-blocks/lib/char_to_short_impl.h
index 1009defedc..ad13fd1918 100644
--- a/gr-blocks/lib/char_to_short_impl.h
+++ b/gr-blocks/lib/char_to_short_impl.h
@@ -42,6 +42,6 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-
+
#endif /* INCLUDED_CHAR_TO_SHORT_IMPL_H */
diff --git a/gr-blocks/lib/complex_to_arg_impl.cc b/gr-blocks/lib/complex_to_arg_impl.cc
index 38539c8004..ab92c08b3b 100644
--- a/gr-blocks/lib/complex_to_arg_impl.cc
+++ b/gr-blocks/lib/complex_to_arg_impl.cc
@@ -56,13 +56,13 @@ namespace gr {
const gr_complex *in = (const gr_complex *) input_items[0];
float *out = (float *) output_items[0];
int noi = noutput_items * d_vlen;
-
+
// The fast_atan2f is faster than Volk
for (int i = 0; i < noi; i++){
// out[i] = std::arg (in[i]);
out[i] = gr::fast_atan2f(in[i]);
}
-
+
return noutput_items;
}
diff --git a/gr-blocks/lib/complex_to_arg_impl.h b/gr-blocks/lib/complex_to_arg_impl.h
index cc1863b2d8..923ef4ba8e 100644
--- a/gr-blocks/lib/complex_to_arg_impl.h
+++ b/gr-blocks/lib/complex_to_arg_impl.h
@@ -42,6 +42,6 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-
+
#endif /* INCLUDED_COMPLEX_TO_ARG_IMPL_H */
diff --git a/gr-blocks/lib/complex_to_float_impl.cc b/gr-blocks/lib/complex_to_float_impl.cc
index ee295dea12..bfa75bd35d 100644
--- a/gr-blocks/lib/complex_to_float_impl.cc
+++ b/gr-blocks/lib/complex_to_float_impl.cc
@@ -69,7 +69,7 @@ namespace gr {
default:
abort ();
-
+
}
return noutput_items;
diff --git a/gr-blocks/lib/complex_to_float_impl.h b/gr-blocks/lib/complex_to_float_impl.h
index d4fdcb7a9b..81ac801e71 100644
--- a/gr-blocks/lib/complex_to_float_impl.h
+++ b/gr-blocks/lib/complex_to_float_impl.h
@@ -42,6 +42,6 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-
+
#endif /* INCLUDED_COMPLEX_TO_FLOAT_IMPL_H */
diff --git a/gr-blocks/lib/complex_to_imag_impl.cc b/gr-blocks/lib/complex_to_imag_impl.cc
index b58b59bb3b..8e47201694 100644
--- a/gr-blocks/lib/complex_to_imag_impl.cc
+++ b/gr-blocks/lib/complex_to_imag_impl.cc
@@ -57,7 +57,7 @@ namespace gr {
int noi = noutput_items * d_vlen;
volk_32fc_deinterleave_imag_32f(out, in, noi);
-
+
return noutput_items;
}
diff --git a/gr-blocks/lib/complex_to_imag_impl.h b/gr-blocks/lib/complex_to_imag_impl.h
index 6758b0f6c5..f624c97d82 100644
--- a/gr-blocks/lib/complex_to_imag_impl.h
+++ b/gr-blocks/lib/complex_to_imag_impl.h
@@ -42,6 +42,6 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-
+
#endif /* INCLUDED_COMPLEX_TO_IMAG_IMPL_H */
diff --git a/gr-blocks/lib/complex_to_interleaved_short_impl.cc b/gr-blocks/lib/complex_to_interleaved_short_impl.cc
index 7b8ac90c8b..1bc79989a9 100644
--- a/gr-blocks/lib/complex_to_interleaved_short_impl.cc
+++ b/gr-blocks/lib/complex_to_interleaved_short_impl.cc
@@ -51,13 +51,13 @@ namespace gr {
{
const gr_complex *in = (const gr_complex *) input_items[0];
short *out = (short *) output_items[0];
-
+
int npairs = (d_vector?noutput_items:noutput_items/2);
for (int i = 0; i < npairs; i++){
*out++ = (short) lrintf(in[i].real()); // FIXME saturate?
*out++ = (short) lrintf(in[i].imag());
}
-
+
return noutput_items;
}
diff --git a/gr-blocks/lib/complex_to_interleaved_short_impl.h b/gr-blocks/lib/complex_to_interleaved_short_impl.h
index d166c56adc..64835f0eec 100644
--- a/gr-blocks/lib/complex_to_interleaved_short_impl.h
+++ b/gr-blocks/lib/complex_to_interleaved_short_impl.h
@@ -42,6 +42,6 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-
+
#endif /* INCLUDED_COMPLEX_TO_INTERLEAVED_SHORT_IMPL_H */
diff --git a/gr-blocks/lib/complex_to_mag_impl.cc b/gr-blocks/lib/complex_to_mag_impl.cc
index 52a193f4d1..b9574a92ce 100644
--- a/gr-blocks/lib/complex_to_mag_impl.cc
+++ b/gr-blocks/lib/complex_to_mag_impl.cc
@@ -58,7 +58,7 @@ namespace gr {
// turned out to be faster than aligned/unaligned switching
volk_32fc_magnitude_32f_u(out, in, noi);
-
+
return noutput_items;
}
diff --git a/gr-blocks/lib/complex_to_mag_impl.h b/gr-blocks/lib/complex_to_mag_impl.h
index 54f12ac312..88f6f2843a 100644
--- a/gr-blocks/lib/complex_to_mag_impl.h
+++ b/gr-blocks/lib/complex_to_mag_impl.h
@@ -42,6 +42,6 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-
+
#endif /* INCLUDED_COMPLEX_TO_MAG_IMPL_H */
diff --git a/gr-blocks/lib/complex_to_mag_squared_impl.cc b/gr-blocks/lib/complex_to_mag_squared_impl.cc
index 5e3fedc87c..0e41ae0d4c 100644
--- a/gr-blocks/lib/complex_to_mag_squared_impl.cc
+++ b/gr-blocks/lib/complex_to_mag_squared_impl.cc
@@ -57,7 +57,7 @@ namespace gr {
int noi = noutput_items * d_vlen;
volk_32fc_magnitude_squared_32f(out, in, noi);
-
+
return noutput_items;
}
diff --git a/gr-blocks/lib/complex_to_mag_squared_impl.h b/gr-blocks/lib/complex_to_mag_squared_impl.h
index 0cf22c8d9b..2413b3bbdf 100644
--- a/gr-blocks/lib/complex_to_mag_squared_impl.h
+++ b/gr-blocks/lib/complex_to_mag_squared_impl.h
@@ -42,6 +42,6 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-
+
#endif /* INCLUDED_COMPLEX_TO_MAG_SQUARED_IMPL_H */
diff --git a/gr-blocks/lib/complex_to_real_impl.cc b/gr-blocks/lib/complex_to_real_impl.cc
index 36c4b203d8..bab139e79c 100644
--- a/gr-blocks/lib/complex_to_real_impl.cc
+++ b/gr-blocks/lib/complex_to_real_impl.cc
@@ -57,7 +57,7 @@ namespace gr {
int noi = noutput_items * d_vlen;
volk_32fc_deinterleave_real_32f(out, in, noi);
-
+
return noutput_items;
}
diff --git a/gr-blocks/lib/complex_to_real_impl.h b/gr-blocks/lib/complex_to_real_impl.h
index 233f90c93d..e3c4dbaa19 100644
--- a/gr-blocks/lib/complex_to_real_impl.h
+++ b/gr-blocks/lib/complex_to_real_impl.h
@@ -42,6 +42,6 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-
+
#endif /* INCLUDED_COMPLEX_TO_REAL_IMPL_H */
diff --git a/gr-blocks/lib/conjugate_cc_impl.cc b/gr-blocks/lib/conjugate_cc_impl.cc
index 55ff30aa5d..d16f9eb421 100644
--- a/gr-blocks/lib/conjugate_cc_impl.cc
+++ b/gr-blocks/lib/conjugate_cc_impl.cc
@@ -53,9 +53,9 @@ namespace gr {
{
gr_complex *iptr = (gr_complex *) input_items[0];
gr_complex *optr = (gr_complex *) output_items[0];
-
+
volk_32fc_conjugate_32fc(optr, iptr, noutput_items);
-
+
return noutput_items;
}
diff --git a/gr-blocks/lib/ctrlport_probe2_b_impl.cc b/gr-blocks/lib/ctrlport_probe2_b_impl.cc
index 74c2980a7a..e6e2570ea6 100644
--- a/gr-blocks/lib/ctrlport_probe2_b_impl.cc
+++ b/gr-blocks/lib/ctrlport_probe2_b_impl.cc
@@ -62,7 +62,7 @@ namespace gr {
for(unsigned i = 0; i < ninputs; i++)
ninput_items_required[i] = d_len;
}
-
+
// boost::shared_mutex mutex_buffer;
// mutable boost::mutex mutex_notify;
// boost::condition_variable condition_buffer_ready;
@@ -121,14 +121,14 @@ namespace gr {
for(int i = 0; i < num_copy; i++) {
d_buffer.push_back(in[i]);
}
-
+
// notify the waiting get() if we fill up the buffer
if(d_buffer.size() == d_len) {
condition_buffer_ready.notify_one();
}
}
mutex_buffer.unlock();
-
+
return noutput_items;
}
@@ -140,7 +140,7 @@ namespace gr {
d_rpc_vars.push_back(
rpcbasic_sptr(new rpcbasic_register_get<ctrlport_probe2_b, std::vector<signed char> >(
alias(), d_id.c_str(), &ctrlport_probe2_b::get,
- pmt::mp(-128), pmt::mp(127), pmt::mp(0),
+ pmt::mp(-128), pmt::mp(127), pmt::mp(0),
"volts", d_desc.c_str(), RPC_PRIVLVL_MIN,
d_disp_mask)));
diff --git a/gr-blocks/lib/ctrlport_probe2_c_impl.cc b/gr-blocks/lib/ctrlport_probe2_c_impl.cc
index 3e324b0d00..aa038c0765 100644
--- a/gr-blocks/lib/ctrlport_probe2_c_impl.cc
+++ b/gr-blocks/lib/ctrlport_probe2_c_impl.cc
@@ -63,7 +63,7 @@ namespace gr {
for(unsigned i = 0; i < ninputs; i++)
ninput_items_required[i] = d_len;
}
-
+
// boost::shared_mutex mutex_buffer;
// mutable boost::mutex mutex_notify;
// boost::condition_variable condition_buffer_ready;
@@ -122,14 +122,14 @@ namespace gr {
for(int i = 0; i < num_copy; i++) {
d_buffer.push_back(in[i]);
}
-
+
// notify the waiting get() if we fill up the buffer
if(d_buffer.size() == d_len) {
condition_buffer_ready.notify_one();
}
}
mutex_buffer.unlock();
-
+
return noutput_items;
}
@@ -141,7 +141,7 @@ namespace gr {
d_rpc_vars.push_back(
rpcbasic_sptr(new rpcbasic_register_get<ctrlport_probe2_c, std::vector<std::complex<float> > >(
alias(), d_id.c_str(), &ctrlport_probe2_c::get,
- pmt::mp(-2), pmt::mp(2), pmt::mp(0),
+ pmt::mp(-2), pmt::mp(2), pmt::mp(0),
"volts", d_desc.c_str(), RPC_PRIVLVL_MIN,
d_disp_mask | DISPOPTCPLX)));
diff --git a/gr-blocks/lib/ctrlport_probe2_f_impl.cc b/gr-blocks/lib/ctrlport_probe2_f_impl.cc
index 3c723f8834..b53b2dc3cb 100644
--- a/gr-blocks/lib/ctrlport_probe2_f_impl.cc
+++ b/gr-blocks/lib/ctrlport_probe2_f_impl.cc
@@ -61,7 +61,7 @@ namespace gr {
for(unsigned i = 0; i < ninputs; i++)
ninput_items_required[i] = d_len;
}
-
+
// boost::shared_mutex mutex_buffer;
// mutable boost::mutex mutex_notify;
// boost::condition_variable condition_buffer_ready;
@@ -120,14 +120,14 @@ namespace gr {
for(int i = 0; i < num_copy; i++) {
d_buffer.push_back(in[i]);
}
-
+
// notify the waiting get() if we fill up the buffer
if(d_buffer.size() == d_len) {
condition_buffer_ready.notify_one();
}
}
mutex_buffer.unlock();
-
+
return noutput_items;
}
@@ -142,7 +142,7 @@ namespace gr {
pmt::mp(-2.0f), pmt::mp(2.0f), pmt::mp(0.0f),
// pmt::make_f32vector(1,-2),
// pmt::make_f32vector(1,2),
-// pmt::make_f32vector(1,0),
+// pmt::make_f32vector(1,0),
"volts", d_desc.c_str(), RPC_PRIVLVL_MIN,
d_disp_mask)));
diff --git a/gr-blocks/lib/ctrlport_probe2_i_impl.cc b/gr-blocks/lib/ctrlport_probe2_i_impl.cc
index be7ae4d9d3..77dca2ad0d 100644
--- a/gr-blocks/lib/ctrlport_probe2_i_impl.cc
+++ b/gr-blocks/lib/ctrlport_probe2_i_impl.cc
@@ -63,7 +63,7 @@ namespace gr {
for(unsigned i = 0; i < ninputs; i++)
ninput_items_required[i] = d_len;
}
-
+
// boost::shared_mutex mutex_buffer;
// mutable boost::mutex mutex_notify;
// boost::condition_variable condition_buffer_ready;
@@ -122,14 +122,14 @@ namespace gr {
for(int i = 0; i < num_copy; i++) {
d_buffer.push_back(in[i]);
}
-
+
// notify the waiting get() if we fill up the buffer
if(d_buffer.size() == d_len) {
condition_buffer_ready.notify_one();
}
}
mutex_buffer.unlock();
-
+
return noutput_items;
}
@@ -141,7 +141,7 @@ namespace gr {
d_rpc_vars.push_back(
rpcbasic_sptr(new rpcbasic_register_get<ctrlport_probe2_i, std::vector<int> >(
alias(), d_id.c_str(), &ctrlport_probe2_i::get,
- pmt::mp(-32768), pmt::mp(32767), pmt::mp(0),
+ pmt::mp(-32768), pmt::mp(32767), pmt::mp(0),
"volts", d_desc.c_str(), RPC_PRIVLVL_MIN,
d_disp_mask)));
diff --git a/gr-blocks/lib/ctrlport_probe2_s_impl.cc b/gr-blocks/lib/ctrlport_probe2_s_impl.cc
index b10c419eb5..6a4ade462c 100644
--- a/gr-blocks/lib/ctrlport_probe2_s_impl.cc
+++ b/gr-blocks/lib/ctrlport_probe2_s_impl.cc
@@ -63,7 +63,7 @@ namespace gr {
for(unsigned i = 0; i < ninputs; i++)
ninput_items_required[i] = d_len;
}
-
+
// boost::shared_mutex mutex_buffer;
// mutable boost::mutex mutex_notify;
// boost::condition_variable condition_buffer_ready;
@@ -122,14 +122,14 @@ namespace gr {
for(int i = 0; i < num_copy; i++) {
d_buffer.push_back(in[i]);
}
-
+
// notify the waiting get() if we fill up the buffer
if(d_buffer.size() == d_len) {
condition_buffer_ready.notify_one();
}
}
mutex_buffer.unlock();
-
+
return noutput_items;
}
@@ -141,7 +141,7 @@ namespace gr {
d_rpc_vars.push_back(
rpcbasic_sptr(new rpcbasic_register_get<ctrlport_probe2_s, std::vector<short> >(
alias(), d_id.c_str(), &ctrlport_probe2_s::get,
- pmt::mp(-32768), pmt::mp(32767), pmt::mp(0),
+ pmt::mp(-32768), pmt::mp(32767), pmt::mp(0),
"volts", d_desc.c_str(), RPC_PRIVLVL_MIN,
d_disp_mask)));
diff --git a/gr-blocks/lib/ctrlport_probe_c_impl.cc b/gr-blocks/lib/ctrlport_probe_c_impl.cc
index 1c077af481..8141b2a2d1 100644
--- a/gr-blocks/lib/ctrlport_probe_c_impl.cc
+++ b/gr-blocks/lib/ctrlport_probe_c_impl.cc
@@ -78,7 +78,7 @@ namespace gr {
d_ptr = in;
d_ptrLen = noutput_items;
ptrlock.unlock();
-
+
return noutput_items;
}
@@ -88,10 +88,10 @@ namespace gr {
#ifdef GR_CTRLPORT
d_rpc_vars.push_back(
rpcbasic_sptr(new rpcbasic_register_get<ctrlport_probe_c, std::vector<std::complex<float> > >(
- alias(), d_id.c_str(), &ctrlport_probe_c::get,
+ alias(), d_id.c_str(), &ctrlport_probe_c::get,
pmt::make_c32vector(0,-2),
pmt::make_c32vector(0,2),
- pmt::make_c32vector(0,0),
+ pmt::make_c32vector(0,0),
"volts", d_desc.c_str(), RPC_PRIVLVL_MIN,
DISPXY | DISPOPTSCATTER)));
#endif /* GR_CTRLPORT */
diff --git a/gr-blocks/lib/deinterleave_impl.cc b/gr-blocks/lib/deinterleave_impl.cc
index 5e1cc5221d..c9d0e9aeda 100644
--- a/gr-blocks/lib/deinterleave_impl.cc
+++ b/gr-blocks/lib/deinterleave_impl.cc
@@ -34,7 +34,7 @@ namespace gr {
{
return gnuradio::get_initial_sptr(new deinterleave_impl(itemsize, blocksize));
}
-
+
deinterleave_impl::deinterleave_impl(size_t itemsize, unsigned int blocksize)
: block("deinterleave",
io_signature::make (1, 1, itemsize),
@@ -51,7 +51,7 @@ namespace gr {
d_noutputs = noutputs;
return true;
}
-
+
int
deinterleave_impl::general_work(int noutput_items,
gr_vector_int& ninput_items,
@@ -60,14 +60,14 @@ namespace gr {
{
const char *in = (const char*)input_items[0];
char **out = (char**)&output_items[0];
-
+
memcpy(out[d_current_output], in, d_itemsize * d_blocksize);
consume_each(d_blocksize);
produce(d_current_output, d_blocksize);
d_current_output = (d_current_output + 1) % d_noutputs;
return WORK_CALLED_PRODUCE;
}
-
-
+
+
} /* namespace blocks */
} /* namespace gr */
diff --git a/gr-blocks/lib/deinterleave_impl.h b/gr-blocks/lib/deinterleave_impl.h
index a7a9e0a8fa..247ee3a018 100644
--- a/gr-blocks/lib/deinterleave_impl.h
+++ b/gr-blocks/lib/deinterleave_impl.h
@@ -30,7 +30,7 @@ namespace gr {
class BLOCKS_API deinterleave_impl : public deinterleave
{
-
+
size_t d_itemsize;
unsigned int d_blocksize;
unsigned int d_current_output;
@@ -51,6 +51,6 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-
+
#endif /* INCLUDED_DEINTERLEAVE_IMPL_H */
diff --git a/gr-blocks/lib/divide_XX_impl.cc.t b/gr-blocks/lib/divide_XX_impl.cc.t
index 30cb3ab38c..052b09217a 100644
--- a/gr-blocks/lib/divide_XX_impl.cc.t
+++ b/gr-blocks/lib/divide_XX_impl.cc.t
@@ -51,14 +51,14 @@ namespace gr {
gr_vector_void_star &output_items)
{
@O_TYPE@ *optr = (@O_TYPE@ *) output_items[0];
-
+
int ninputs = input_items.size ();
-
+
for (size_t i = 0; i < noutput_items*d_vlen; i++){
@I_TYPE@ acc = ((@I_TYPE@ *) input_items[0])[i];
for (int j = 1; j < ninputs; j++)
acc /= ((@I_TYPE@ *) input_items[j])[i];
-
+
*optr++ = (@O_TYPE@) acc;
}
diff --git a/gr-blocks/lib/file_meta_sink_impl.cc b/gr-blocks/lib/file_meta_sink_impl.cc
index 82ecb93db3..06ac051d8c 100644
--- a/gr-blocks/lib/file_meta_sink_impl.cc
+++ b/gr-blocks/lib/file_meta_sink_impl.cc
@@ -145,7 +145,7 @@ namespace gr {
fclose(d_fp);
d_fp = 0;
}
-
+
if(d_state == STATE_DETACHED) {
if(d_hdr_fp) {
fclose(d_hdr_fp);
diff --git a/gr-blocks/lib/file_meta_source_impl.cc b/gr-blocks/lib/file_meta_source_impl.cc
index 6f1338dd58..58be9ece7e 100644
--- a/gr-blocks/lib/file_meta_source_impl.cc
+++ b/gr-blocks/lib/file_meta_source_impl.cc
@@ -115,7 +115,7 @@ namespace gr {
fclose(d_fp);
d_fp = 0;
}
-
+
if(d_state == STATE_DETACHED) {
if(d_hdr_fp) {
fclose(d_hdr_fp);
diff --git a/gr-blocks/lib/file_source_impl.cc b/gr-blocks/lib/file_source_impl.cc
index 0c3d752d9c..1602b02416 100644
--- a/gr-blocks/lib/file_source_impl.cc
+++ b/gr-blocks/lib/file_source_impl.cc
@@ -77,7 +77,7 @@ namespace gr {
if(d_new_fp)
fclose ((FILE*)d_new_fp);
}
-
+
bool
file_source_impl::seek(long seek_point, int whence)
{
diff --git a/gr-blocks/lib/file_source_impl.h b/gr-blocks/lib/file_source_impl.h
index 5f5e8c9340..80232a1dbe 100644
--- a/gr-blocks/lib/file_source_impl.h
+++ b/gr-blocks/lib/file_source_impl.h
@@ -38,7 +38,7 @@ namespace gr {
bool d_repeat;
bool d_updated;
boost::mutex fp_mutex;
-
+
void do_update();
public:
diff --git a/gr-blocks/lib/float_to_char_impl.cc b/gr-blocks/lib/float_to_char_impl.cc
index f51f08455c..342187d3ee 100644
--- a/gr-blocks/lib/float_to_char_impl.cc
+++ b/gr-blocks/lib/float_to_char_impl.cc
@@ -56,7 +56,7 @@ namespace gr {
int8_t *out = (int8_t *) output_items[0];
volk_32f_s32f_convert_8i(out, in, d_scale, d_vlen*noutput_items);
-
+
return noutput_items;
}
diff --git a/gr-blocks/lib/float_to_char_impl.h b/gr-blocks/lib/float_to_char_impl.h
index a5435d9960..99376990c5 100644
--- a/gr-blocks/lib/float_to_char_impl.h
+++ b/gr-blocks/lib/float_to_char_impl.h
@@ -46,6 +46,6 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-
+
#endif /* INCLUDED_FLOAT_TO_CHAR_IMPL_H */
diff --git a/gr-blocks/lib/float_to_complex_impl.cc b/gr-blocks/lib/float_to_complex_impl.cc
index f37f2bb7a6..236438daac 100644
--- a/gr-blocks/lib/float_to_complex_impl.cc
+++ b/gr-blocks/lib/float_to_complex_impl.cc
@@ -66,11 +66,11 @@ namespace gr {
for (size_t j = 0; j < noutput_items*d_vlen; j++)
out[j] = gr_complex (r[j], i[j]);
break;
-
+
default:
assert (0);
}
-
+
return noutput_items;
}
diff --git a/gr-blocks/lib/float_to_complex_impl.h b/gr-blocks/lib/float_to_complex_impl.h
index d28beb2697..6e14aba4e5 100644
--- a/gr-blocks/lib/float_to_complex_impl.h
+++ b/gr-blocks/lib/float_to_complex_impl.h
@@ -42,6 +42,6 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-
+
#endif /* INCLUDED_FLOAT_TO_COMPLEX_IMPL_H */
diff --git a/gr-blocks/lib/float_to_int_impl.cc b/gr-blocks/lib/float_to_int_impl.cc
index 7b4522068b..0dbef975bb 100644
--- a/gr-blocks/lib/float_to_int_impl.cc
+++ b/gr-blocks/lib/float_to_int_impl.cc
@@ -61,14 +61,14 @@ namespace gr {
#if 0
const float *in = (const float *) input_items[0];
int32_t *out = (int32_t *) output_items[0];
-
+
volk_32f_s32f_convert_32i(out, in, d_scale, d_vlen*noutput_items);
#else
const float *in = (const float *) input_items[0];
int *out = (int *) output_items[0];
-
+
float_array_to_int (in, out, d_scale, d_vlen*noutput_items);
-
+
#endif
return noutput_items;
diff --git a/gr-blocks/lib/float_to_int_impl.h b/gr-blocks/lib/float_to_int_impl.h
index d437b50cfa..7062672738 100644
--- a/gr-blocks/lib/float_to_int_impl.h
+++ b/gr-blocks/lib/float_to_int_impl.h
@@ -46,6 +46,6 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-
+
#endif /* INCLUDED_FLOAT_TO_INT_IMPL_H */
diff --git a/gr-blocks/lib/float_to_short_impl.h b/gr-blocks/lib/float_to_short_impl.h
index 2ca5a3bf04..fb88092937 100644
--- a/gr-blocks/lib/float_to_short_impl.h
+++ b/gr-blocks/lib/float_to_short_impl.h
@@ -46,6 +46,6 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-
+
#endif /* INCLUDED_FLOAT_TO_SHORT_IMPL_H */
diff --git a/gr-blocks/lib/float_to_uchar_impl.cc b/gr-blocks/lib/float_to_uchar_impl.cc
index a55b3dbc82..eccd36da78 100644
--- a/gr-blocks/lib/float_to_uchar_impl.cc
+++ b/gr-blocks/lib/float_to_uchar_impl.cc
@@ -50,9 +50,9 @@ namespace gr {
{
const float *in = (const float *)input_items[0];
unsigned char *out = (unsigned char *)output_items[0];
-
+
float_array_to_uchar(in, out, noutput_items);
-
+
return noutput_items;
}
diff --git a/gr-blocks/lib/float_to_uchar_impl.h b/gr-blocks/lib/float_to_uchar_impl.h
index 56e815c511..1e60ae8ebd 100644
--- a/gr-blocks/lib/float_to_uchar_impl.h
+++ b/gr-blocks/lib/float_to_uchar_impl.h
@@ -40,6 +40,6 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-
+
#endif /* INCLUDED_FLOAT_TO_UCHAR_IMPL_H */
diff --git a/gr-blocks/lib/int_to_float_impl.cc b/gr-blocks/lib/int_to_float_impl.cc
index ec215c446b..33b59e9f4b 100644
--- a/gr-blocks/lib/int_to_float_impl.cc
+++ b/gr-blocks/lib/int_to_float_impl.cc
@@ -56,7 +56,7 @@ namespace gr {
float *out = (float *) output_items[0];
volk_32i_s32f_convert_32f(out, in, d_scale, d_vlen*noutput_items);
-
+
return noutput_items;
}
} /* namespace blocks */
diff --git a/gr-blocks/lib/int_to_float_impl.h b/gr-blocks/lib/int_to_float_impl.h
index 96b416be1d..53942b1488 100644
--- a/gr-blocks/lib/int_to_float_impl.h
+++ b/gr-blocks/lib/int_to_float_impl.h
@@ -46,6 +46,6 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-
+
#endif /* INCLUDED_INT_TO_FLOAT_IMPL_H */
diff --git a/gr-blocks/lib/integrate_XX_impl.cc.t b/gr-blocks/lib/integrate_XX_impl.cc.t
index 2def0309df..800d6bc3cb 100644
--- a/gr-blocks/lib/integrate_XX_impl.cc.t
+++ b/gr-blocks/lib/integrate_XX_impl.cc.t
@@ -60,7 +60,7 @@ namespace gr {
for (int j = 0; j < d_decim; j++)
out[i] += in[i*d_decim+j];
}
-
+
return noutput_items;
}
diff --git a/gr-blocks/lib/interleave_impl.cc b/gr-blocks/lib/interleave_impl.cc
index 22d6488f7a..3e5a8295bd 100644
--- a/gr-blocks/lib/interleave_impl.cc
+++ b/gr-blocks/lib/interleave_impl.cc
@@ -29,12 +29,12 @@
namespace gr {
namespace blocks {
-
+
interleave::sptr interleave::make(size_t itemsize, unsigned int blocksize)
{
return gnuradio::get_initial_sptr(new interleave_impl(itemsize, blocksize));
}
-
+
interleave_impl::interleave_impl(size_t itemsize, unsigned int blocksize)
: block("interleave",
io_signature::make (1, io_signature::IO_INFINITE, itemsize),
@@ -53,8 +53,8 @@ namespace gr {
set_output_multiple(d_blocksize * d_ninputs);
return true;
}
-
-
+
+
int
interleave_impl::fixed_rate_ninput_to_noutput(int ninput)
{
@@ -66,7 +66,7 @@ namespace gr {
{
return (int) ((noutput / d_ninputs) + .5);
}
-
+
void
interleave_impl::forecast(int noutput_items,
gr_vector_int& ninput_items_required)
@@ -85,7 +85,7 @@ namespace gr {
size_t noutput_blocks = (size_t) ((noutput_items/d_blocksize) + .5);
const char **in = (const char**)&input_items[0];
char *out = (char*)output_items[0];
-
+
for (unsigned int i = 0; i < noutput_blocks; i += d_ninputs) {
for (unsigned int n = 0; n < d_ninputs; n++){
memcpy(out, in[n], d_itemsize * d_blocksize);
@@ -98,7 +98,7 @@ namespace gr {
}
-
-
+
+
} /* namespace blocks */
} /* namespace gr */
diff --git a/gr-blocks/lib/interleave_impl.h b/gr-blocks/lib/interleave_impl.h
index c74127fca5..7675259c8e 100644
--- a/gr-blocks/lib/interleave_impl.h
+++ b/gr-blocks/lib/interleave_impl.h
@@ -58,6 +58,6 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-
+
#endif /* INCLUDED_INTERLEAVE_IMPL_H */
diff --git a/gr-blocks/lib/interleaved_char_to_complex_impl.cc b/gr-blocks/lib/interleaved_char_to_complex_impl.cc
index 34114e3651..b16e3c4c73 100644
--- a/gr-blocks/lib/interleaved_char_to_complex_impl.cc
+++ b/gr-blocks/lib/interleaved_char_to_complex_impl.cc
@@ -55,8 +55,8 @@ namespace gr {
{
const int8_t *in = (const int8_t *) input_items[0];
float *out = (float *) output_items[0];
-
- volk_8i_s32f_convert_32f_u(out, in, 1.0, 2*noutput_items);
+
+ volk_8i_s32f_convert_32f_u(out, in, 1.0, 2*noutput_items);
return noutput_items;
}
diff --git a/gr-blocks/lib/interleaved_char_to_complex_impl.h b/gr-blocks/lib/interleaved_char_to_complex_impl.h
index e815f08a1e..484c33c9f4 100644
--- a/gr-blocks/lib/interleaved_char_to_complex_impl.h
+++ b/gr-blocks/lib/interleaved_char_to_complex_impl.h
@@ -42,6 +42,6 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-
+
#endif /* INCLUDED_INTERLEAVED_CHAR_TO_COMPLEX_IMPL_H */
diff --git a/gr-blocks/lib/interleaved_short_to_complex_impl.cc b/gr-blocks/lib/interleaved_short_to_complex_impl.cc
index bb1e229bf1..6c7108b550 100644
--- a/gr-blocks/lib/interleaved_short_to_complex_impl.cc
+++ b/gr-blocks/lib/interleaved_short_to_complex_impl.cc
@@ -44,7 +44,7 @@ namespace gr {
d_vector_input(vector_input), d_swap(swap)
{
}
-
+
void interleaved_short_to_complex_impl::set_swap(bool swap)
{
d_swap = swap;
@@ -57,9 +57,9 @@ namespace gr {
{
const short *in = (const short *) input_items[0];
gr_complex *out = (gr_complex *) output_items[0];
-
+
interleaved_short_array_to_complex (in, out, 2 * noutput_items);
-
+
if (d_swap) {
float* p = (float*)output_items[0];
for (int i = 0; i < noutput_items; ++i) {
@@ -68,7 +68,7 @@ namespace gr {
p[2*i+0] = f;
}
}
-
+
return noutput_items;
}
diff --git a/gr-blocks/lib/interleaved_short_to_complex_impl.h b/gr-blocks/lib/interleaved_short_to_complex_impl.h
index c7669f1896..8370786187 100644
--- a/gr-blocks/lib/interleaved_short_to_complex_impl.h
+++ b/gr-blocks/lib/interleaved_short_to_complex_impl.h
@@ -35,7 +35,7 @@ namespace gr {
bool d_swap;
public:
interleaved_short_to_complex_impl(bool vector_input=false, bool swap=false);
-
+
void set_swap(bool swap);
int work(int noutput_items,
@@ -45,6 +45,6 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-
+
#endif /* INCLUDED_INTERLEAVED_SHORT_TO_COMPLEX_IMPL_H */
diff --git a/gr-blocks/lib/keep_m_in_n_impl.cc b/gr-blocks/lib/keep_m_in_n_impl.cc
index 8ce7a81d80..e987b52265 100644
--- a/gr-blocks/lib/keep_m_in_n_impl.cc
+++ b/gr-blocks/lib/keep_m_in_n_impl.cc
@@ -49,7 +49,7 @@ namespace gr {
assert(d_n > 0);
assert(d_m <= d_n);
assert(d_offset <= (d_n-d_m));
-
+
set_output_multiple(m);
}
@@ -67,7 +67,7 @@ namespace gr {
{
uint8_t* out = (uint8_t*)output_items[0];
const uint8_t* in = (const uint8_t*)input_items[0];
-
+
// iterate over data blocks of size {n, input : m, output}
int blks = std::min(noutput_items/d_m, ninput_items[0]/d_n);
@@ -78,10 +78,10 @@ namespace gr {
// perform copy
memcpy( optr, iptr, d_m*d_itemsize );
}
-
+
consume_each(d_n);
return d_m;
}
-
+
} /* namespace blocks */
} /* namespace gr */
diff --git a/gr-blocks/lib/keep_m_in_n_impl.h b/gr-blocks/lib/keep_m_in_n_impl.h
index 5531344da6..39c78d399e 100644
--- a/gr-blocks/lib/keep_m_in_n_impl.h
+++ b/gr-blocks/lib/keep_m_in_n_impl.h
@@ -36,7 +36,7 @@ namespace gr {
int d_itemsize;
void forecast(int noutput_items, gr_vector_int &ninput_items_required);
-
+
public:
keep_m_in_n_impl(size_t itemsize, int m, int n, int offset);
@@ -44,7 +44,7 @@ namespace gr {
gr_vector_int &ninput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items);
-
+
void set_m(int m) { d_m = m; }
void set_n(int n) { d_n = n; }
void set_offset(int offset) { d_offset = offset; }
@@ -52,6 +52,6 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-
+
#endif /* INCLUDED_KEEP_M_IN_N_IMPL_H */
diff --git a/gr-blocks/lib/keep_one_in_n_impl.cc b/gr-blocks/lib/keep_one_in_n_impl.cc
index 34012dd59a..e588655f7a 100644
--- a/gr-blocks/lib/keep_one_in_n_impl.cc
+++ b/gr-blocks/lib/keep_one_in_n_impl.cc
@@ -55,7 +55,7 @@ namespace gr {
{
if (n < 1)
n = 1;
-
+
d_n = n;
d_count = n;
@@ -73,7 +73,7 @@ namespace gr {
{
const char *in = (const char *) input_items[0];
char *out = (char *) output_items[0];
-
+
size_t item_size = input_signature ()->sizeof_stream_item (0);
int ni = 0;
int no = 0;
diff --git a/gr-blocks/lib/keep_one_in_n_impl.h b/gr-blocks/lib/keep_one_in_n_impl.h
index 4138f164a1..f60bf1a02b 100644
--- a/gr-blocks/lib/keep_one_in_n_impl.h
+++ b/gr-blocks/lib/keep_one_in_n_impl.h
@@ -42,12 +42,12 @@ namespace gr {
gr_vector_int &ninput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items);
-
+
void set_n(int n);
};
} /* namespace blocks */
} /* namespace gr */
-
+
#endif /* INCLUDED_KEEP_ONE_IN_N_IMPL_H */
diff --git a/gr-blocks/lib/message_burst_source_impl.cc b/gr-blocks/lib/message_burst_source_impl.cc
index 573959e027..0ce0a9284f 100644
--- a/gr-blocks/lib/message_burst_source_impl.cc
+++ b/gr-blocks/lib/message_burst_source_impl.cc
@@ -1,19 +1,19 @@
/* -*- c++ -*- */
/*
* Copyright 2012-2013 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,
@@ -95,7 +95,7 @@ namespace gr {
//
// Consume whatever we can from the current message
//
-
+
int mm = std::min(noutput_items - nn,
(int)((d_msg->length() - d_msg_offset) / d_itemsize));
memcpy(out, &(d_msg->msg()[d_msg_offset]), mm * d_itemsize);
@@ -112,7 +112,7 @@ namespace gr {
//tag end of burst
add_item_tag(0, //stream ID
abs_sample_count+nn-1, //sample number
- pmt::string_to_symbol("tx_eob"),
+ pmt::string_to_symbol("tx_eob"),
pmt::from_bool(1),
d_me); //block src id
}
@@ -133,7 +133,7 @@ namespace gr {
//tag start of burst
add_item_tag(0, //stream ID
abs_sample_count+nn, //sample number
- pmt::string_to_symbol("tx_sob"),
+ pmt::string_to_symbol("tx_sob"),
pmt::from_bool(1),
d_me); //block src id
@@ -141,7 +141,7 @@ namespace gr {
throw std::runtime_error("msg length is not a multiple of d_itemsize");
}
}
-
+
return nn;
}
diff --git a/gr-blocks/lib/message_burst_source_impl.h b/gr-blocks/lib/message_burst_source_impl.h
index ceb0985e65..a389a23942 100644
--- a/gr-blocks/lib/message_burst_source_impl.h
+++ b/gr-blocks/lib/message_burst_source_impl.h
@@ -1,19 +1,19 @@
/* -*- c++ -*- */
/*
* Copyright 2012-2013 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,
diff --git a/gr-blocks/lib/message_debug_impl.cc b/gr-blocks/lib/message_debug_impl.cc
index 3f7c6ef097..620ca1eb42 100644
--- a/gr-blocks/lib/message_debug_impl.cc
+++ b/gr-blocks/lib/message_debug_impl.cc
@@ -31,7 +31,7 @@
namespace gr {
namespace blocks {
-
+
message_debug::sptr
message_debug::make()
{
@@ -103,7 +103,7 @@ namespace gr {
{
message_port_register_in(pmt::mp("print"));
set_msg_handler(pmt::mp("print"), boost::bind(&message_debug_impl::print, this, _1));
-
+
message_port_register_in(pmt::mp("store"));
set_msg_handler(pmt::mp("store"), boost::bind(&message_debug_impl::store, this, _1));
diff --git a/gr-blocks/lib/message_sink_impl.cc b/gr-blocks/lib/message_sink_impl.cc
index 4dfcc6396b..3dc4102c48 100644
--- a/gr-blocks/lib/message_sink_impl.cc
+++ b/gr-blocks/lib/message_sink_impl.cc
@@ -93,7 +93,7 @@ namespace gr {
}
}
assert(packet_length != 0);
-
+
// FIXME run this multiple times if input_items >= N * packet_length
if (noutput_items >= packet_length ) {
// If the message queue is full we drop the packet.
@@ -110,7 +110,7 @@ namespace gr {
} else {
return 0;
}
- } else {
+ } else {
// If the queue if full we drop all the data we got.
if (!d_msgq->full_p()) {
// build a message to hold whatever we've got
@@ -119,7 +119,7 @@ namespace gr {
noutput_items, // arg2 for other end (redundant)
noutput_items * d_itemsize); // len of msg
memcpy(msg->msg(), in, noutput_items * d_itemsize);
-
+
d_msgq->handle(msg); // send it
}
@@ -129,4 +129,4 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-
+
diff --git a/gr-blocks/lib/message_source_impl.cc b/gr-blocks/lib/message_source_impl.cc
index 05ec2f248b..b4e9ba6ed7 100644
--- a/gr-blocks/lib/message_source_impl.cc
+++ b/gr-blocks/lib/message_source_impl.cc
@@ -117,7 +117,7 @@ namespace gr {
out += mm * d_itemsize;
d_msg_offset += mm * d_itemsize;
assert(d_msg_offset <= d_msg->length());
-
+
if (d_msg_offset == d_msg->length()){
if (d_msg->type() == 1) // type == 1 sets EOF
d_eof = true;
@@ -131,17 +131,17 @@ namespace gr {
if (d_msgq->empty_p() && nn > 0){ // no more messages in the queue, return what we've got
break;
}
-
+
if (d_eof)
return -1;
-
+
d_msg = d_msgq->delete_head(); // block, waiting for a message
d_msg_offset = 0;
-
+
if ((d_msg->length() % d_itemsize) != 0)
throw std::runtime_error("msg length is not a multiple of d_itemsize");
}
-
+
}
return nn;
diff --git a/gr-blocks/lib/message_strobe_random_impl.cc b/gr-blocks/lib/message_strobe_random_impl.cc
index 3d15574ba0..80819fc2fc 100644
--- a/gr-blocks/lib/message_strobe_random_impl.cc
+++ b/gr-blocks/lib/message_strobe_random_impl.cc
@@ -58,7 +58,7 @@ namespace gr {
{
// allocate RNGs
update_dist();
-
+
// set up ports
message_port_register_out(pmt::mp("strobe"));
d_thread = boost::shared_ptr<boost::thread>
@@ -87,7 +87,7 @@ namespace gr {
boost::poisson_distribution<> pd(d_mean_ms);
d_variate_poisson = boost::shared_ptr< boost::variate_generator<boost::mt19937, boost::poisson_distribution<> > > (
new boost::variate_generator <boost::mt19937, boost::poisson_distribution<> >(d_rng,pd) );
-
+
boost::normal_distribution<> nd(d_mean_ms, d_std_ms);
d_variate_normal = boost::shared_ptr< boost::variate_generator<boost::mt19937, boost::normal_distribution<> > > (
new boost::variate_generator <boost::mt19937, boost::normal_distribution<> >(d_rng,nd) );
@@ -108,7 +108,7 @@ namespace gr {
void message_strobe_random_impl::run()
{
while(!d_finished) {
- boost::this_thread::sleep(boost::posix_time::milliseconds(std::max(0.0f,next_delay())));
+ boost::this_thread::sleep(boost::posix_time::milliseconds(std::max(0.0f,next_delay())));
if(d_finished) {
return;
}
diff --git a/gr-blocks/lib/multiply_XX_impl.cc.t b/gr-blocks/lib/multiply_XX_impl.cc.t
index 3f82a1bbe8..d9b41b3d9f 100644
--- a/gr-blocks/lib/multiply_XX_impl.cc.t
+++ b/gr-blocks/lib/multiply_XX_impl.cc.t
@@ -51,14 +51,14 @@ namespace gr {
gr_vector_void_star &output_items)
{
@O_TYPE@ *optr = (@O_TYPE@ *) output_items[0];
-
+
int ninputs = input_items.size ();
-
+
for (size_t i = 0; i < noutput_items*d_vlen; i++){
@I_TYPE@ acc = ((@I_TYPE@ *) input_items[0])[i];
for (int j = 1; j < ninputs; j++)
acc *= ((@I_TYPE@ *) input_items[j])[i];
-
+
*optr++ = (@O_TYPE@) acc;
}
diff --git a/gr-blocks/lib/multiply_cc_impl.cc b/gr-blocks/lib/multiply_cc_impl.cc
index 2e1ce93b37..1f58ffd386 100644
--- a/gr-blocks/lib/multiply_cc_impl.cc
+++ b/gr-blocks/lib/multiply_cc_impl.cc
@@ -54,7 +54,7 @@ namespace gr {
{
gr_complex *out = (gr_complex *) output_items[0];
int noi = d_vlen*noutput_items;
-
+
memcpy(out, input_items[0], noi*sizeof(gr_complex));
for(size_t i = 1; i < input_items.size(); i++)
volk_32fc_x2_multiply_32fc(out, out, (gr_complex*)input_items[i], noi);
diff --git a/gr-blocks/lib/multiply_cc_impl.h b/gr-blocks/lib/multiply_cc_impl.h
index 0419a5439b..86b4334bf8 100644
--- a/gr-blocks/lib/multiply_cc_impl.h
+++ b/gr-blocks/lib/multiply_cc_impl.h
@@ -42,6 +42,6 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-
+
#endif /* INCLUDED_BLOCKS_MULTIPLY_CC_IMPL_H */
diff --git a/gr-blocks/lib/multiply_conjugate_cc_impl.cc b/gr-blocks/lib/multiply_conjugate_cc_impl.cc
index 7f9652152b..5586343503 100644
--- a/gr-blocks/lib/multiply_conjugate_cc_impl.cc
+++ b/gr-blocks/lib/multiply_conjugate_cc_impl.cc
@@ -56,9 +56,9 @@ namespace gr {
gr_complex *in1 = (gr_complex *) input_items[1];
gr_complex *out = (gr_complex *) output_items[0];
int noi = d_vlen*noutput_items;
-
+
volk_32fc_x2_multiply_conjugate_32fc(out, in0, in1, noi);
-
+
return noutput_items;
}
diff --git a/gr-blocks/lib/multiply_conjugate_cc_impl.h b/gr-blocks/lib/multiply_conjugate_cc_impl.h
index f3d3b64d6b..ef4d73bb32 100644
--- a/gr-blocks/lib/multiply_conjugate_cc_impl.h
+++ b/gr-blocks/lib/multiply_conjugate_cc_impl.h
@@ -42,6 +42,6 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-
+
#endif /* INCLUDED_BLOCKS_MULTIPLY_CONJUGATE_CC_IMPL_H */
diff --git a/gr-blocks/lib/multiply_const_XX_impl.cc.t b/gr-blocks/lib/multiply_const_XX_impl.cc.t
index f58dd33945..941cb9622e 100644
--- a/gr-blocks/lib/multiply_const_XX_impl.cc.t
+++ b/gr-blocks/lib/multiply_const_XX_impl.cc.t
@@ -52,9 +52,9 @@ namespace gr {
{
@I_TYPE@ *iptr = (@I_TYPE@ *) input_items[0];
@O_TYPE@ *optr = (@O_TYPE@ *) output_items[0];
-
+
int size = noutput_items;
-
+
while (size >= 8){
*optr++ = *iptr++ * d_k;
*optr++ = *iptr++ * d_k;
@@ -69,7 +69,7 @@ namespace gr {
while (size-- > 0)
*optr++ = *iptr++ * d_k;
-
+
return noutput_items;
}
diff --git a/gr-blocks/lib/multiply_const_vXX_impl.cc.t b/gr-blocks/lib/multiply_const_vXX_impl.cc.t
index 55b3d3e41d..2de0684144 100644
--- a/gr-blocks/lib/multiply_const_vXX_impl.cc.t
+++ b/gr-blocks/lib/multiply_const_vXX_impl.cc.t
@@ -52,13 +52,13 @@ namespace gr {
{
@I_TYPE@ *iptr = (@I_TYPE@ *)input_items[0];
@O_TYPE@ *optr = (@O_TYPE@ *)output_items[0];
-
+
int nitems_per_block = output_signature()->sizeof_stream_item(0)/sizeof(@I_TYPE@);
-
+
for (int i = 0; i < noutput_items; i++)
for (int j = 0; j < nitems_per_block; j++)
*optr++ = *iptr++ * d_k[j];
-
+
return noutput_items;
}
diff --git a/gr-blocks/lib/multiply_ff_impl.cc b/gr-blocks/lib/multiply_ff_impl.cc
index 22100497c5..edc0749f2c 100644
--- a/gr-blocks/lib/multiply_ff_impl.cc
+++ b/gr-blocks/lib/multiply_ff_impl.cc
@@ -54,7 +54,7 @@ namespace gr {
{
float *out = (float *) output_items[0];
int noi = d_vlen*noutput_items;
-
+
memcpy(out, input_items[0], noi*sizeof(float));
for(size_t i = 1; i < input_items.size(); i++)
volk_32f_x2_multiply_32f(out, out, (float*)input_items[i], noi);
diff --git a/gr-blocks/lib/multiply_ff_impl.h b/gr-blocks/lib/multiply_ff_impl.h
index e084b0e494..1213eef842 100644
--- a/gr-blocks/lib/multiply_ff_impl.h
+++ b/gr-blocks/lib/multiply_ff_impl.h
@@ -42,6 +42,6 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-
+
#endif /* INCLUDED_BLOCKS_MULTIPLY_FF_IMPL_H */
diff --git a/gr-blocks/lib/nlog10_ff_impl.h b/gr-blocks/lib/nlog10_ff_impl.h
index 2935904366..dd260bea1f 100644
--- a/gr-blocks/lib/nlog10_ff_impl.h
+++ b/gr-blocks/lib/nlog10_ff_impl.h
@@ -44,6 +44,6 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-
+
#endif /* INCLUDED_NLOG10_FF_IMPL_H */
diff --git a/gr-blocks/lib/or_XX_impl.cc.t b/gr-blocks/lib/or_XX_impl.cc.t
index 95586e4fae..2782e1ee5f 100644
--- a/gr-blocks/lib/or_XX_impl.cc.t
+++ b/gr-blocks/lib/or_XX_impl.cc.t
@@ -51,14 +51,14 @@ namespace gr {
gr_vector_void_star &output_items)
{
@O_TYPE@ *optr = (@O_TYPE@ *) output_items[0];
-
+
int ninputs = input_items.size ();
-
+
for (size_t i = 0; i < noutput_items*d_vlen; i++){
@I_TYPE@ acc = ((@I_TYPE@ *) input_items[0])[i];
for (int j = 1; j < ninputs; j++)
acc |= ((@I_TYPE@ *) input_items[j])[i];
-
+
*optr++ = (@O_TYPE@) acc;
}
diff --git a/gr-blocks/lib/packed_to_unpacked_XX_impl.cc.t b/gr-blocks/lib/packed_to_unpacked_XX_impl.cc.t
index 8ac22bdf8d..de96135ce8 100644
--- a/gr-blocks/lib/packed_to_unpacked_XX_impl.cc.t
+++ b/gr-blocks/lib/packed_to_unpacked_XX_impl.cc.t
@@ -66,7 +66,7 @@ namespace gr {
@NAME_IMPL@::forecast(int noutput_items,
gr_vector_int &ninput_items_required)
{
- int input_required = (int)ceil((d_index + noutput_items * d_bits_per_chunk)
+ int input_required = (int)ceil((d_index + noutput_items * d_bits_per_chunk)
/ (1.0 * BITS_PER_TYPE));
unsigned ninputs = ninput_items_required.size();
for(unsigned int i = 0; i < ninputs; i++) {
diff --git a/gr-blocks/lib/patterned_interleaver_impl.cc b/gr-blocks/lib/patterned_interleaver_impl.cc
index ba298afc8e..9ed45abb85 100644
--- a/gr-blocks/lib/patterned_interleaver_impl.cc
+++ b/gr-blocks/lib/patterned_interleaver_impl.cc
@@ -53,14 +53,14 @@ namespace gr {
gr_vector_void_star &output_items)
{
size_t nblks = noutput_items/d_pattern.size();
-
+
std::vector<const char*> ii;
for(size_t i=0; i<input_items.size(); i++){
ii.push_back((const char*)input_items[i]);
}
char *oo = (char *) output_items[0];
-
+
for(size_t i=0; i<nblks; i++){
for(size_t j=0; j<d_pattern.size(); j++){
memcpy(oo, ii[d_pattern[j]], d_itemsize);
@@ -68,7 +68,7 @@ namespace gr {
ii[d_pattern[j]] += d_itemsize;
}
}
-
+
for(size_t i=0; i<d_counts.size(); i++){
consume(i, d_counts[i]*nblks );
}
diff --git a/gr-blocks/lib/patterned_interleaver_impl.h b/gr-blocks/lib/patterned_interleaver_impl.h
index 2401480ad9..4b78b65e0b 100644
--- a/gr-blocks/lib/patterned_interleaver_impl.h
+++ b/gr-blocks/lib/patterned_interleaver_impl.h
@@ -58,4 +58,4 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-#endif
+#endif
diff --git a/gr-blocks/lib/pdu.cc b/gr-blocks/lib/pdu.cc
index 0c3e3aa334..54e0bad5d0 100644
--- a/gr-blocks/lib/pdu.cc
+++ b/gr-blocks/lib/pdu.cc
@@ -30,7 +30,7 @@ namespace gr {
namespace blocks {
namespace pdu {
- size_t
+ size_t
itemsize(vector_type type)
{
switch(type) {
diff --git a/gr-blocks/lib/pdu_filter_impl.cc b/gr-blocks/lib/pdu_filter_impl.cc
index 5db8915b31..507238d212 100644
--- a/gr-blocks/lib/pdu_filter_impl.cc
+++ b/gr-blocks/lib/pdu_filter_impl.cc
@@ -48,7 +48,7 @@ namespace gr {
set_msg_handler(pmt::mp("pdus"), boost::bind(&pdu_filter_impl::handle_msg, this, _1));
}
- void
+ void
pdu_filter_impl::handle_msg(pmt::pmt_t pdu)
{
pmt::pmt_t meta = pmt::car(pdu);
@@ -66,6 +66,6 @@ namespace gr {
message_port_pub(pmt::mp("pdus"), pdu);
}
}
-
+
} /* namespace blocks */
}/* namespace gr */
diff --git a/gr-blocks/lib/pdu_remove_impl.cc b/gr-blocks/lib/pdu_remove_impl.cc
index 0a922a5392..c3a87ed69e 100644
--- a/gr-blocks/lib/pdu_remove_impl.cc
+++ b/gr-blocks/lib/pdu_remove_impl.cc
@@ -48,7 +48,7 @@ namespace gr {
set_msg_handler(pmt::mp("pdus"), boost::bind(&pdu_remove_impl::handle_msg, this, _1));
}
- void
+ void
pdu_remove_impl::handle_msg(pmt::pmt_t pdu)
{
// add the field and publish
@@ -61,6 +61,6 @@ namespace gr {
meta = pmt::dict_delete(meta, d_k);
message_port_pub(pmt::mp("pdus"), pmt::cons(meta, pmt::cdr(pdu)));
}
-
+
} /* namespace blocks */
}/* namespace gr */
diff --git a/gr-blocks/lib/pdu_set_impl.cc b/gr-blocks/lib/pdu_set_impl.cc
index e84fe2125c..dce4df09a3 100644
--- a/gr-blocks/lib/pdu_set_impl.cc
+++ b/gr-blocks/lib/pdu_set_impl.cc
@@ -48,7 +48,7 @@ namespace gr {
set_msg_handler(pmt::mp("pdus"), boost::bind(&pdu_set_impl::handle_msg, this, _1));
}
- void
+ void
pdu_set_impl::handle_msg(pmt::pmt_t pdu)
{
// add the field and publish
@@ -61,6 +61,6 @@ namespace gr {
meta = pmt::dict_add(meta, d_k, d_v);
message_port_pub(pmt::mp("pdus"), pmt::cons(meta, pmt::cdr(pdu)));
}
-
+
} /* namespace blocks */
}/* namespace gr */
diff --git a/gr-blocks/lib/pdu_to_tagged_stream_impl.cc b/gr-blocks/lib/pdu_to_tagged_stream_impl.cc
index ba87287278..8baa9773d6 100644
--- a/gr-blocks/lib/pdu_to_tagged_stream_impl.cc
+++ b/gr-blocks/lib/pdu_to_tagged_stream_impl.cc
@@ -52,7 +52,7 @@ namespace gr {
pdu_to_tagged_stream_impl::work(int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items)
- {
+ {
char *out = (char *)output_items[0];
int nout = 0;
@@ -76,7 +76,7 @@ namespace gr {
// make sure type is valid
if (!pmt::is_pair(msg)) // TODO: implement pdu::is_valid()
throw std::runtime_error("received a malformed pdu message");
-
+
// grab the components of the pdu message
pmt::pmt_t meta(pmt::car(msg));
pmt::pmt_t vect(pmt::cdr(msg));
@@ -100,20 +100,20 @@ namespace gr {
// copy vector output
size_t ncopy = std::min((size_t)noutput_items, (size_t)pmt::length(vect));
size_t nsave = pmt::length(vect) - ncopy;
-
+
// copy output
size_t io(0);
nout += ncopy;
const uint8_t* ptr = (uint8_t*) uniform_vector_elements(vect, io);
memcpy(out, ptr, ncopy*d_itemsize);
-
+
// save leftover items if needed for next work call
if (nsave > 0) {
d_remain.resize(nsave*d_itemsize, 0);
memcpy(&d_remain[0], ptr + ncopy*d_itemsize, nsave*d_itemsize);
}
}
-
+
return nout;
}
diff --git a/gr-blocks/lib/pdu_to_tagged_stream_impl.h b/gr-blocks/lib/pdu_to_tagged_stream_impl.h
index eb0514ecb9..4bfd9cfd4e 100644
--- a/gr-blocks/lib/pdu_to_tagged_stream_impl.h
+++ b/gr-blocks/lib/pdu_to_tagged_stream_impl.h
@@ -46,4 +46,4 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-#endif
+#endif
diff --git a/gr-blocks/lib/probe_rate_impl.cc b/gr-blocks/lib/probe_rate_impl.cc
index 418d9d4013..84977beae2 100644
--- a/gr-blocks/lib/probe_rate_impl.cc
+++ b/gr-blocks/lib/probe_rate_impl.cc
@@ -30,14 +30,14 @@
namespace gr {
namespace blocks {
- probe_rate::sptr
+ probe_rate::sptr
probe_rate::make(size_t itemsize, double update_rate_ms, double alpha)
{
return gnuradio::get_initial_sptr
(new probe_rate_impl(itemsize,update_rate_ms,alpha));
}
- probe_rate_impl::probe_rate_impl(size_t itemsize, double update_rate_ms, double alpha) :
+ probe_rate_impl::probe_rate_impl(size_t itemsize, double update_rate_ms, double alpha) :
sync_block("probe_rate",
io_signature::make(1,1,itemsize),
io_signature::make(0,0,itemsize)),
@@ -95,7 +95,7 @@ namespace gr {
double probe_rate_impl::rate(){ return d_avg; }
- double probe_rate_impl::timesincelast(){
+ double probe_rate_impl::timesincelast(){
boost::posix_time::ptime now(boost::posix_time::microsec_clock::local_time());
boost::posix_time::time_duration diff = now - d_last_update;
return diff.total_milliseconds();
diff --git a/gr-blocks/lib/qa_rotator.h b/gr-blocks/lib/qa_rotator.h
index 06214bc2fc..96fe9628b9 100644
--- a/gr-blocks/lib/qa_rotator.h
+++ b/gr-blocks/lib/qa_rotator.h
@@ -26,7 +26,7 @@
#include <cppunit/extensions/HelperMacros.h>
#include <cppunit/TestCase.h>
-class qa_rotator : public CppUnit::TestCase
+class qa_rotator : public CppUnit::TestCase
{
CPPUNIT_TEST_SUITE(qa_rotator);
CPPUNIT_TEST(t1);
diff --git a/gr-blocks/lib/random_pdu_impl.cc b/gr-blocks/lib/random_pdu_impl.cc
index 6efed0664d..91a404c5dd 100644
--- a/gr-blocks/lib/random_pdu_impl.cc
+++ b/gr-blocks/lib/random_pdu_impl.cc
@@ -58,7 +58,7 @@ namespace gr {
}
bool
- random_pdu_impl::start()
+ random_pdu_impl::start()
{
output_random();
return true;
@@ -75,7 +75,7 @@ namespace gr {
std::vector<unsigned char> vec(len);
for (int i=0; i<len; i++)
vec[i] = ((unsigned char) d_bvar()) & d_mask;
-
+
// send the vector
pmt::pmt_t vecpmt(pmt::make_blob(&vec[0], len));
pmt::pmt_t pdu(pmt::cons(pmt::PMT_NIL, vecpmt));
diff --git a/gr-blocks/lib/regenerate_bb_impl.cc b/gr-blocks/lib/regenerate_bb_impl.cc
index 8b65940749..1e2427d4ad 100644
--- a/gr-blocks/lib/regenerate_bb_impl.cc
+++ b/gr-blocks/lib/regenerate_bb_impl.cc
@@ -52,7 +52,7 @@ namespace gr {
{
}
- void
+ void
regenerate_bb_impl::set_max_regen(unsigned int regen)
{
d_max_regen = regen;
diff --git a/gr-blocks/lib/repeat_impl.cc b/gr-blocks/lib/repeat_impl.cc
index f77903544f..9c2ccc63c8 100644
--- a/gr-blocks/lib/repeat_impl.cc
+++ b/gr-blocks/lib/repeat_impl.cc
@@ -52,16 +52,16 @@ namespace gr {
{
const char *in = (const char *) input_items[0];
char *out = (char *)output_items[0];
-
+
for (int i = 0; i < noutput_items/d_interp; i++) {
for (int j = 0; j < d_interp; j++) {
memcpy(out, in, d_itemsize);
out += d_itemsize;
}
-
+
in += d_itemsize;
}
-
+
return noutput_items;
}
diff --git a/gr-blocks/lib/rms_cf_impl.h b/gr-blocks/lib/rms_cf_impl.h
index 66ee12463e..75bc8f3524 100644
--- a/gr-blocks/lib/rms_cf_impl.h
+++ b/gr-blocks/lib/rms_cf_impl.h
@@ -42,7 +42,7 @@ namespace gr {
~rms_cf_impl();
void set_alpha(double alpha);
-
+
int work(int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items);
diff --git a/gr-blocks/lib/rotator_cc_impl.h b/gr-blocks/lib/rotator_cc_impl.h
index 086b207703..105fd1c534 100644
--- a/gr-blocks/lib/rotator_cc_impl.h
+++ b/gr-blocks/lib/rotator_cc_impl.h
@@ -43,7 +43,7 @@ namespace gr {
~rotator_cc_impl();
void set_phase_inc(double phase_inc);
-
+
int work(int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items);
diff --git a/gr-blocks/lib/short_to_char_impl.cc b/gr-blocks/lib/short_to_char_impl.cc
index 982ed5c20e..5ef6f203d5 100644
--- a/gr-blocks/lib/short_to_char_impl.cc
+++ b/gr-blocks/lib/short_to_char_impl.cc
@@ -54,9 +54,9 @@ namespace gr {
{
const int16_t *in = (const int16_t *) input_items[0];
int8_t *out = (int8_t *) output_items[0];
-
+
volk_16i_convert_8i(out, in, d_vlen*noutput_items);
-
+
return noutput_items;
}
diff --git a/gr-blocks/lib/short_to_char_impl.h b/gr-blocks/lib/short_to_char_impl.h
index 491d9bb250..387b5b4cb3 100644
--- a/gr-blocks/lib/short_to_char_impl.h
+++ b/gr-blocks/lib/short_to_char_impl.h
@@ -42,6 +42,6 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-
+
#endif /* INCLUDED_SHORT_TO_CHAR_IMPL_H */
diff --git a/gr-blocks/lib/short_to_float_impl.cc b/gr-blocks/lib/short_to_float_impl.cc
index fce0da77b3..609cc7fdb6 100644
--- a/gr-blocks/lib/short_to_float_impl.cc
+++ b/gr-blocks/lib/short_to_float_impl.cc
@@ -54,7 +54,7 @@ namespace gr {
{
const short *in = (const short *) input_items[0];
float *out = (float *) output_items[0];
-
+
volk_16i_s32f_convert_32f(out, in, d_scale, d_vlen*noutput_items);
return noutput_items;
diff --git a/gr-blocks/lib/short_to_float_impl.h b/gr-blocks/lib/short_to_float_impl.h
index 1b34a4f420..7976b58a09 100644
--- a/gr-blocks/lib/short_to_float_impl.h
+++ b/gr-blocks/lib/short_to_float_impl.h
@@ -46,6 +46,6 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-
+
#endif /* INCLUDED_SHORT_TO_FLOAT_IMPL_H */
diff --git a/gr-blocks/lib/socket_pdu_impl.cc b/gr-blocks/lib/socket_pdu_impl.cc
index a467452c3f..756e2dfd0f 100644
--- a/gr-blocks/lib/socket_pdu_impl.cc
+++ b/gr-blocks/lib/socket_pdu_impl.cc
@@ -45,7 +45,7 @@ namespace gr {
d_tcp_no_delay(tcp_no_delay)
{
d_rxbuf.resize(MTU);
-
+
message_port_register_in(PDU_PORT_ID);
message_port_register_out(PDU_PORT_ID);
@@ -83,9 +83,9 @@ namespace gr {
if (type == "TCP_SERVER") {
d_acceptor_tcp.reset(new boost::asio::ip::tcp::acceptor(d_io_service, d_tcp_endpoint));
d_acceptor_tcp->set_option(boost::asio::ip::tcp::acceptor::reuse_address(true));
-
+
start_tcp_accept();
-
+
set_msg_handler(PDU_PORT_ID, boost::bind(&socket_pdu_impl::tcp_server_send, this, _1));
}
else if (type =="TCP_CLIENT") {
@@ -99,26 +99,26 @@ namespace gr {
set_msg_handler(PDU_PORT_ID, boost::bind(&socket_pdu_impl::tcp_client_send, this, _1));
d_tcp_socket->async_read_some(boost::asio::buffer(d_rxbuf),
- boost::bind(&socket_pdu_impl::handle_tcp_read, this,
- boost::asio::placeholders::error,
+ boost::bind(&socket_pdu_impl::handle_tcp_read, this,
+ boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred));
}
else if (type =="UDP_SERVER") {
d_udp_socket.reset(new boost::asio::ip::udp::socket(d_io_service, d_udp_endpoint));
- d_udp_socket->async_receive_from(boost::asio::buffer(d_rxbuf), d_udp_endpoint_other,
+ d_udp_socket->async_receive_from(boost::asio::buffer(d_rxbuf), d_udp_endpoint_other,
boost::bind(&socket_pdu_impl::handle_udp_read, this,
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred));
-
+
set_msg_handler(PDU_PORT_ID, boost::bind(&socket_pdu_impl::udp_send, this, _1));
}
else if (type =="UDP_CLIENT") {
d_udp_socket.reset(new boost::asio::ip::udp::socket(d_io_service, d_udp_endpoint));
- d_udp_socket->async_receive_from(boost::asio::buffer(d_rxbuf), d_udp_endpoint_other,
+ d_udp_socket->async_receive_from(boost::asio::buffer(d_rxbuf), d_udp_endpoint_other,
boost::bind(&socket_pdu_impl::handle_udp_read, this,
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred));
-
+
set_msg_handler(PDU_PORT_ID, boost::bind(&socket_pdu_impl::udp_send, this, _1));
}
else
@@ -151,7 +151,7 @@ namespace gr {
tcp_connection::sptr new_connection = tcp_connection::make(d_acceptor_tcp->get_io_service(), d_rxbuf.size(), d_tcp_no_delay);
d_acceptor_tcp->async_accept(new_connection->socket(),
- boost::bind(&socket_pdu_impl::handle_tcp_accept, this,
+ boost::bind(&socket_pdu_impl::handle_tcp_accept, this,
new_connection, boost::asio::placeholders::error));
}
@@ -195,7 +195,7 @@ namespace gr {
{
if (d_udp_endpoint_other.address().to_string() == "0.0.0.0")
return;
-
+
pmt::pmt_t vector = pmt::cdr(msg);
size_t len = pmt::length(vector);
size_t offset = 0;
@@ -214,14 +214,14 @@ namespace gr {
if (!error) {
pmt::pmt_t vector = pmt::init_u8vector(bytes_transferred, (const uint8_t*)&d_rxbuf[0]);
pmt::pmt_t pdu = pmt::cons(pmt::PMT_NIL, vector);
-
+
message_port_pub(PDU_PORT_ID, pdu);
-
+
d_udp_socket->async_receive_from(boost::asio::buffer(d_rxbuf), d_udp_endpoint_other,
boost::bind(&socket_pdu_impl::handle_udp_read, this,
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred));
- }
+ }
}
} /* namespace blocks */
diff --git a/gr-blocks/lib/socket_pdu_impl.h b/gr-blocks/lib/socket_pdu_impl.h
index 2d5bc33518..c0262ce59a 100644
--- a/gr-blocks/lib/socket_pdu_impl.h
+++ b/gr-blocks/lib/socket_pdu_impl.h
@@ -59,7 +59,7 @@ namespace gr {
boost::shared_ptr<boost::asio::ip::udp::socket> d_udp_socket;
void handle_udp_read(const boost::system::error_code& error, size_t bytes_transferred);
void udp_send(pmt::pmt_t msg);
-
+
public:
socket_pdu_impl(std::string type, std::string addr, std::string port, int MTU = 10000, bool tcp_no_delay = false);
};
diff --git a/gr-blocks/lib/stream_pdu_base.cc b/gr-blocks/lib/stream_pdu_base.cc
index a07fa86950..a698f85d55 100644
--- a/gr-blocks/lib/stream_pdu_base.cc
+++ b/gr-blocks/lib/stream_pdu_base.cc
@@ -44,13 +44,13 @@ namespace gr {
stream_pdu_base::stream_pdu_base(int MTU)
: d_fd(-1),
- d_started(false),
+ d_started(false),
d_finished(false)
{
- // reserve space for rx buffer
+ // reserve space for rx buffer
d_rxbuf.resize(MTU,0);
}
-
+
stream_pdu_base::~stream_pdu_base()
{
stop_rxthread();
@@ -87,11 +87,11 @@ namespace gr {
if (result <= 0)
throw std::runtime_error("stream_pdu_base, bad socket read!");
- pmt::pmt_t vector = pmt::init_u8vector(result, &d_rxbuf[0]);
+ pmt::pmt_t vector = pmt::init_u8vector(result, &d_rxbuf[0]);
pmt::pmt_t pdu = pmt::cons(pmt::PMT_NIL, vector);
d_blk->message_port_pub(d_port, pdu);
- }
+ }
}
bool
@@ -101,12 +101,12 @@ namespace gr {
timeval tv;
tv.tv_sec = 0;
tv.tv_usec = timeout_us;
-
+
//setup rset for timeout
fd_set rset;
FD_ZERO(&rset);
FD_SET(d_fd, &rset);
-
+
//call select with timeout on receive socket
return ::select(d_fd+1, &rset, NULL, NULL, &tv) > 0;
}
@@ -118,7 +118,7 @@ namespace gr {
size_t offset(0);
size_t itemsize(pdu::itemsize(pdu::type_from_pmt(vector)));
int len(pmt::length(vector)*itemsize);
-
+
const int rv = write(d_fd, pmt::uniform_vector_elements(vector, offset), len);
if (rv != len) {
std::cerr << boost::format("WARNING: stream_pdu_base::send(pdu) write failed! (d_fd=%d, len=%d, rv=%d)")
diff --git a/gr-blocks/lib/stream_pdu_base.h b/gr-blocks/lib/stream_pdu_base.h
index cd976eed42..6a2bf9b15e 100644
--- a/gr-blocks/lib/stream_pdu_base.h
+++ b/gr-blocks/lib/stream_pdu_base.h
@@ -53,7 +53,7 @@ namespace gr {
void start_rxthread(basic_block *blk, pmt::pmt_t rxport);
void stop_rxthread();
};
-
+
} /* namespace blocks */
} /* namespace gr */
diff --git a/gr-blocks/lib/stream_to_streams_impl.cc b/gr-blocks/lib/stream_to_streams_impl.cc
index 76974ce0ad..2832a21563 100644
--- a/gr-blocks/lib/stream_to_streams_impl.cc
+++ b/gr-blocks/lib/stream_to_streams_impl.cc
@@ -56,7 +56,7 @@ namespace gr {
const char *in = (const char *)input_items[0];
char **outv = (char **)&output_items[0];
int nstreams = output_items.size();
-
+
for (int i = 0; i < noutput_items; i++) {
for (int j = 0; j < nstreams; j++) {
memcpy(outv[j], in, item_size);
@@ -64,7 +64,7 @@ namespace gr {
in += item_size;
}
}
-
+
return noutput_items;
}
diff --git a/gr-blocks/lib/stream_to_tagged_stream_impl.cc b/gr-blocks/lib/stream_to_tagged_stream_impl.cc
index 08395bf653..82344447cc 100644
--- a/gr-blocks/lib/stream_to_tagged_stream_impl.cc
+++ b/gr-blocks/lib/stream_to_tagged_stream_impl.cc
@@ -1,17 +1,17 @@
/* -*- c++ -*- */
-/*
+/*
* Copyright 2013 <+YOU OR YOUR COMPANY+>.
- *
+ *
* This 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.
- *
+ *
* This software 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 this software; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street,
diff --git a/gr-blocks/lib/stream_to_vector_impl.cc b/gr-blocks/lib/stream_to_vector_impl.cc
index 8576c7fbf5..60b330c246 100644
--- a/gr-blocks/lib/stream_to_vector_impl.cc
+++ b/gr-blocks/lib/stream_to_vector_impl.cc
@@ -34,7 +34,7 @@ namespace gr {
{
return gnuradio::get_initial_sptr(new stream_to_vector_impl(itemsize, nitems_per_block));
}
-
+
stream_to_vector_impl::stream_to_vector_impl(size_t itemsize, size_t nitems_per_block)
: sync_decimator ("stream_to_vector",
io_signature::make (1, 1, itemsize),
@@ -42,19 +42,19 @@ namespace gr {
nitems_per_block)
{
}
-
+
int
stream_to_vector_impl::work(int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items)
{
size_t block_size = output_signature()->sizeof_stream_item (0);
-
+
const char *in = (const char *) input_items[0];
char *out = (char *) output_items[0];
-
+
memcpy (out, in, noutput_items * block_size);
-
+
return noutput_items;
}
diff --git a/gr-blocks/lib/streams_to_stream_impl.cc b/gr-blocks/lib/streams_to_stream_impl.cc
index 8d2f330443..cbd31c4b72 100644
--- a/gr-blocks/lib/streams_to_stream_impl.cc
+++ b/gr-blocks/lib/streams_to_stream_impl.cc
@@ -49,14 +49,14 @@ namespace gr {
gr_vector_void_star &output_items)
{
size_t itemsize = output_signature()->sizeof_stream_item (0);
-
+
const char **inv = (const char **) &input_items[0];
char *out = (char *) output_items[0];
int nstreams = input_items.size();
-
+
assert (noutput_items % nstreams == 0);
int ni = noutput_items / nstreams;
-
+
for (int i = 0; i < ni; i++){
for (int j = 0; j < nstreams; j++){
memcpy(out, inv[j], itemsize);
@@ -64,7 +64,7 @@ namespace gr {
inv[j] += itemsize;
}
}
-
+
return noutput_items;
}
diff --git a/gr-blocks/lib/streams_to_vector_impl.cc b/gr-blocks/lib/streams_to_vector_impl.cc
index a65e11b57c..fc6c5c44a9 100644
--- a/gr-blocks/lib/streams_to_vector_impl.cc
+++ b/gr-blocks/lib/streams_to_vector_impl.cc
@@ -49,10 +49,10 @@ namespace gr {
{
size_t itemsize = input_signature()->sizeof_stream_item(0);
int nstreams = input_items.size();
-
+
const char **inv = (const char **) &input_items[0];
char *out = (char *) output_items[0];
-
+
for (int i = 0; i < noutput_items; i++){
for (int j = 0; j < nstreams; j++){
memcpy(out, inv[j], itemsize);
diff --git a/gr-blocks/lib/stretch_ff_impl.h b/gr-blocks/lib/stretch_ff_impl.h
index b44de80314..69cf95ac73 100644
--- a/gr-blocks/lib/stretch_ff_impl.h
+++ b/gr-blocks/lib/stretch_ff_impl.h
@@ -27,7 +27,7 @@
namespace gr {
namespace blocks {
-
+
class stretch_ff_impl : public stretch_ff
{
private:
@@ -37,7 +37,7 @@ namespace gr {
public:
stretch_ff_impl(float lo, size_t vlen);
~stretch_ff_impl();
-
+
float lo() const { return d_lo; }
void set_lo(float lo) { d_lo = lo; }
size_t vlen() const { return d_vlen; }
diff --git a/gr-blocks/lib/sub_XX_impl.cc.t b/gr-blocks/lib/sub_XX_impl.cc.t
index d0fa167495..6c7484a5d4 100644
--- a/gr-blocks/lib/sub_XX_impl.cc.t
+++ b/gr-blocks/lib/sub_XX_impl.cc.t
@@ -51,14 +51,14 @@ namespace gr {
gr_vector_void_star &output_items)
{
@O_TYPE@ *optr = (@O_TYPE@ *) output_items[0];
-
+
int ninputs = input_items.size ();
-
+
for (size_t i = 0; i < noutput_items*d_vlen; i++){
@I_TYPE@ acc = ((@I_TYPE@ *) input_items[0])[i];
for (int j = 1; j < ninputs; j++)
acc -= ((@I_TYPE@ *) input_items[j])[i];
-
+
*optr++ = (@O_TYPE@) acc;
}
diff --git a/gr-blocks/lib/tag_debug_impl.cc b/gr-blocks/lib/tag_debug_impl.cc
index 7f4502c346..d2409adb8b 100644
--- a/gr-blocks/lib/tag_debug_impl.cc
+++ b/gr-blocks/lib/tag_debug_impl.cc
@@ -118,11 +118,11 @@ namespace gr {
get_tags_in_range(d_tags, i, abs_N, end_N, d_filter);
if(d_display) {
- sout << "Input Stream: " << std::setw(2) << std::setfill('0')
+ sout << "Input Stream: " << std::setw(2) << std::setfill('0')
<< i << std::setfill(' ') << std::endl;
for(d_tags_itr = d_tags.begin(); d_tags_itr != d_tags.end(); d_tags_itr++) {
sout << std::setw(10) << "Offset: " << d_tags_itr->offset
- << std::setw(10) << "Source: "
+ << std::setw(10) << "Source: "
<< (pmt::is_symbol(d_tags_itr->srcid) ? pmt::symbol_to_string(d_tags_itr->srcid) : "n/a")
<< std::setw(10) << "Key: " << pmt::symbol_to_string(d_tags_itr->key)
<< std::setw(10) << "Value: ";
diff --git a/gr-blocks/lib/tagged_stream_multiply_length_impl.cc b/gr-blocks/lib/tagged_stream_multiply_length_impl.cc
index 18a8eef1e9..b9136151fa 100644
--- a/gr-blocks/lib/tagged_stream_multiply_length_impl.cc
+++ b/gr-blocks/lib/tagged_stream_multiply_length_impl.cc
@@ -47,7 +47,7 @@ namespace gr {
set_tag_propagation_policy(TPP_DONT);
set_relative_rate(1);
message_port_register_in(pmt::intern("set_scalar"));
- set_msg_handler(pmt::intern("set_scalar"),
+ set_msg_handler(pmt::intern("set_scalar"),
boost::bind(&tagged_stream_multiply_length_impl::set_scalar_pmt, this, _1));
}
@@ -60,7 +60,7 @@ namespace gr {
gr_vector_int &ninput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items)
- {
+ {
const void* in = input_items[0];
void* out = output_items[0];
diff --git a/gr-blocks/lib/tagged_stream_to_pdu_impl.h b/gr-blocks/lib/tagged_stream_to_pdu_impl.h
index 0a83a87beb..2c3a7ca44a 100644
--- a/gr-blocks/lib/tagged_stream_to_pdu_impl.h
+++ b/gr-blocks/lib/tagged_stream_to_pdu_impl.h
@@ -49,4 +49,4 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-#endif
+#endif
diff --git a/gr-blocks/lib/tags_strobe_impl.cc b/gr-blocks/lib/tags_strobe_impl.cc
index cfe335781c..ddae7fe21f 100644
--- a/gr-blocks/lib/tags_strobe_impl.cc
+++ b/gr-blocks/lib/tags_strobe_impl.cc
@@ -47,7 +47,7 @@ namespace gr {
}
tags_strobe_impl::tags_strobe_impl(size_t sizeof_stream_item,
- pmt::pmt_t value, uint64_t nsamps,
+ pmt::pmt_t value, uint64_t nsamps,
pmt::pmt_t key)
: sync_block("tags_strobe",
io_signature::make(0, 0, 0),
@@ -77,7 +77,7 @@ namespace gr {
{
d_tag.key = key;
}
-
+
void
tags_strobe_impl::set_nsamps(uint64_t nsamps)
{
@@ -99,7 +99,7 @@ namespace gr {
d_tag.offset = d_offset;
add_item_tag(0, d_tag);
}
-
+
return noutput_items;
}
diff --git a/gr-blocks/lib/tcp_connection.cc b/gr-blocks/lib/tcp_connection.cc
index 970732e656..27bdf6a57d 100644
--- a/gr-blocks/lib/tcp_connection.cc
+++ b/gr-blocks/lib/tcp_connection.cc
@@ -73,7 +73,7 @@ namespace gr {
d_block = block;
d_socket.set_option(boost::asio::ip::tcp::no_delay(d_no_delay));
d_socket.async_read_some(boost::asio::buffer(d_buf),
- boost::bind(&tcp_connection::handle_read, this,
+ boost::bind(&tcp_connection::handle_read, this,
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred));
}
diff --git a/gr-blocks/lib/tcp_connection.h b/gr-blocks/lib/tcp_connection.h
index 9193928c41..6eeb64e54f 100644
--- a/gr-blocks/lib/tcp_connection.h
+++ b/gr-blocks/lib/tcp_connection.h
@@ -28,7 +28,7 @@
#include <pmt/pmt.h>
namespace gr {
-
+
class basic_block;
namespace blocks {
@@ -42,10 +42,10 @@ namespace gr {
bool d_no_delay;
tcp_connection(boost::asio::io_service& io_service, int MTU=10000, bool no_delay=false);
-
+
public:
typedef boost::shared_ptr<tcp_connection> sptr;
-
+
static sptr make(boost::asio::io_service& io_service, int MTU=10000, bool no_delay=false);
boost::asio::ip::tcp::socket& socket() { return d_socket; };
diff --git a/gr-blocks/lib/tsb_vector_sink_X_impl.cc.t b/gr-blocks/lib/tsb_vector_sink_X_impl.cc.t
index 450339ac5e..c5b79f94a4 100644
--- a/gr-blocks/lib/tsb_vector_sink_X_impl.cc.t
+++ b/gr-blocks/lib/tsb_vector_sink_X_impl.cc.t
@@ -1,19 +1,19 @@
/* -*- c++ -*- */
-/*
+/*
* Copyright 2014 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,
diff --git a/gr-blocks/lib/tsb_vector_sink_X_impl.h.t b/gr-blocks/lib/tsb_vector_sink_X_impl.h.t
index 8a97378ab2..3bf5892cc2 100644
--- a/gr-blocks/lib/tsb_vector_sink_X_impl.h.t
+++ b/gr-blocks/lib/tsb_vector_sink_X_impl.h.t
@@ -1,19 +1,19 @@
/* -*- c++ -*- */
-/*
+/*
* Copyright 2014 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,
diff --git a/gr-blocks/lib/tuntap_pdu_impl.cc b/gr-blocks/lib/tuntap_pdu_impl.cc
index 0e2b63fab7..0b9ef424ef 100644
--- a/gr-blocks/lib/tuntap_pdu_impl.cc
+++ b/gr-blocks/lib/tuntap_pdu_impl.cc
@@ -79,7 +79,7 @@ namespace gr {
// set up output message port
message_port_register_out(PDU_PORT_ID);
start_rxthread(this, PDU_PORT_ID);
-
+
// set up input message port
message_port_register_in(PDU_PORT_ID);
set_msg_handler(PDU_PORT_ID, boost::bind(&tuntap_pdu_impl::send, this, _1));
@@ -134,6 +134,6 @@ namespace gr {
return fd;
}
#endif
-
+
} /* namespace blocks */
}/* namespace gr */
diff --git a/gr-blocks/lib/uchar_to_float_impl.cc b/gr-blocks/lib/uchar_to_float_impl.cc
index 20887881d9..0068094861 100644
--- a/gr-blocks/lib/uchar_to_float_impl.cc
+++ b/gr-blocks/lib/uchar_to_float_impl.cc
@@ -50,9 +50,9 @@ namespace gr {
{
const unsigned char *in = (const unsigned char *) input_items[0];
float *out = (float *) output_items[0];
-
+
uchar_array_to_float (in, out, noutput_items);
-
+
return noutput_items;
}
diff --git a/gr-blocks/lib/uchar_to_float_impl.h b/gr-blocks/lib/uchar_to_float_impl.h
index 1e3f4d59c5..602662c54f 100644
--- a/gr-blocks/lib/uchar_to_float_impl.h
+++ b/gr-blocks/lib/uchar_to_float_impl.h
@@ -40,6 +40,6 @@ namespace gr {
} /* namespace blocks */
} /* namespace gr */
-
+
#endif /* INCLUDED_UCHAR_TO_FLOAT_IMPL_H */
diff --git a/gr-blocks/lib/udp_source_impl.cc b/gr-blocks/lib/udp_source_impl.cc
index 5fa06072ae..c3ab8953e7 100644
--- a/gr-blocks/lib/udp_source_impl.cc
+++ b/gr-blocks/lib/udp_source_impl.cc
@@ -212,7 +212,7 @@ namespace gr {
else {
d_sent += to_send;
}
-
+
return nitems;
}
diff --git a/gr-blocks/lib/unpack_k_bits.cc b/gr-blocks/lib/unpack_k_bits.cc
index 394c15ba84..967d7e17d9 100644
--- a/gr-blocks/lib/unpack_k_bits.cc
+++ b/gr-blocks/lib/unpack_k_bits.cc
@@ -50,7 +50,7 @@ namespace gr {
int n = 0;
for(int i = 0; i < nbytes; i++) {
unsigned int t = bytes[i];
- for(unsigned int j = d_k - 1; j >= 0; j--)
+ for(int j = d_k - 1; j >= 0; j--)
bits[n++] = (t >> j) & 0x01;
}
}
diff --git a/gr-blocks/lib/vector_insert_X_impl.cc.t b/gr-blocks/lib/vector_insert_X_impl.cc.t
index a4645816d8..4e1eb45da3 100644
--- a/gr-blocks/lib/vector_insert_X_impl.cc.t
+++ b/gr-blocks/lib/vector_insert_X_impl.cc.t
@@ -1,19 +1,19 @@
/* -*- c++ -*- */
/*
* Copyright 2012 Free Software Foundation, Inc.
- *
+ *
* This file is part of GNU Radio
- *
+ *
* GNU Radio is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
* any later version.
- *
+ *
* GNU Radio is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with GNU Radio; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street,
@@ -75,7 +75,7 @@ namespace gr {
while((oo < noutput_items) && (ii < ninput_items[0])) {
//printf("oo = %d, ii = %d, d_offset = %d, noutput_items = %d, ninput_items[0] = %d", oo, ii, d_offset, noutput_items, ninput_items[0]);
//printf(", d_periodicity = %d\n", d_periodicity);
-
+
if(d_offset >= ((int)d_data.size())) { // if we are in the copy region
int max_copy = std::min(std::min(noutput_items - oo, ninput_items[0] - ii),
d_periodicity - d_offset);
@@ -85,17 +85,17 @@ namespace gr {
ii += max_copy;
oo += max_copy;
d_offset = (d_offset + max_copy)%d_periodicity;
- }
+ }
else { // if we are in the insertion region
int max_copy = std::min(noutput_items - oo, ((int)d_data.size()) - d_offset);
//printf("copy %d from d_data[%d] to out[%d]\n", max_copy, d_offset, oo);
memcpy(&out[oo], &d_data[d_offset], sizeof(@TYPE@)*max_copy);
//printf(" * memcpy returned.\n");
- oo += max_copy;
+ oo += max_copy;
d_offset = (d_offset + max_copy)%d_periodicity;
//printf(" ## (inelse) oo = %d, d_offset = %d\n", oo, d_offset);
}
-
+
//printf(" # exit else, on to next loop.\n");
}
//printf(" # got out of loop\n");
diff --git a/gr-blocks/lib/vector_insert_X_impl.h.t b/gr-blocks/lib/vector_insert_X_impl.h.t
index 12a7bbe6bc..fa03f52693 100644
--- a/gr-blocks/lib/vector_insert_X_impl.h.t
+++ b/gr-blocks/lib/vector_insert_X_impl.h.t
@@ -1,19 +1,19 @@
/* -*- c++ -*- */
/*
* Copyright 2012,2013 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,
diff --git a/gr-blocks/lib/vector_map_impl.cc b/gr-blocks/lib/vector_map_impl.cc
index 05a320141c..883d6a3195 100644
--- a/gr-blocks/lib/vector_map_impl.cc
+++ b/gr-blocks/lib/vector_map_impl.cc
@@ -50,7 +50,7 @@ namespace gr {
out_sizeofs.push_back(mapping[i].size()*item_size);
}
return out_sizeofs;
- }
+ }
vector_map::sptr
vector_map::make(size_t item_size, std::vector<size_t> in_vlens,
diff --git a/gr-blocks/lib/vector_sink_X_impl.cc.t b/gr-blocks/lib/vector_sink_X_impl.cc.t
index a8d674f15a..62c6d17dc7 100644
--- a/gr-blocks/lib/vector_sink_X_impl.cc.t
+++ b/gr-blocks/lib/vector_sink_X_impl.cc.t
@@ -40,7 +40,7 @@ namespace gr {
return gnuradio::get_initial_sptr
(new @NAME_IMPL@(vlen));
}
-
+
@NAME_IMPL@::@NAME_IMPL@(int vlen)
: sync_block("@NAME@",
io_signature::make(1, 1, sizeof(@TYPE@) * vlen),
diff --git a/gr-blocks/lib/vector_to_stream_impl.cc b/gr-blocks/lib/vector_to_stream_impl.cc
index 637a252052..941a1f1752 100644
--- a/gr-blocks/lib/vector_to_stream_impl.cc
+++ b/gr-blocks/lib/vector_to_stream_impl.cc
@@ -49,12 +49,12 @@ namespace gr {
gr_vector_void_star &output_items)
{
size_t block_size = output_signature()->sizeof_stream_item (0);
-
+
const char *in = (const char *) input_items[0];
char *out = (char *) output_items[0];
-
+
memcpy (out, in, noutput_items * block_size);
-
+
return noutput_items;
}
diff --git a/gr-blocks/lib/vector_to_streams_impl.cc b/gr-blocks/lib/vector_to_streams_impl.cc
index 99f35b0ab3..87f3e8e23c 100644
--- a/gr-blocks/lib/vector_to_streams_impl.cc
+++ b/gr-blocks/lib/vector_to_streams_impl.cc
@@ -50,10 +50,10 @@ namespace gr {
{
size_t itemsize = output_signature()->sizeof_stream_item(0);
int nstreams = output_items.size();
-
+
const char *in = (const char *) input_items[0];
char **outv = (char **) &output_items[0];
-
+
for (int i = 0; i < noutput_items; i++){
for (int j = 0; j < nstreams; j++){
memcpy(outv[j], in, itemsize);
diff --git a/gr-blocks/lib/wavfile_sink_impl.cc b/gr-blocks/lib/wavfile_sink_impl.cc
index 57bdb5f291..0851fd3283 100644
--- a/gr-blocks/lib/wavfile_sink_impl.cc
+++ b/gr-blocks/lib/wavfile_sink_impl.cc
@@ -175,7 +175,7 @@ namespace gr {
}
close();
-
+
return true;
}
diff --git a/gr-blocks/lib/xor_XX_impl.cc.t b/gr-blocks/lib/xor_XX_impl.cc.t
index 6b9df4f4fb..aa7a542ed9 100644
--- a/gr-blocks/lib/xor_XX_impl.cc.t
+++ b/gr-blocks/lib/xor_XX_impl.cc.t
@@ -51,14 +51,14 @@ namespace gr {
gr_vector_void_star &output_items)
{
@O_TYPE@ *optr = (@O_TYPE@ *) output_items[0];
-
+
int ninputs = input_items.size ();
-
+
for (size_t i = 0; i < noutput_items*d_vlen; i++){
@I_TYPE@ acc = ((@I_TYPE@ *) input_items[0])[i];
for (int j = 1; j < ninputs; j++)
acc ^= ((@I_TYPE@ *) input_items[j])[i];
-
+
*optr++ = (@O_TYPE@) acc;
}
diff --git a/gr-blocks/python/blocks/CMakeLists.txt b/gr-blocks/python/blocks/CMakeLists.txt
index 9287975730..44977313cf 100644
--- a/gr-blocks/python/blocks/CMakeLists.txt
+++ b/gr-blocks/python/blocks/CMakeLists.txt
@@ -51,7 +51,7 @@ if(ENABLE_TESTING)
${CMAKE_CURRENT_SOURCE_DIR}/qa_ctrlport_probes.py
)
endif(NOT ENABLE_GR_CTRLPORT)
-
+
foreach(py_qa_test_file ${py_qa_test_files})
get_filename_component(py_qa_test_name ${py_qa_test_file} NAME_WE)
GR_ADD_TEST(${py_qa_test_name} ${QA_PYTHON_EXECUTABLE} ${PYTHON_DASH_B} ${py_qa_test_file})
diff --git a/gr-blocks/python/blocks/__init__.py b/gr-blocks/python/blocks/__init__.py
index b7ba794ea2..fc4cc7ab66 100644
--- a/gr-blocks/python/blocks/__init__.py
+++ b/gr-blocks/python/blocks/__init__.py
@@ -30,7 +30,7 @@ except ImportError:
dirname, filename = os.path.split(os.path.abspath(__file__))
__path__.append(os.path.join(dirname, "..", "..", "swig"))
from blocks_swig import *
-
+
from stream_to_vector_decimator import *
#alias old add_vXX and multiply_vXX
diff --git a/gr-blocks/python/blocks/qa_burst_tagger.py b/gr-blocks/python/blocks/qa_burst_tagger.py
index 50aaf893bd..b1a4f942f1 100644
--- a/gr-blocks/python/blocks/qa_burst_tagger.py
+++ b/gr-blocks/python/blocks/qa_burst_tagger.py
@@ -43,7 +43,7 @@ class test_burst_tagger(gr_unittest.TestCase):
self.tb.connect(trg, (op,1))
self.tb.connect(op, snk)
self.tb.run()
-
+
x = snk.current_tags()
self.assertEqual(2, x[0].offset)
self.assertEqual(4, x[1].offset)
diff --git a/gr-blocks/python/blocks/qa_cpp_py_binding.py b/gr-blocks/python/blocks/qa_cpp_py_binding.py
index c15633df82..35e073d584 100755
--- a/gr-blocks/python/blocks/qa_cpp_py_binding.py
+++ b/gr-blocks/python/blocks/qa_cpp_py_binding.py
@@ -20,7 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-#
+#
# This program tests mixed python and c++ ctrlport exports in a single app
#
@@ -126,7 +126,7 @@ class test_cpp_py_binding(gr_unittest.TestCase):
val = get5()
rval = v5.get()
self.assertComplexTuplesAlmostEqual(val, rval, 5)
-
+
val = get6()
rval = v6.get()
self.assertComplexTuplesAlmostEqual(val, rval, 5)
diff --git a/gr-blocks/python/blocks/qa_cpp_py_binding_set.py b/gr-blocks/python/blocks/qa_cpp_py_binding_set.py
index 2e4198c04d..69ed6d1d2b 100755
--- a/gr-blocks/python/blocks/qa_cpp_py_binding_set.py
+++ b/gr-blocks/python/blocks/qa_cpp_py_binding_set.py
@@ -20,7 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-#
+#
# This program tests mixed python and c++ GRCP sets in a single app
#
diff --git a/gr-blocks/python/blocks/qa_endian_swap.py b/gr-blocks/python/blocks/qa_endian_swap.py
index ea6e10fb8f..dd6ee349b2 100644
--- a/gr-blocks/python/blocks/qa_endian_swap.py
+++ b/gr-blocks/python/blocks/qa_endian_swap.py
@@ -57,7 +57,7 @@ class test_endian_swap(gr_unittest.TestCase):
self.tb.connect(src, op, dst)
self.tb.run()
result_data = list(dst.data())
-
+
self.assertEqual(expected_result, result_data)
if __name__ == '__main__':
diff --git a/gr-blocks/python/blocks/qa_file_metadata.py b/gr-blocks/python/blocks/qa_file_metadata.py
index a36eb48fc5..0d7628bbdc 100644
--- a/gr-blocks/python/blocks/qa_file_metadata.py
+++ b/gr-blocks/python/blocks/qa_file_metadata.py
@@ -57,7 +57,7 @@ class test_file_metadata(gr_unittest.TestCase):
data = sig_source_c(samp_rate, 1000, 1, N)
src = blocks.vector_source_c(data)
fsnk = blocks.file_meta_sink(gr.sizeof_gr_complex, outfile,
- samp_rate, 1,
+ samp_rate, 1,
blocks.GR_FILE_FLOAT, True,
1000000, extras_str, detached)
fsnk.set_unbuffered(True)
@@ -136,7 +136,7 @@ class test_file_metadata(gr_unittest.TestCase):
data = sig_source_c(samp_rate, 1000, 1, N)
src = blocks.vector_source_c(data)
fsnk = blocks.file_meta_sink(gr.sizeof_gr_complex, outfile,
- samp_rate, 1,
+ samp_rate, 1,
blocks.GR_FILE_FLOAT, True,
1000000, extras_str, detached)
fsnk.set_unbuffered(True)
diff --git a/gr-blocks/python/blocks/qa_hier_block2_message_connections.py b/gr-blocks/python/blocks/qa_hier_block2_message_connections.py
index bc575b779a..0f8a4b8543 100644
--- a/gr-blocks/python/blocks/qa_hier_block2_message_connections.py
+++ b/gr-blocks/python/blocks/qa_hier_block2_message_connections.py
@@ -102,7 +102,7 @@ class test_hier_block2_message_connections(gr_unittest.TestCase):
receive_port):
"""assert that the given sender block has a subscription for the given
receiver block on the appropriate send and receive ports
-
+
:param sender: a block sptr to the message sender
:param string send_port: the port messages are being sent on
:param receiver: a block sptr to the message receiver
@@ -116,7 +116,7 @@ class test_hier_block2_message_connections(gr_unittest.TestCase):
def assert_has_num_subscriptions(self, block, port, number):
"""assert that the given block has the given number of subscriptions
on the given port
-
+
:param block: a block sptr
:param string port: the port name
:param number: the number of subscriptions expected
diff --git a/gr-blocks/python/blocks/qa_keep_one_in_n.py b/gr-blocks/python/blocks/qa_keep_one_in_n.py
index 2a5d936cce..d8251fe611 100755
--- a/gr-blocks/python/blocks/qa_keep_one_in_n.py
+++ b/gr-blocks/python/blocks/qa_keep_one_in_n.py
@@ -36,7 +36,6 @@ class test_keep_one_in_n(gr_unittest.TestCase):
src = blocks.vector_source_b(src_data);
op = blocks.keep_one_in_n(gr.sizeof_char, 5)
dst = blocks.vector_sink_b()
- print "HERE"
self.tb.connect(src, op, dst)
self.tb.run()
self.assertEqual(dst.data(), expected_data)
diff --git a/gr-blocks/python/blocks/qa_message.py b/gr-blocks/python/blocks/qa_message.py
index abfc652199..1d677007b4 100755
--- a/gr-blocks/python/blocks/qa_message.py
+++ b/gr-blocks/python/blocks/qa_message.py
@@ -143,7 +143,7 @@ class test_message(gr_unittest.TestCase):
rec_msg = snk.get_message(0)
self.assertTrue(pmt.eqv(rec_msg, msg))
-
+
if __name__ == '__main__':
gr_unittest.run(test_message, "test_message.xml")
diff --git a/gr-blocks/python/blocks/qa_pack_k_bits.py b/gr-blocks/python/blocks/qa_pack_k_bits.py
index b73bf3d5a9..ab0b638a09 100755
--- a/gr-blocks/python/blocks/qa_pack_k_bits.py
+++ b/gr-blocks/python/blocks/qa_pack_k_bits.py
@@ -62,7 +62,7 @@ class test_pack(gr_unittest.TestCase):
self.tb.connect(src,unpack,pack,snk);
self.tb.run()
self.assertEqual(list(expected_results), list(snk.data()));
-
+
if __name__ == '__main__':
gr_unittest.run(test_pack, "test_pack.xml")
diff --git a/gr-blocks/python/blocks/qa_patterned_interleaver.py b/gr-blocks/python/blocks/qa_patterned_interleaver.py
index c9fe7b123b..2d3168db40 100755
--- a/gr-blocks/python/blocks/qa_patterned_interleaver.py
+++ b/gr-blocks/python/blocks/qa_patterned_interleaver.py
@@ -40,14 +40,14 @@ class test_patterned_interleaver (gr_unittest.TestCase):
itg = blocks.patterned_interleaver(gr.sizeof_float, dst_data)
dst = blocks.vector_sink_f()
head = blocks.head(gr.sizeof_float, 8);
-
+
self.tb.connect( src0, (itg,0) );
self.tb.connect( src1, (itg,1) );
self.tb.connect( src2, (itg,2) );
self.tb.connect( itg, head, dst );
-
+
self.tb.run()
self.assertEqual(list(dst_data), list(dst.data()))
-
+
if __name__ == '__main__':
gr_unittest.run(test_patterned_interleaver, "test_patterned_interleaver.xml")
diff --git a/gr-blocks/python/blocks/qa_python_message_passing.py b/gr-blocks/python/blocks/qa_python_message_passing.py
index e391c5f952..7bb5fbe10e 100644
--- a/gr-blocks/python/blocks/qa_python_message_passing.py
+++ b/gr-blocks/python/blocks/qa_python_message_passing.py
@@ -69,7 +69,7 @@ class message_consumer(gr.sync_block):
self.msg_list.append(pmt.from_long(pmt.to_long(msg)))
class test_python_message_passing(gr_unittest.TestCase):
-
+
def setUp(self):
self.tb = gr.top_block()
@@ -90,17 +90,17 @@ class test_python_message_passing(gr_unittest.TestCase):
src = blocks.vector_source_f(src_data, False)
msg_gen = message_generator(msg_list, msg_interval)
msg_cons = message_consumer()
-
+
# Connect vector source to message gen
self.tb.connect(src, msg_gen)
-
+
# Connect message generator to message consumer
self.tb.msg_connect(msg_gen, 'out_port', msg_cons, 'in_port')
# Verify that the messgae port query functions work
self.assertEqual(pmt.to_python(msg_gen.message_ports_out())[0], 'out_port')
self.assertEqual('in_port' in pmt.to_python(msg_cons.message_ports_in()), True)
-
+
# Run to verify message passing
self.tb.start()
@@ -108,13 +108,13 @@ class test_python_message_passing(gr_unittest.TestCase):
while msg_gen.msg_ctr < num_msgs:
time.sleep(0.5)
self.tb.stop()
- self.tb.wait()
-
+ self.tb.wait()
+
# Verify that the message consumer got all the messages
self.assertEqual(num_msgs, len(msg_cons.msg_list))
for i in range(num_msgs):
self.assertTrue(pmt.equal(msg_list[i], msg_cons.msg_list[i]))
-
+
if __name__ == '__main__':
- gr_unittest.run(test_python_message_passing,
+ gr_unittest.run(test_python_message_passing,
'test_python_message_passing.xml')
diff --git a/gr-blocks/python/blocks/qa_sample_and_hold.py b/gr-blocks/python/blocks/qa_sample_and_hold.py
index d6aedc23cc..f645148695 100644
--- a/gr-blocks/python/blocks/qa_sample_and_hold.py
+++ b/gr-blocks/python/blocks/qa_sample_and_hold.py
@@ -45,7 +45,7 @@ class test_sample_and_hold(gr_unittest.TestCase):
self.tb.connect(ctrl, (op,1))
self.tb.connect(op, dst)
self.tb.run()
-
+
result = dst.data()
self.assertFloatTuplesAlmostEqual(expected_result, result, places=6)
diff --git a/gr-blocks/python/blocks/qa_stretch.py b/gr-blocks/python/blocks/qa_stretch.py
index 66a04d53f6..e91a375abf 100755
--- a/gr-blocks/python/blocks/qa_stretch.py
+++ b/gr-blocks/python/blocks/qa_stretch.py
@@ -47,7 +47,7 @@ class test_stretch(gr_unittest.TestCase):
deinter = blocks.vector_to_streams(gr.sizeof_float, 2)
dst0 = blocks.vector_sink_f()
dst1 = blocks.vector_sink_f()
-
+
tb.connect(src0, (inter,0))
tb.connect(src1, (inter,1))
tb.connect(inter, op)
diff --git a/gr-blocks/python/blocks/qa_tag_gate.py b/gr-blocks/python/blocks/qa_tag_gate.py
index 74fe5a7bcd..4d22c73adb 100755
--- a/gr-blocks/python/blocks/qa_tag_gate.py
+++ b/gr-blocks/python/blocks/qa_tag_gate.py
@@ -1,22 +1,22 @@
#!/usr/bin/env python
-#
+#
# Copyright 2013 <+YOU OR YOUR COMPANY+>.
-#
+#
# This 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.
-#
+#
# This software 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 this software; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street,
# Boston, MA 02110-1301, USA.
-#
+#
from gnuradio import gr, gr_unittest, blocks
import pmt
diff --git a/gr-blocks/python/blocks/qa_tags_strobe.py b/gr-blocks/python/blocks/qa_tags_strobe.py
index 51b1c63bad..c4e1b5d8bc 100644
--- a/gr-blocks/python/blocks/qa_tags_strobe.py
+++ b/gr-blocks/python/blocks/qa_tags_strobe.py
@@ -41,7 +41,7 @@ class test_tags_strobe(gr_unittest.TestCase):
pmt.intern("TEST"), nsamps)
hed = blocks.head(gr.sizeof_float, N)
dst = blocks.vector_sink_f()
-
+
self.tb.connect(src, hed, dst)
self.tb.run()
@@ -61,7 +61,7 @@ class test_tags_strobe(gr_unittest.TestCase):
pmt.intern("TEST"), nsamps)
hed = blocks.head(gr.sizeof_float, N)
dst = blocks.vector_sink_f()
-
+
self.tb.connect(src, hed, dst)
self.tb.run()
@@ -81,7 +81,7 @@ class test_tags_strobe(gr_unittest.TestCase):
pmt.intern("TEST"), nsamps)
hed = blocks.head(gr.sizeof_float, N)
dst = blocks.vector_sink_f()
-
+
self.tb.connect(src, hed, dst)
self.tb.run()
diff --git a/gr-blocks/python/blocks/qa_tsb_vector_sink_X.py b/gr-blocks/python/blocks/qa_tsb_vector_sink_X.py
index aa7154e6a5..ac3cd38d45 100755
--- a/gr-blocks/python/blocks/qa_tsb_vector_sink_X.py
+++ b/gr-blocks/python/blocks/qa_tsb_vector_sink_X.py
@@ -1,25 +1,25 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
-#
+#
# Copyright 2014 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.
-#
+#
import pmt
from gnuradio import gr, gr_unittest
diff --git a/gr-blocks/python/blocks/qa_vector_insert.py b/gr-blocks/python/blocks/qa_vector_insert.py
index 5f6e84665c..e4c4055125 100755
--- a/gr-blocks/python/blocks/qa_vector_insert.py
+++ b/gr-blocks/python/blocks/qa_vector_insert.py
@@ -1,24 +1,24 @@
#!/usr/bin/env python
#
# Copyright 2012-2013 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.
-#
+#
from gnuradio import gr, gr_unittest, blocks
import math
diff --git a/gr-blocks/python/blocks/qa_vector_map.py b/gr-blocks/python/blocks/qa_vector_map.py
index 94bdb1989b..1c07de826f 100644
--- a/gr-blocks/python/blocks/qa_vector_map.py
+++ b/gr-blocks/python/blocks/qa_vector_map.py
@@ -67,7 +67,7 @@ class test_vector_map(gr_unittest.TestCase):
for n in range(0, N):
result_data = list(dsts[n].data())
self.assertEqual(expected_results[n], result_data)
-
+
def test_interleaving(self):
# Takes 3 streams (a, b and c)
# Outputs 2 streams.
@@ -90,8 +90,8 @@ class test_vector_map(gr_unittest.TestCase):
dstD = blocks.vector_sink_f(2)
dstE = blocks.vector_sink_f(4)
self.tb.connect(srcA, (vmap, 0))
- self.tb.connect(srcB, (vmap, 1))
- self.tb.connect(srcC, (vmap, 2))
+ self.tb.connect(srcB, (vmap, 1))
+ self.tb.connect(srcC, (vmap, 2))
self.tb.connect((vmap, 0), dstD)
self.tb.connect((vmap, 1), dstE)
self.tb.run()
diff --git a/gr-blocks/python/blocks/stream_to_vector_decimator.py b/gr-blocks/python/blocks/stream_to_vector_decimator.py
index 984d84b4bb..bcbfd96b8b 100644
--- a/gr-blocks/python/blocks/stream_to_vector_decimator.py
+++ b/gr-blocks/python/blocks/stream_to_vector_decimator.py
@@ -30,7 +30,7 @@ class stream_to_vector_decimator(gr.hier_block2):
def __init__(self, item_size, sample_rate, vec_rate, vec_len):
"""
Create the block chain.
-
+
Args:
item_size: the number of bytes per sample
sample_rate: the rate of incoming samples
@@ -53,7 +53,7 @@ class stream_to_vector_decimator(gr.hier_block2):
def set_sample_rate(self, sample_rate):
"""
Set the new sampling rate and update the decimator.
-
+
Args:
sample_rate: the new rate
"""
@@ -63,7 +63,7 @@ class stream_to_vector_decimator(gr.hier_block2):
def set_vec_rate(self, vec_rate):
"""
Set the new vector rate and update the decimator.
-
+
Args:
vec_rate: the new rate
"""
@@ -73,7 +73,7 @@ class stream_to_vector_decimator(gr.hier_block2):
def set_decimation(self, decim):
"""
Set the decimation parameter directly.
-
+
Args:
decim: the new decimation
"""
diff --git a/gr-blocks/swig/CMakeLists.txt b/gr-blocks/swig/CMakeLists.txt
index a3cf23b33c..f4c428c878 100644
--- a/gr-blocks/swig/CMakeLists.txt
+++ b/gr-blocks/swig/CMakeLists.txt
@@ -59,7 +59,7 @@ foreach(swigfile ${GR_SWIG_BLOCK_IFILES})
set(GR_SWIG_DOC_FILE ${CMAKE_CURRENT_BINARY_DIR}/${swigfile}_doc.i)
set(GR_SWIG_DOC_DIRS
${CMAKE_CURRENT_SOURCE_DIR}/../include/gnuradio/blocks
- ${CMAKE_CURRENT_BINARY_DIR}/../include/gnuradio/blocks
+ ${CMAKE_CURRENT_BINARY_DIR}/../include/gnuradio/blocks
)
set(GR_SWIG_DOCS_TARGET_DEPS runtime_swig_swig_doc)
set(GR_SWIG_TARGET_DEPS blocks_generated_includes)
diff --git a/gr-channels/doc/channels.dox b/gr-channels/doc/channels.dox
index 05d51b9ba2..656d454be6 100644
--- a/gr-channels/doc/channels.dox
+++ b/gr-channels/doc/channels.dox
@@ -55,7 +55,7 @@ in the Doppler frequency shift as a normalized value, a line-of-sight
a random seed to the noise generators. These parameters are provided
in the documentation as:
-\li N The number of sinusiods to use in simulating the channel 8 is a good value
+\li N The number of sinusiods to use in simulating the channel 8 is a good value
\li fDTs normalized maximum Doppler frequency, fD * Ts
\li LOS include Line-of-Site path? selects between Rayleigh (NLOS) and Rician (LOS) models
\li K Rician factor (ratio of the specular power to the scattered power)
@@ -73,7 +73,7 @@ and another vector of the corresponding magnitudes of the PDP. We also
specify the number of taps in the filter to simulate this. These
parameters are provided in the documentation as:
-\li N The number of sinusiods to use in simulating the channel 8 is a good value
+\li N The number of sinusiods to use in simulating the channel 8 is a good value
\li fDTs normalized maximum Doppler frequency, fD * Ts
\li LOS include Line-of-Site path? selects between Rayleigh (NLOS) and Rician (LOS) models
\li K Rician factor (ratio of the specular power to the scattered power)
diff --git a/gr-channels/examples/channel_tone_response.grc b/gr-channels/examples/channel_tone_response.grc
index 37e2171eb2..c9a24b1799 100644
--- a/gr-channels/examples/channel_tone_response.grc
+++ b/gr-channels/examples/channel_tone_response.grc
@@ -86,7 +86,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>fftsize</key>
@@ -262,7 +262,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>fftsize</key>
diff --git a/gr-channels/examples/demo_gmsk.grc b/gr-channels/examples/demo_gmsk.grc
index a5531fb46b..16f8d9b5af 100644
--- a/gr-channels/examples/demo_gmsk.grc
+++ b/gr-channels/examples/demo_gmsk.grc
@@ -294,7 +294,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
@@ -384,7 +384,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
diff --git a/gr-channels/examples/demo_ofdm.grc b/gr-channels/examples/demo_ofdm.grc
index f3c3a80e0e..bc84ef0ee8 100644
--- a/gr-channels/examples/demo_ofdm.grc
+++ b/gr-channels/examples/demo_ofdm.grc
@@ -521,7 +521,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
@@ -1100,7 +1100,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
diff --git a/gr-channels/examples/demo_qam.grc b/gr-channels/examples/demo_qam.grc
index d4c56d7d1a..bc9b2d0de8 100644
--- a/gr-channels/examples/demo_qam.grc
+++ b/gr-channels/examples/demo_qam.grc
@@ -498,7 +498,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
@@ -686,7 +686,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
diff --git a/gr-channels/examples/demo_quantization.grc b/gr-channels/examples/demo_quantization.grc
index 134e224e7f..958645b7c7 100644
--- a/gr-channels/examples/demo_quantization.grc
+++ b/gr-channels/examples/demo_quantization.grc
@@ -601,7 +601,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>fftsize</key>
@@ -864,7 +864,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
diff --git a/gr-channels/grc/channels_block_tree.xml b/gr-channels/grc/channels_block_tree.xml
index 22c1fc8732..383f4b199c 100644
--- a/gr-channels/grc/channels_block_tree.xml
+++ b/gr-channels/grc/channels_block_tree.xml
@@ -2,19 +2,19 @@
<!--
Copyright 2012 Free Software Foundation, Inc.
-
+
This file is part of GNU Radio
-
+
GNU Radio is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
-
+
GNU Radio is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with GNU Radio; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street,
diff --git a/gr-channels/grc/channels_dynamic_channel_model.xml b/gr-channels/grc/channels_dynamic_channel_model.xml
index 5735232537..d9022c5792 100644
--- a/gr-channels/grc/channels_dynamic_channel_model.xml
+++ b/gr-channels/grc/channels_dynamic_channel_model.xml
@@ -129,7 +129,7 @@
- Dynamic Frequency Selective Fading Channel
- Dynamic Center Frequency Offset Model
- Dynamic Sample Rate Offset Model
- - Additive White Gaussian Noise
+ - Additive White Gaussian Noise
The desired power delay profile and max doppler frequency may be provided to achieve the desired Ricean or Rayleigh fading scenario. For center frequency and sample rate offset models, a gaussian random walk process is conducted for each. The single sample step variance and maximum deviation for these two processes is specified and may be modified to simulate various desired stability effects. Lastly AWGN is added to simulate a typical receiver/thermal noise floor after propagation, and the variance may be modified here as desired.
</doc>
diff --git a/gr-channels/grc/channels_fading_model.xml b/gr-channels/grc/channels_fading_model.xml
index 2b68cfa2ec..d47f0624f1 100644
--- a/gr-channels/grc/channels_fading_model.xml
+++ b/gr-channels/grc/channels_fading_model.xml
@@ -61,7 +61,7 @@
<type>complex</type>
</source>
<doc>
- This algorithm implements the method described in
+ This algorithm implements the method described in
Compact Rayleigh and Rician fading simulator based on random walk processes
A. Alimohammad S.F. Fard B.F. Cockburn C. Schlegel
26th November 2008
diff --git a/gr-channels/grc/channels_selective_fading_model.xml b/gr-channels/grc/channels_selective_fading_model.xml
index ad33645ddb..c9b89a0da9 100644
--- a/gr-channels/grc/channels_selective_fading_model.xml
+++ b/gr-channels/grc/channels_selective_fading_model.xml
@@ -79,18 +79,18 @@
</source>
<doc>
int d_N=8; // number of sinusoids used to simulate gain on each ray
- float d_fDTs=0.01 // normalized maximum doppler frequency (f_doppler / f_samprate)
+ float d_fDTs=0.01 // normalized maximum doppler frequency (f_doppler / f_samprate)
float d_K=4; // Rician factor (ratio of the specular power to the scattered power)
bool d_LOS=true; // LOS path exists? chooses Rician (LOS) vs Rayleigh (NLOS) model.
int seed=0; // noise seed
int ntaps; // Number of FIR taps to use in selective fading model
-
+
These two vectors comprise the Power Delay Profile of the signal
float_vector delays // Time delay in the fir filter (in samples) for each arriving WSSUS Ray
- float_vector mags // Magnitude corresponding to each WSSUS Ray
+ float_vector mags // Magnitude corresponding to each WSSUS Ray
If using a LOS model, the first delay and mag should correspond with the LOS component
-
+
References:
The flat-fading portion of the algorithm implements the following
@@ -98,7 +98,7 @@
A. Alimohammad S.F. Fard B.F. Cockburn C. Schlegel
26th November 2008
- The frequency selective extension of the block roughly implements
+ The frequency selective extension of the block roughly implements
A Low-Complexity Hardware Implementation of Discrete-Time
Frequency-Selective Rayleigh Fading Channels
F. Ren and Y. Zheng
diff --git a/gr-channels/include/gnuradio/channels/cfo_model.h b/gr-channels/include/gnuradio/channels/cfo_model.h
index ef889f0cee..33efb64379 100644
--- a/gr-channels/include/gnuradio/channels/cfo_model.h
+++ b/gr-channels/include/gnuradio/channels/cfo_model.h
@@ -29,7 +29,7 @@
namespace gr {
namespace channels {
-
+
/*!
* \brief channel simulator
* \ingroup channel_models_blk
@@ -38,7 +38,7 @@ namespace gr {
* This block implements a carrier frequency offset model that
* can be used to simulate carrier frequency drift typically from
* mixer LO drift on either transmit or receive hardware.
- *
+ *
* A clipped gaussian random walk process is used.
*/
class CHANNELS_API cfo_model : virtual public sync_block
diff --git a/gr-channels/include/gnuradio/channels/channel_model.h b/gr-channels/include/gnuradio/channels/channel_model.h
index abe95e1d93..fb2258e342 100644
--- a/gr-channels/include/gnuradio/channels/channel_model.h
+++ b/gr-channels/include/gnuradio/channels/channel_model.h
@@ -29,7 +29,7 @@
namespace gr {
namespace channels {
-
+
/*!
* \brief Basic channel simulator.
* \ingroup channel_models_blk
diff --git a/gr-channels/include/gnuradio/channels/channel_model2.h b/gr-channels/include/gnuradio/channels/channel_model2.h
index 995f7f0048..5770a42f80 100644
--- a/gr-channels/include/gnuradio/channels/channel_model2.h
+++ b/gr-channels/include/gnuradio/channels/channel_model2.h
@@ -29,7 +29,7 @@
namespace gr {
namespace channels {
-
+
/*!
* \brief Basic channel simulator allowing time-varying frequency
* and timing inputs.
diff --git a/gr-channels/include/gnuradio/channels/dynamic_channel_model.h b/gr-channels/include/gnuradio/channels/dynamic_channel_model.h
index 0ac45fd0d4..3f496a8525 100644
--- a/gr-channels/include/gnuradio/channels/dynamic_channel_model.h
+++ b/gr-channels/include/gnuradio/channels/dynamic_channel_model.h
@@ -29,7 +29,7 @@
namespace gr {
namespace channels {
-
+
/*!
* \brief dynamic channel simulator
* \ingroup dynamic_channel_models_blk
@@ -37,9 +37,9 @@ namespace gr {
* \details
* This block implements a dynamic channel model simulator that can
* be used to help evaluate, design, and test various signals,
- * waveforms, and algorithms.
+ * waveforms, and algorithms.
*
- * This model allows the user to set up an AWGN noise cource, a
+ * This model allows the user to set up an AWGN noise cource, a
* random walk process to simulate carrier frequency drift, a random
* walk process to simulate sample rate offset drive, and a frequency
* selective fading channel response that is either Rayleigh or Ricean
@@ -66,7 +66,7 @@ namespace gr {
* \param K Rician K-factor, the ratio of specular to diffuse power in the model
* \param delays A list of fractional sample delays making up the power delay profile
* \param mags A list of magnitudes corresponding to each delay time in the power delay profile
- * \param ntaps_mpath The length of the filter to interpolate the power delay profile over.
+ * \param ntaps_mpath The length of the filter to interpolate the power delay profile over.
Delays in the PDP must lie between 0 and ntaps_mpath, fractional delays
will be sinc-interpolated only to the width of this filter.
* \param noise_amp Specifies the standard deviation of the AWGN process
diff --git a/gr-channels/include/gnuradio/channels/fading_model.h b/gr-channels/include/gnuradio/channels/fading_model.h
index fe8bb33615..4b1411369a 100644
--- a/gr-channels/include/gnuradio/channels/fading_model.h
+++ b/gr-channels/include/gnuradio/channels/fading_model.h
@@ -29,7 +29,7 @@
namespace gr {
namespace channels {
-
+
/*!
* \brief fading simulator
* \ingroup channel_models_blk
@@ -37,7 +37,7 @@ namespace gr {
* \details
* This block implements a basic fading model simulator that can
* be used to help evaluate, design, and test various signals,
- * waveforms, and algorithms.
+ * waveforms, and algorithms.
*/
class CHANNELS_API fading_model : virtual public sync_block
{
@@ -47,7 +47,7 @@ namespace gr {
/*! \brief Build the channel simulator.
*
- * \param N The number of sinusiods to use in simulating the channel; 8 is a good value
+ * \param N The number of sinusiods to use in simulating the channel; 8 is a good value
* \param fDTs normalized maximum Doppler frequency, fD * Ts
* \param LOS include Line-of-Site path? selects between Rayleigh (NLOS) and Rician (LOS) models
* \param K Rician factor (ratio of the specular power to the scattered power)
diff --git a/gr-channels/include/gnuradio/channels/selective_fading_model.h b/gr-channels/include/gnuradio/channels/selective_fading_model.h
index 914388c5fe..5788d8dc09 100644
--- a/gr-channels/include/gnuradio/channels/selective_fading_model.h
+++ b/gr-channels/include/gnuradio/channels/selective_fading_model.h
@@ -29,7 +29,7 @@
namespace gr {
namespace channels {
-
+
const float default_delays[] = {0.0,0.1,0.5};
const float default_mags[] = {1.0,0.8,0.3};
@@ -40,7 +40,7 @@ namespace gr {
* \details
* This block implements a basic fading model simulator that can
* be used to help evaluate, design, and test various signals,
- * waveforms, and algorithms.
+ * waveforms, and algorithms.
*/
class CHANNELS_API selective_fading_model : virtual public sync_block
{
@@ -50,7 +50,7 @@ namespace gr {
/*! \brief Build the channel simulator.
*
- * \param N The number of sinusiods to use in simulating the channel; 8 is a good value
+ * \param N The number of sinusiods to use in simulating the channel; 8 is a good value
* \param fDTs normalized maximum Doppler frequency, fD * Ts
* \param LOS include Line-of-Site path? selects between Rayleigh (NLOS) and Rician (LOS) models
* \param K Rician factor (ratio of the specular power to the scattered power)
@@ -68,7 +68,7 @@ namespace gr {
std::vector<float> mags,
int ntaps
);
-
+
virtual float fDTs() = 0;
virtual float K() = 0;
virtual float step() = 0;
diff --git a/gr-channels/include/gnuradio/channels/sro_model.h b/gr-channels/include/gnuradio/channels/sro_model.h
index f747da0c36..acac36e219 100644
--- a/gr-channels/include/gnuradio/channels/sro_model.h
+++ b/gr-channels/include/gnuradio/channels/sro_model.h
@@ -29,14 +29,14 @@
namespace gr {
namespace channels {
-
+
/*!
* \brief Sample Rate Offset Model
* \ingroup channel_models_blk
*
* \details
* This block implements a model that varies sample rate offset
- * with respect to time by performing a random walk on the
+ * with respect to time by performing a random walk on the
* interpolation rate.
*/
class CHANNELS_API sro_model : virtual public block
diff --git a/gr-channels/lib/CMakeLists.txt b/gr-channels/lib/CMakeLists.txt
index 46bb38b270..c74e3386df 100644
--- a/gr-channels/lib/CMakeLists.txt
+++ b/gr-channels/lib/CMakeLists.txt
@@ -81,3 +81,23 @@ GR_LIBRARY_FOO(gnuradio-channels RUNTIME_COMPONENT "channels_runtime" DEVEL_COMP
add_dependencies(gnuradio-channels
channels_generated_includes channels_generated_swigs
gnuradio-runtime gnuradio-filter gnuradio-analog gnuradio-blocks)
+
+if(ENABLE_STATIC_LIBS)
+ add_library(gnuradio-channels_static STATIC ${channels_sources})
+
+ add_dependencies(gnuradio-channels_static
+ channels_generated_includes
+ gnuradio-runtime_static
+ gnuradio-filter_static
+ gnuradio-analog_static
+ gnuradio-blocks_static)
+
+ if(NOT WIN32)
+ set_target_properties(gnuradio-channels_static
+ PROPERTIES OUTPUT_NAME gnuradio-channels)
+ endif(NOT WIN32)
+
+ install(TARGETS gnuradio-channels_static
+ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT "channels_devel" # .lib file
+ )
+endif(ENABLE_STATIC_LIBS)
diff --git a/gr-channels/lib/cfo_model_impl.cc b/gr-channels/lib/cfo_model_impl.cc
index 09a4d9fb99..81d2c59fb1 100644
--- a/gr-channels/lib/cfo_model_impl.cc
+++ b/gr-channels/lib/cfo_model_impl.cc
@@ -26,7 +26,7 @@
namespace gr {
namespace channels {
-
+
cfo_model::sptr
cfo_model::make(
double sample_rate_hz,
@@ -83,7 +83,7 @@ namespace gr {
out[i] = in[i] * gr_complex(d_table.cos(d_angle), d_table.sin(d_angle));
}
return noutput_items;
-
+
}
void
@@ -95,13 +95,13 @@ namespace gr {
alias(), "cfo", &d_cfo,
pmt::mp(-10.0f), pmt::mp(10.0f), pmt::mp(0.0f),
"", "Current CFO in Hz", RPC_PRIVLVL_MIN,
- DISPTIME | DISPOPTSTRIP)));
+ DISPTIME | DISPOPTSTRIP)));
add_rpc_variable(
rpcbasic_sptr(new rpcbasic_register_variable<double>(
alias(), "cfo_max", &d_max_dev_hz,
pmt::mp(-10.0f), pmt::mp(10.0f), pmt::mp(0.0f),
"", "Max CFO in Hz", RPC_PRIVLVL_MIN,
- DISPTIME | DISPOPTSTRIP)));
+ DISPTIME | DISPOPTSTRIP)));
#endif /* GR_CTRLPORT */
}
diff --git a/gr-channels/lib/cfo_model_impl.h b/gr-channels/lib/cfo_model_impl.h
index ae51c340d9..a8774c91bb 100644
--- a/gr-channels/lib/cfo_model_impl.h
+++ b/gr-channels/lib/cfo_model_impl.h
@@ -52,7 +52,7 @@ namespace gr {
double std_dev_hz,
double max_dev_hz,
double noise_seed=0 );
-
+
~cfo_model_impl();
void setup_rpc();
int work(int, gr_vector_const_void_star&, gr_vector_void_star&);
diff --git a/gr-channels/lib/channel_model2_impl.cc b/gr-channels/lib/channel_model2_impl.cc
index 7533871de2..0c158be5af 100644
--- a/gr-channels/lib/channel_model2_impl.cc
+++ b/gr-channels/lib/channel_model2_impl.cc
@@ -21,14 +21,14 @@
*/
#define _USE_MATH_DEFINES
-
+
#include "channel_model2_impl.h"
#include <gnuradio/io_signature.h>
#include <iostream>
namespace gr {
namespace channels {
-
+
channel_model2::sptr
channel_model2::make(double noise_voltage,
double epsilon,
@@ -150,7 +150,7 @@ namespace gr {
pmt::mp(0.0), pmt::mp(2.0), pmt::mp(0.0),
"", "Timing Offset", RPC_PRIVLVL_MIN,
DISPTIME | DISPOPTSTRIP)));
-
+
add_rpc_variable(
rpcbasic_sptr(new rpcbasic_register_get<channel_model2, std::vector<gr_complex> >(
alias(), "taps",
diff --git a/gr-channels/lib/channel_model2_impl.h b/gr-channels/lib/channel_model2_impl.h
index 3bf1adb44e..2cafce4c82 100644
--- a/gr-channels/lib/channel_model2_impl.h
+++ b/gr-channels/lib/channel_model2_impl.h
@@ -57,7 +57,7 @@ namespace gr {
const std::vector<gr_complex> &taps,
double noise_seed,
bool block_tags);
-
+
~channel_model2_impl();
void setup_rpc();
diff --git a/gr-channels/lib/channel_model_impl.cc b/gr-channels/lib/channel_model_impl.cc
index 7db4e6aa5c..6e3e49de73 100644
--- a/gr-channels/lib/channel_model_impl.cc
+++ b/gr-channels/lib/channel_model_impl.cc
@@ -26,7 +26,7 @@
namespace gr {
namespace channels {
-
+
channel_model::sptr
channel_model::make(double noise_voltage,
double frequency_offset,
@@ -168,7 +168,7 @@ namespace gr {
pmt::mp(0.0), pmt::mp(2.0), pmt::mp(0.0),
"", "Timing Offset", RPC_PRIVLVL_MIN,
DISPTIME | DISPOPTSTRIP)));
-
+
add_rpc_variable(
rpcbasic_sptr(new rpcbasic_register_get<channel_model, std::vector<gr_complex> >(
alias(), "taps",
diff --git a/gr-channels/lib/channel_model_impl.h b/gr-channels/lib/channel_model_impl.h
index 3faf6c3bbe..9247b245c0 100644
--- a/gr-channels/lib/channel_model_impl.h
+++ b/gr-channels/lib/channel_model_impl.h
@@ -56,7 +56,7 @@ namespace gr {
const std::vector<gr_complex> &taps,
double noise_seed,
bool block_tags);
-
+
~channel_model_impl();
void setup_rpc();
diff --git a/gr-channels/lib/dynamic_channel_model_impl.cc b/gr-channels/lib/dynamic_channel_model_impl.cc
index 7c2044570a..e9e9a93d0c 100644
--- a/gr-channels/lib/dynamic_channel_model_impl.cc
+++ b/gr-channels/lib/dynamic_channel_model_impl.cc
@@ -26,7 +26,7 @@
namespace gr {
namespace channels {
-
+
dynamic_channel_model::sptr
dynamic_channel_model::make(
double samp_rate,
@@ -38,7 +38,7 @@ namespace gr {
double doppler_freq,
bool LOS_model,
float K,
- std::vector<float> delays,
+ std::vector<float> delays,
std::vector<float> mags,
int ntaps_mpath,
double noise_amp,
@@ -62,7 +62,7 @@ namespace gr {
double doppler_freq,
bool LOS_model,
float K,
- std::vector<float> delays,
+ std::vector<float> delays,
std::vector<float> mags,
int ntaps_mpath,
double noise_amp,
diff --git a/gr-channels/lib/dynamic_channel_model_impl.h b/gr-channels/lib/dynamic_channel_model_impl.h
index 2eabac0be0..b0d42c8875 100644
--- a/gr-channels/lib/dynamic_channel_model_impl.h
+++ b/gr-channels/lib/dynamic_channel_model_impl.h
@@ -63,7 +63,7 @@ namespace gr {
int ntaps_mpath,
double noise_amp,
double noise_seed);
-
+
~dynamic_channel_model_impl();
void setup_rpc();
@@ -77,9 +77,9 @@ namespace gr {
double doppler_freq() const { return d_fader->fDTs()*samp_rate(); }
double K() const { return d_fader->K(); }
- void set_samp_rate(double sr) {
+ void set_samp_rate(double sr) {
d_fader->set_fDTs( doppler_freq()/samp_rate() );
- d_sro_model->set_samp_rate(sr);
+ d_sro_model->set_samp_rate(sr);
d_cfo_model->set_samp_rate(sr); }
void set_sro_dev_std(double dev) { d_sro_model->set_max_dev(dev); }
void set_sro_dev_max(double dev) { d_sro_model->set_max_dev(dev); }
diff --git a/gr-channels/lib/fading_model_impl.cc b/gr-channels/lib/fading_model_impl.cc
index 4ea4d1274e..7eb9d0612c 100644
--- a/gr-channels/lib/fading_model_impl.cc
+++ b/gr-channels/lib/fading_model_impl.cc
@@ -37,7 +37,7 @@
namespace gr {
namespace channels {
-
+
fading_model::sptr
fading_model::make( unsigned int N, float fDTs, bool LOS, float K, int seed )
{
@@ -109,7 +109,7 @@ namespace gr {
#endif /* GR_CTRLPORT */
}
- int
+ int
fading_model_impl::work (int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items)
diff --git a/gr-channels/lib/flat_fader_impl.cc b/gr-channels/lib/flat_fader_impl.cc
index 33cf37d23b..0b4cab2337 100644
--- a/gr-channels/lib/flat_fader_impl.cc
+++ b/gr-channels/lib/flat_fader_impl.cc
@@ -29,11 +29,11 @@ namespace gr {
seed_1((int)seed),
dist_1(-M_PI, M_PI),
rv_1( seed_1, dist_1 ), // U(-pi,pi)
-
+
seed_2((int)seed+1),
dist_2(0, 1),
rv_2( seed_2, dist_2 ), // U(0,1)
-
+
d_N(N),
d_fDTs(fDTs),
d_theta(rv_1()),
@@ -42,12 +42,12 @@ namespace gr {
d_m(0),
d_K(K),
d_LOS(LOS),
-
+
d_psi(d_N+1, 0),
d_phi(d_N+1, 0),
-
+
d_table(8*1024),
-
+
scale_sin(sqrtf(2.0/d_N)),
scale_los(sqrtf(d_K)/sqrtf(d_K+1)),
scale_nlos(1/sqrtf(d_K+1))
@@ -58,8 +58,8 @@ namespace gr {
d_phi[i] = rv_1();
}
}
-
-
+
+
gr_complex flat_fader_impl::next_sample(){
gr_complex H(0,0);
diff --git a/gr-channels/lib/flat_fader_impl.h b/gr-channels/lib/flat_fader_impl.h
index 08c55db3ed..ae782ffc78 100644
--- a/gr-channels/lib/flat_fader_impl.h
+++ b/gr-channels/lib/flat_fader_impl.h
@@ -37,7 +37,7 @@
#define FASTSINCOS 2
namespace gr {
- namespace channels {
+ namespace channels {
class flat_fader_impl {
private:
@@ -45,12 +45,12 @@ namespace gr {
boost::mt19937 seed_1;
boost::uniform_real<> dist_1; // U(-pi,pi)
boost::variate_generator<boost::mt19937&, boost::uniform_real<> > rv_1;
-
+
// random walk variate
boost::mt19937 seed_2;
boost::uniform_real<> dist_2; // U(-pi,pi)
boost::variate_generator<boost::mt19937&, boost::uniform_real<> > rv_2;
-
+
public:
int d_N; // number of sinusoids
float d_fDTs; // normalized maximum doppler frequency
@@ -58,24 +58,24 @@ namespace gr {
float d_theta_los;
float d_step; // maximum random walk step size
uint64_t d_m; // sample counter
-
+
float d_K; // Rician factor (ratio of the specular power to the scattered power)
bool d_LOS; // LOS path exists? chooses Rician (LOS) vs Rayleigh (NLOS) model.
-
+
std::vector<float> d_psi; // in-phase initial phase
std::vector<float> d_phi; // quadrature initial phase
-
+
std::vector<float> d_costable;
-
+
sincostable d_table;
-
+
float scale_sin, scale_los, scale_nlos;
-
+
void update_theta();
-
+
flat_fader_impl(unsigned int N, float fDTs, bool LOS, float K, int seed);
gr_complex next_sample();
-
+
}; /* class flat_fader_impl */
} /* namespace channels */
} /* namespace gr */
diff --git a/gr-channels/lib/selective_fading_model_impl.cc b/gr-channels/lib/selective_fading_model_impl.cc
index 53d5b3349b..dfd7b74ca9 100644
--- a/gr-channels/lib/selective_fading_model_impl.cc
+++ b/gr-channels/lib/selective_fading_model_impl.cc
@@ -37,7 +37,7 @@
namespace gr {
namespace channels {
-
+
selective_fading_model::sptr
selective_fading_model::make( unsigned int N, float fDTs, bool LOS, float K, int seed, std::vector<float> delays, std::vector<float> mags, int ntaps)
{
@@ -60,7 +60,7 @@ namespace gr {
for(size_t i=0; i<mags.size(); i++){
d_faders.push_back(new gr::channels::flat_fader_impl(N, fDTs, (i==0)&&(LOS), K, seed+i));
}
-
+
// set up tap history
if(ntaps < 1){ throw std::runtime_error("ntaps must be >= 1"); }
set_history(1+ntaps);
@@ -74,7 +74,7 @@ namespace gr {
}
}
- int
+ int
selective_fading_model_impl::work (int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items)
@@ -89,13 +89,13 @@ namespace gr {
for(size_t j=0; j<d_taps.size(); j++){
d_taps[j] = gr_complex(0,0);
}
-
+
// add each flat fading component to the taps
for(size_t j=0; j<d_faders.size(); j++){
gr_complex ff_H(d_faders[j]->next_sample());
for(size_t k=0; k<d_taps.size(); k++){
float dist = k-d_delays[j];
- float interpmag = d_sintable.sinc(2*M_PI*dist);
+ float interpmag = d_sintable.sinc(2*M_PI*dist);
d_taps[k] += ff_H * interpmag * d_mags[j];
}
}
@@ -106,7 +106,7 @@ namespace gr {
sum += in[i+j] * d_taps[d_taps.size()-j-1];
}
- // assign output
+ // assign output
out[i] = sum;
}
diff --git a/gr-channels/lib/selective_fading_model_impl.h b/gr-channels/lib/selective_fading_model_impl.h
index 769077aea2..39e3474bc6 100644
--- a/gr-channels/lib/selective_fading_model_impl.h
+++ b/gr-channels/lib/selective_fading_model_impl.h
@@ -58,15 +58,15 @@ namespace gr {
virtual float K(){ return d_faders[0]->d_K; }
virtual float step(){ return d_faders[0]->d_step; }
- virtual void set_fDTs(float fDTs){
+ virtual void set_fDTs(float fDTs){
BOOST_FOREACH( gr::channels::flat_fader_impl* fader, d_faders )
{ fader->d_fDTs = fDTs; fader->d_step = powf(0.00125*fDTs, 1.1); }
}
- virtual void set_K(float K){
+ virtual void set_K(float K){
BOOST_FOREACH( gr::channels::flat_fader_impl* fader, d_faders )
{ fader->d_K = K; fader->scale_los = sqrtf(fader->d_K)/sqrtf(fader->d_K+1); fader->scale_nlos = (1/sqrtf(fader->d_K+1)); }
}
- virtual void set_step(float step){
+ virtual void set_step(float step){
BOOST_FOREACH( gr::channels::flat_fader_impl* fader, d_faders )
{ fader->d_step = step; }
}
diff --git a/gr-channels/lib/sro_model_impl.cc b/gr-channels/lib/sro_model_impl.cc
index 9ae2b945a7..116d8e38d2 100644
--- a/gr-channels/lib/sro_model_impl.cc
+++ b/gr-channels/lib/sro_model_impl.cc
@@ -30,7 +30,7 @@
namespace gr {
namespace channels {
-
+
sro_model::sptr
sro_model::make(
double sample_rate_hz,
@@ -95,7 +95,7 @@ namespace gr {
d_sro = std::min(d_sro, d_max_dev_hz);
d_sro = std::max(d_sro, -d_max_dev_hz);
d_mu_inc = 1.0 + d_sro/d_samp_rate;
-
+
out[oo++] = d_interp->interpolate(&in[ii], d_mu);
double s = d_mu + d_mu_inc;
diff --git a/gr-channels/lib/sro_model_impl.h b/gr-channels/lib/sro_model_impl.h
index dda6df5cd7..bd55bf4801 100644
--- a/gr-channels/lib/sro_model_impl.h
+++ b/gr-channels/lib/sro_model_impl.h
@@ -30,7 +30,7 @@
namespace gr {
namespace channels {
-
+
class CHANNELS_API sro_model_impl
: public sro_model
{
diff --git a/gr-channels/python/channels/qa_channel_model.py b/gr-channels/python/channels/qa_channel_model.py
index c89fe44da2..fed542f44f 100755
--- a/gr-channels/python/channels/qa_channel_model.py
+++ b/gr-channels/python/channels/qa_channel_model.py
@@ -49,11 +49,11 @@ class test_channel_model(gr_unittest.TestCase):
self.tb.connect(signal, head, op, snk)
self.tb.connect(op, snk1)
- self.tb.run()
-
+ self.tb.run()
+
dst_data = snk.data()
exp_data = snk1.data()
self.assertComplexTuplesAlmostEqual(exp_data, dst_data, 5)
-
+
if __name__ == '__main__':
gr_unittest.run(test_channel_model, "test_channel_model.xml")
diff --git a/gr-channels/python/channels/qa_fading_model.py b/gr-channels/python/channels/qa_fading_model.py
index ed8a17d0ee..1e99312e82 100644
--- a/gr-channels/python/channels/qa_fading_model.py
+++ b/gr-channels/python/channels/qa_fading_model.py
@@ -50,11 +50,11 @@ class test_fading_model(gr_unittest.TestCase):
#self.tb.connect(signal, head, op, snk)
#self.tb.connect(op, snk1)
- #self.tb.run()
-
+ #self.tb.run()
+
#dst_data = snk.data()
#exp_data = snk1.data()
#self.assertComplexTuplesAlmostEqual(exp_data, dst_data, 5)
-
+
if __name__ == '__main__':
gr_unittest.run(test_fading_model, "test_fading_model.xml")
diff --git a/gr-comedi/CMakeLists.txt b/gr-comedi/CMakeLists.txt
index d09bb186b4..7c67bb56ac 100644
--- a/gr-comedi/CMakeLists.txt
+++ b/gr-comedi/CMakeLists.txt
@@ -1,17 +1,17 @@
# Copyright 2012 Free Software Foundation, Inc.
-#
+#
# This file is part of GNU Radio
-#
+#
# GNU Radio is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
-#
+#
# GNU Radio is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-#
+#
# You should have received a copy of the GNU General Public License
# along with GNU Radio; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street,
diff --git a/gr-comedi/include/gnuradio/comedi/sink_s.h b/gr-comedi/include/gnuradio/comedi/sink_s.h
index e5aa6dcd33..6d60b76069 100644
--- a/gr-comedi/include/gnuradio/comedi/sink_s.h
+++ b/gr-comedi/include/gnuradio/comedi/sink_s.h
@@ -28,7 +28,7 @@
namespace gr {
namespace comedi {
-
+
/*!
* \brief sink using COMEDI
*
diff --git a/gr-comedi/include/gnuradio/comedi/source_s.h b/gr-comedi/include/gnuradio/comedi/source_s.h
index 84c98517ce..cab6f82018 100644
--- a/gr-comedi/include/gnuradio/comedi/source_s.h
+++ b/gr-comedi/include/gnuradio/comedi/source_s.h
@@ -28,7 +28,7 @@
namespace gr {
namespace comedi {
-
+
/*!
* \brief source using COMEDI
*
diff --git a/gr-comedi/lib/CMakeLists.txt b/gr-comedi/lib/CMakeLists.txt
index 57b4df11a4..206ddb3e55 100644
--- a/gr-comedi/lib/CMakeLists.txt
+++ b/gr-comedi/lib/CMakeLists.txt
@@ -56,3 +56,16 @@ list(APPEND comedi_libs
add_library(gnuradio-comedi SHARED ${comedi_sources})
target_link_libraries(gnuradio-comedi ${comedi_libs})
GR_LIBRARY_FOO(gnuradio-comedi RUNTIME_COMPONENT "comedi_runtime" DEVEL_COMPONENT "comedi_devel")
+
+if(ENABLE_STATIC_LIBS)
+ add_library(gnuradio-comedi_static STATIC ${comedi_sources})
+
+ if(NOT WIN32)
+ set_target_properties(gnuradio-comedi_static
+ PROPERTIES OUTPUT_NAME gnuradio-comedi)
+ endif(NOT WIN32)
+
+ install(TARGETS gnuradio-comedi_static
+ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT "comedi_devel" # .lib file
+ )
+endif(ENABLE_STATIC_LIBS)
diff --git a/gr-comedi/lib/sink_s_impl.h b/gr-comedi/lib/sink_s_impl.h
index 22838a812b..738664c28c 100644
--- a/gr-comedi/lib/sink_s_impl.h
+++ b/gr-comedi/lib/sink_s_impl.h
@@ -30,7 +30,7 @@
namespace gr {
namespace comedi {
-
+
class sink_s_impl : public sink_s
{
private:
diff --git a/gr-comedi/lib/source_s_impl.cc b/gr-comedi/lib/source_s_impl.cc
index 2c839208be..4e3d9e1c08 100644
--- a/gr-comedi/lib/source_s_impl.cc
+++ b/gr-comedi/lib/source_s_impl.cc
@@ -70,7 +70,7 @@ namespace gr {
{
int aref = AREF_GROUND;
int range = 0;
-
+
d_dev = comedi_open(d_device_name.c_str());
if(d_dev == 0) {
comedi_perror(d_device_name.c_str());
@@ -214,7 +214,7 @@ namespace gr {
d_buf_back = d_buf_front;
} while(work_left > 0);
-
+
return noutput_items;
}
diff --git a/gr-comedi/lib/source_s_impl.h b/gr-comedi/lib/source_s_impl.h
index 47e78c70e7..d3ba10d231 100644
--- a/gr-comedi/lib/source_s_impl.h
+++ b/gr-comedi/lib/source_s_impl.h
@@ -30,7 +30,7 @@
namespace gr {
namespace comedi {
-
+
class source_s_impl : public source_s
{
private:
diff --git a/gr-comedi/python/comedi/__init__.py b/gr-comedi/python/comedi/__init__.py
index 939889dccb..701b82af70 100644
--- a/gr-comedi/python/comedi/__init__.py
+++ b/gr-comedi/python/comedi/__init__.py
@@ -1,22 +1,22 @@
# Copyright 2012 Free Software Foundation, Inc.
-#
+#
# This file is part of GNU Radio
-#
+#
# GNU Radio is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
-#
+#
# GNU Radio is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-#
+#
# You should have received a copy of the GNU General Public License
# along with GNU Radio; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street,
# Boston, MA 02110-1301, USA.
-#
+#
'''
Blocks and utilities for COMEDI devices
diff --git a/gr-digital/examples/demod/gfsk_loopback.grc b/gr-digital/examples/demod/gfsk_loopback.grc
index 179a8102f3..b9a7a0725e 100644
--- a/gr-digital/examples/demod/gfsk_loopback.grc
+++ b/gr-digital/examples/demod/gfsk_loopback.grc
@@ -200,7 +200,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
@@ -489,7 +489,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
diff --git a/gr-digital/examples/demod/gmsk_loopback.grc b/gr-digital/examples/demod/gmsk_loopback.grc
index 710070e908..7fb1a5f528 100644
--- a/gr-digital/examples/demod/gmsk_loopback.grc
+++ b/gr-digital/examples/demod/gmsk_loopback.grc
@@ -200,7 +200,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
@@ -446,7 +446,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
diff --git a/gr-digital/examples/demod/mpsk_demod.grc b/gr-digital/examples/demod/mpsk_demod.grc
index e6fc8a9d3e..f1f0e2fd6d 100644
--- a/gr-digital/examples/demod/mpsk_demod.grc
+++ b/gr-digital/examples/demod/mpsk_demod.grc
@@ -318,7 +318,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
@@ -377,7 +377,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>fftsize</key>
diff --git a/gr-digital/examples/demod/test_corr_and_sync.grc b/gr-digital/examples/demod/test_corr_and_sync.grc
index 496a0be356..71dca83c9a 100644
--- a/gr-digital/examples/demod/test_corr_and_sync.grc
+++ b/gr-digital/examples/demod/test_corr_and_sync.grc
@@ -1559,7 +1559,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
@@ -1925,7 +1925,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
@@ -2256,7 +2256,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
@@ -2626,7 +2626,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
diff --git a/gr-digital/examples/demod/uhd_corr_and_sync_rx.grc b/gr-digital/examples/demod/uhd_corr_and_sync_rx.grc
index c7b72441f1..fd3eaa62f1 100644
--- a/gr-digital/examples/demod/uhd_corr_and_sync_rx.grc
+++ b/gr-digital/examples/demod/uhd_corr_and_sync_rx.grc
@@ -337,7 +337,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
@@ -459,7 +459,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
@@ -546,7 +546,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
diff --git a/gr-digital/lib/CMakeLists.txt b/gr-digital/lib/CMakeLists.txt
index 926dca19fd..4ba821a307 100644
--- a/gr-digital/lib/CMakeLists.txt
+++ b/gr-digital/lib/CMakeLists.txt
@@ -217,3 +217,23 @@ add_dependencies(
gnuradio-analog
gnuradio-blocks
)
+
+if(ENABLE_STATIC_LIBS)
+ add_library(gnuradio-digital_static STATIC ${digital_sources})
+
+ add_dependencies(gnuradio-digital_static
+ digital_generated_includes
+ gnuradio-runtime_static
+ gnuradio-filter_static
+ gnuradio-analog_static
+ gnuradio-blocks_static)
+
+ if(NOT WIN32)
+ set_target_properties(gnuradio-digital_static
+ PROPERTIES OUTPUT_NAME gnuradio-digital)
+ endif(NOT WIN32)
+
+ install(TARGETS gnuradio-digital_static
+ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT "digital_devel" # .lib file
+ )
+endif(ENABLE_STATIC_LIBS)
diff --git a/gr-digital/python/digital/constellation_map_generator.py b/gr-digital/python/digital/constellation_map_generator.py
index bf689676c3..1dedd81280 100644
--- a/gr-digital/python/digital/constellation_map_generator.py
+++ b/gr-digital/python/digital/constellation_map_generator.py
@@ -1,24 +1,24 @@
#!/usr/bin/env python
#
# Copyright 2013 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.
-#
+#
def constellation_map_generator(basis_cpoints, basis_symbols, k, pi):
'''
@@ -41,7 +41,9 @@ def constellation_map_generator(basis_cpoints, basis_symbols, k, pi):
symbol_map[i] are the bits associated with
constellation_points[i]).
'''
- const_points, s = basis()
+ #const_points, s = basis()
+ const_points = basis_cpoints
+ s = basis_symbols
symbols = list()
for s_i in s:
tmp = 0
diff --git a/gr-digital/python/digital/psk_constellations.py b/gr-digital/python/digital/psk_constellations.py
index ee62c33a0c..3f28ca5843 100755
--- a/gr-digital/python/digital/psk_constellations.py
+++ b/gr-digital/python/digital/psk_constellations.py
@@ -1,24 +1,24 @@
#!/usr/bin/env python
#
# Copyright 2013 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.
-#
+#
import numpy
from constellation_map_generator import *
@@ -133,7 +133,7 @@ def psk_4_0x1_0_1():
'''
k = 0x1
pi = [0, 1]
- return constellation_map_generator(psk_4, k, pi)
+ return constellation_map_generator(psk_4()[0], psk_4()[1], k, pi)
psk_4_1 = psk_4_0x1_0_1
def psk_4_0x2_0_1():
@@ -144,7 +144,7 @@ def psk_4_0x2_0_1():
'''
k = 0x2
pi = [0, 1]
- return constellation_map_generator(psk_4, k, pi)
+ return constellation_map_generator(psk_4()[0], psk_4()[1], k, pi)
psk_4_2 = psk_4_0x2_0_1
def psk_4_0x3_0_1():
@@ -155,7 +155,7 @@ def psk_4_0x3_0_1():
'''
k = 0x3
pi = [0, 1]
- return constellation_map_generator(psk_4, k, pi)
+ return constellation_map_generator(psk_4()[0], psk_4()[1], k, pi)
psk_4_3 = psk_4_0x3_0_1
def psk_4_0x0_1_0():
@@ -166,7 +166,7 @@ def psk_4_0x0_1_0():
'''
k = 0x0
pi = [1, 0]
- return constellation_map_generator(psk_4, k, pi)
+ return constellation_map_generator(psk_4()[0], psk_4()[1], k, pi)
psk_4_4 = psk_4_0x0_1_0
def psk_4_0x1_1_0():
@@ -177,7 +177,7 @@ def psk_4_0x1_1_0():
'''
k = 0x1
pi = [1, 0]
- return constellation_map_generator(psk_4, k, pi)
+ return constellation_map_generator(psk_4()[0], psk_4()[1], k, pi)
psk_4_5 = psk_4_0x1_1_0
def psk_4_0x2_1_0():
@@ -188,7 +188,7 @@ def psk_4_0x2_1_0():
'''
k = 0x2
pi = [1, 0]
- return constellation_map_generator(psk_4, k, pi)
+ return constellation_map_generator(psk_4()[0], psk_4()[1], k, pi)
psk_4_6 = psk_4_0x2_1_0
def psk_4_0x3_1_0():
@@ -199,7 +199,7 @@ def psk_4_0x3_1_0():
'''
k = 0x3
pi = [1, 0]
- return constellation_map_generator(psk_4, k, pi)
+ return constellation_map_generator(psk_4()[0], psk_4()[1], k, pi)
psk_4_7 = psk_4_0x3_1_0
@@ -305,4 +305,3 @@ def sd_psk_4_0x3_1_0(x, Es=1):
dist = Es*numpy.sqrt(2)
return [-dist*x_re, -dist*x_im]
sd_psk_4_7 = sd_psk_4_0x3_1_0
-
diff --git a/gr-digital/python/digital/qam_constellations.py b/gr-digital/python/digital/qam_constellations.py
index 4e8ee08a61..6f9f6bfab5 100755
--- a/gr-digital/python/digital/qam_constellations.py
+++ b/gr-digital/python/digital/qam_constellations.py
@@ -1,24 +1,24 @@
#!/usr/bin/env python
#
# Copyright 2013 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.
-#
+#
import numpy
from constellation_map_generator import *
@@ -131,7 +131,7 @@ def qam_16_0x1_0_1_2_3():
'''
k = 0x1
pi = [0, 1, 2, 3]
- return constellation_map_generator(qam_16, k, pi)
+ return constellation_map_generator(qam_16()[0], qam_16()[1], k, pi)
qam_16_1 = qam_16_0x1_0_1_2_3
def qam_16_0x2_0_1_2_3():
@@ -146,7 +146,7 @@ def qam_16_0x2_0_1_2_3():
'''
k = 0x2
pi = [0, 1, 2, 3]
- return constellation_map_generator(qam_16, k, pi)
+ return constellation_map_generator(qam_16()[0], qam_16()[1], k, pi)
qam_16_2 = qam_16_0x2_0_1_2_3
def qam_16_0x3_0_1_2_3():
@@ -161,7 +161,7 @@ def qam_16_0x3_0_1_2_3():
'''
k = 0x3
pi = [0, 1, 2, 3]
- return constellation_map_generator(qam_16, k, pi)
+ return constellation_map_generator(qam_16()[0], qam_16()[1], k, pi)
qam_16_3 = qam_16_0x3_0_1_2_3
@@ -177,7 +177,7 @@ def qam_16_0x0_1_0_2_3():
'''
k = 0x0
pi = [1, 0, 2, 3]
- return constellation_map_generator(qam_16, k, pi)
+ return constellation_map_generator(qam_16()[0], qam_16()[1], k, pi)
qam_16_4 = qam_16_0x0_1_0_2_3
def qam_16_0x1_1_0_2_3():
@@ -192,7 +192,7 @@ def qam_16_0x1_1_0_2_3():
'''
k = 0x1
pi = [1, 0, 2, 3]
- return constellation_map_generator(qam_16, k, pi)
+ return constellation_map_generator(qam_16()[0], qam_16()[1], k, pi)
qam_16_5 = qam_16_0x1_1_0_2_3
def qam_16_0x2_1_0_2_3():
@@ -207,7 +207,7 @@ def qam_16_0x2_1_0_2_3():
'''
k = 0x2
pi = [1, 0, 2, 3]
- return constellation_map_generator(qam_16, k, pi)
+ return constellation_map_generator(qam_16()[0], qam_16()[1], k, pi)
qam_16_6 = qam_16_0x2_1_0_2_3
def qam_16_0x3_1_0_2_3():
@@ -222,7 +222,7 @@ def qam_16_0x3_1_0_2_3():
'''
k = 0x3
pi = [1, 0, 2, 3]
- return constellation_map_generator(qam_16, k, pi)
+ return constellation_map_generator(qam_16()[0], qam_16()[1], k, pi)
qam_16_7 = qam_16_0x3_1_0_2_3
diff --git a/gr-fec/doc/CMakeLists.txt b/gr-fec/doc/CMakeLists.txt
index 776f1e2159..35aebb2e01 100644
--- a/gr-fec/doc/CMakeLists.txt
+++ b/gr-fec/doc/CMakeLists.txt
@@ -1,17 +1,17 @@
# Copyright 2012 Free Software Foundation, Inc.
-#
+#
# This file is part of GNU Radio
-#
+#
# GNU Radio is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
-#
+#
# GNU Radio is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-#
+#
# You should have received a copy of the GNU General Public License
# along with GNU Radio; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street,
diff --git a/gr-fec/doc/README.fec b/gr-fec/doc/README.fec
index 02374bca84..346cc8f1da 100644
--- a/gr-fec/doc/README.fec
+++ b/gr-fec/doc/README.fec
@@ -7,6 +7,6 @@ imported as:
See the Doxygen documentation for details about the blocks available
in this package. A quick listing of the details can be found in Python
-after importing by using:
+after importing by using:
help(fec)
diff --git a/gr-fec/examples/fecapi_async_decoders.grc b/gr-fec/examples/fecapi_async_decoders.grc
index c641ebb624..42429ec6c7 100644
--- a/gr-fec/examples/fecapi_async_decoders.grc
+++ b/gr-fec/examples/fecapi_async_decoders.grc
@@ -825,7 +825,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
@@ -1686,7 +1686,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
diff --git a/gr-fec/examples/fecapi_async_packed_decoders.grc b/gr-fec/examples/fecapi_async_packed_decoders.grc
index 52cda86940..8d1affe628 100644
--- a/gr-fec/examples/fecapi_async_packed_decoders.grc
+++ b/gr-fec/examples/fecapi_async_packed_decoders.grc
@@ -935,7 +935,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
diff --git a/gr-fec/examples/fecapi_async_to_stream.grc b/gr-fec/examples/fecapi_async_to_stream.grc
index afd6fdbab8..78a6e50c84 100644
--- a/gr-fec/examples/fecapi_async_to_stream.grc
+++ b/gr-fec/examples/fecapi_async_to_stream.grc
@@ -904,7 +904,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
@@ -1282,7 +1282,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
diff --git a/gr-fec/examples/fecapi_decoders.grc b/gr-fec/examples/fecapi_decoders.grc
index cec1b050d4..5b4f323f77 100644
--- a/gr-fec/examples/fecapi_decoders.grc
+++ b/gr-fec/examples/fecapi_decoders.grc
@@ -1394,7 +1394,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
diff --git a/gr-fec/examples/fecapi_encoders.grc b/gr-fec/examples/fecapi_encoders.grc
index b63b6c58aa..683ff476a7 100644
--- a/gr-fec/examples/fecapi_encoders.grc
+++ b/gr-fec/examples/fecapi_encoders.grc
@@ -967,7 +967,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
@@ -1302,7 +1302,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
diff --git a/gr-fec/examples/fecapi_tagged_decoders.grc b/gr-fec/examples/fecapi_tagged_decoders.grc
index bbb8282572..8bae5bd249 100644
--- a/gr-fec/examples/fecapi_tagged_decoders.grc
+++ b/gr-fec/examples/fecapi_tagged_decoders.grc
@@ -966,7 +966,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
diff --git a/gr-fec/examples/fecapi_tagged_encoders.grc b/gr-fec/examples/fecapi_tagged_encoders.grc
index dced887eb0..2617593b26 100644
--- a/gr-fec/examples/fecapi_tagged_encoders.grc
+++ b/gr-fec/examples/fecapi_tagged_encoders.grc
@@ -571,7 +571,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
@@ -906,7 +906,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
@@ -1241,7 +1241,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
@@ -1936,7 +1936,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
diff --git a/gr-fec/include/gnuradio/fec/decode_ccsds_27_fb.h b/gr-fec/include/gnuradio/fec/decode_ccsds_27_fb.h
index c0c4efa2d0..99ed154c81 100644
--- a/gr-fec/include/gnuradio/fec/decode_ccsds_27_fb.h
+++ b/gr-fec/include/gnuradio/fec/decode_ccsds_27_fb.h
@@ -48,11 +48,11 @@ namespace gr {
* The first 32 bits out will be zeroes, with the output delayed four bytes
* from the corresponding inputs.
*/
-
+
class FEC_API decode_ccsds_27_fb : virtual public sync_decimator
{
public:
-
+
// gr::fec::decode_ccsds_27_fb::sptr
typedef boost::shared_ptr<decode_ccsds_27_fb> sptr;
diff --git a/gr-fec/include/gnuradio/fec/encode_ccsds_27_bb.h b/gr-fec/include/gnuradio/fec/encode_ccsds_27_bb.h
index d920b60983..e1772cd2fe 100644
--- a/gr-fec/include/gnuradio/fec/encode_ccsds_27_bb.h
+++ b/gr-fec/include/gnuradio/fec/encode_ccsds_27_bb.h
@@ -45,11 +45,11 @@ namespace gr {
* This block is designed for continuous data streaming, not packetized data.
* There is no provision to "flush" the encoder.
*/
-
+
class FEC_API encode_ccsds_27_bb : virtual public sync_interpolator
{
public:
-
+
// gr::fec::encode_ccsds_27_bb::sptr
typedef boost::shared_ptr<encode_ccsds_27_bb> sptr;
diff --git a/gr-fec/lib/CMakeLists.txt b/gr-fec/lib/CMakeLists.txt
index 1fba94e74e..8af27db334 100644
--- a/gr-fec/lib/CMakeLists.txt
+++ b/gr-fec/lib/CMakeLists.txt
@@ -100,3 +100,16 @@ list(APPEND gnuradio_fec_libs
add_library(gnuradio-fec SHARED ${gnuradio_fec_sources})
target_link_libraries(gnuradio-fec ${gnuradio_fec_libs})
GR_LIBRARY_FOO(gnuradio-fec RUNTIME_COMPONENT "fec_runtime" DEVEL_COMPONENT "fec_devel")
+
+if(ENABLE_STATIC_LIBS)
+ add_library(gnuradio-fec_static STATIC ${gnuradio_fec_sources})
+
+ if(NOT WIN32)
+ set_target_properties(gnuradio-fec_static
+ PROPERTIES OUTPUT_NAME gnuradio-fec)
+ endif(NOT WIN32)
+
+ install(TARGETS gnuradio-fec_static
+ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT "fec_devel" # .lib file
+ )
+endif(ENABLE_STATIC_LIBS)
diff --git a/gr-fec/lib/ber_tools.cc b/gr-fec/lib/ber_tools.cc
index 675932a690..043fbef216 100644
--- a/gr-fec/lib/ber_tools.cc
+++ b/gr-fec/lib/ber_tools.cc
@@ -20,6 +20,12 @@
* Boston, MA 02110-1301, USA.
*/
+#include <cstdlib>
+#ifdef _MSC_VER
+#define _USE_MATH_DEFINES
+#include <cmath>
+#endif
+
#include "ber_tools.h"
inline int
@@ -35,8 +41,13 @@ gaussnoise(float *inbuffer, int buffsize, float sigma)
float udrn1=0.0, udrn2=0.0, noise=0.0;
for(i = 0; i < buffsize;i++) {
+ #ifdef _MSC_VER
+ while((udrn1 = (float)(std::rand())) < 0.0000001);
+ udrn2 = (float)(std::rand());
+ #else
while((udrn1 = (float)drand48()) < 0.0000001);
udrn2 = (float)drand48();
+ #endif
noise = sigma*sqrt(-2*log(udrn1))*cos(2*M_PI*udrn2);
inbuffer[i] += noise;
}
diff --git a/gr-fec/lib/generic_decoder.cc b/gr-fec/lib/generic_decoder.cc
index ed93ec1c3c..aa11aa8d5e 100644
--- a/gr-fec/lib/generic_decoder.cc
+++ b/gr-fec/lib/generic_decoder.cc
@@ -49,13 +49,13 @@ namespace gr {
GR_LOG_SET_LEVEL(LOG, log_level);
if(log_file.size() > 0) {
if(log_file == "stdout") {
- GR_LOG_ADD_CONSOLE_APPENDER(LOG, "cout","gr::log :%p: %c{1} - %m%n");
+ GR_LOG_SET_CONSOLE_APPENDER(LOG, "cout","gr::log :%p: %c{1} - %m%n");
}
else if(log_file == "stderr") {
- GR_LOG_ADD_CONSOLE_APPENDER(LOG, "cerr","gr::log :%p: %c{1} - %m%n");
+ GR_LOG_SET_CONSOLE_APPENDER(LOG, "cerr","gr::log :%p: %c{1} - %m%n");
}
else {
- GR_LOG_ADD_FILE_APPENDER(LOG, log_file , true,"%r :%p: %c{1} - %m%n");
+ GR_LOG_SET_FILE_APPENDER(LOG, log_file , true,"%r :%p: %c{1} - %m%n");
}
}
d_logger = LOG;
diff --git a/gr-fec/lib/generic_encoder.cc b/gr-fec/lib/generic_encoder.cc
index 934d193e7f..c5c7f04f55 100644
--- a/gr-fec/lib/generic_encoder.cc
+++ b/gr-fec/lib/generic_encoder.cc
@@ -49,13 +49,13 @@ namespace gr {
GR_LOG_SET_LEVEL(LOG, log_level);
if(log_file.size() > 0) {
if(log_file == "stdout") {
- GR_LOG_ADD_CONSOLE_APPENDER(LOG, "cout","gr::log :%p: %c{1} - %m%n");
+ GR_LOG_SET_CONSOLE_APPENDER(LOG, "cout","gr::log :%p: %c{1} - %m%n");
}
else if(log_file == "stderr") {
- GR_LOG_ADD_CONSOLE_APPENDER(LOG, "cerr","gr::log :%p: %c{1} - %m%n");
+ GR_LOG_SET_CONSOLE_APPENDER(LOG, "cerr","gr::log :%p: %c{1} - %m%n");
}
else {
- GR_LOG_ADD_FILE_APPENDER(LOG, log_file , true,"%r :%p: %c{1} - %m%n");
+ GR_LOG_SET_FILE_APPENDER(LOG, log_file , true,"%r :%p: %c{1} - %m%n");
}
}
d_logger = LOG;
diff --git a/gr-fft/grc/fft_block_tree.xml b/gr-fft/grc/fft_block_tree.xml
index ca8ca7876c..6e6ed84581 100644
--- a/gr-fft/grc/fft_block_tree.xml
+++ b/gr-fft/grc/fft_block_tree.xml
@@ -2,19 +2,19 @@
<!--
Copyright 2012 Free Software Foundation, Inc.
-
+
This file is part of GNU Radio
-
+
GNU Radio is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
-
+
GNU Radio is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with GNU Radio; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street,
diff --git a/gr-fft/grc/fft_ctrlport_probe_psd.xml b/gr-fft/grc/fft_ctrlport_probe_psd.xml
index 14fd24a7d9..f50144ba92 100644
--- a/gr-fft/grc/fft_ctrlport_probe_psd.xml
+++ b/gr-fft/grc/fft_ctrlport_probe_psd.xml
@@ -2,19 +2,19 @@
<!--
Copyright 2012 Free Software Foundation, Inc.
-
+
This file is part of GNU Radio
-
+
GNU Radio is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
-
+
GNU Radio is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with GNU Radio; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street,
@@ -41,7 +41,7 @@
<value>PSD Plot</value>
<type>string</type>
</param>
-
+
<param>
<name>Length</name>
<key>len</key>
diff --git a/gr-fft/include/gnuradio/fft/fft.h b/gr-fft/include/gnuradio/fft/fft.h
index 04673c16e1..3aed9cc3fb 100644
--- a/gr-fft/include/gnuradio/fft/fft.h
+++ b/gr-fft/include/gnuradio/fft/fft.h
@@ -42,7 +42,7 @@ namespace gr {
/*! \brief Helper function for allocating float* buffers
*/
FFT_API float* malloc_float(int size);
-
+
/*! \brief Helper function for allocating double* buffers
*/
FFT_API double* malloc_double(int size);
@@ -78,7 +78,7 @@ namespace gr {
public:
fft_complex(int fft_size, bool forward = true, int nthreads=1);
virtual ~fft_complex();
-
+
/*
* These return pointers to buffers owned by fft_impl_fft_complex
* into which input and output take place. It's done this way in
@@ -86,20 +86,20 @@ namespace gr {
*/
gr_complex *get_inbuf() const { return d_inbuf; }
gr_complex *get_outbuf() const { return d_outbuf; }
-
+
int inbuf_length() const { return d_fft_size; }
int outbuf_length() const { return d_fft_size; }
-
+
/*!
* Set the number of threads to use for caclulation.
*/
void set_nthreads(int n);
-
+
/*!
* Get the number of threads being used by FFTW
*/
int nthreads() const { return d_nthreads; }
-
+
/*!
* compute FFT. The input comes from inbuf, the output is placed in
* outbuf.
@@ -121,7 +121,7 @@ namespace gr {
public:
fft_real_fwd (int fft_size, int nthreads=1);
virtual ~fft_real_fwd ();
-
+
/*
* These return pointers to buffers owned by fft_impl_fft_real_fwd
* into which input and output take place. It's done this way in
@@ -129,20 +129,20 @@ namespace gr {
*/
float *get_inbuf() const { return d_inbuf; }
gr_complex *get_outbuf() const { return d_outbuf; }
-
+
int inbuf_length() const { return d_fft_size; }
int outbuf_length() const { return d_fft_size / 2 + 1; }
-
+
/*!
* Set the number of threads to use for caclulation.
*/
void set_nthreads(int n);
-
+
/*!
* Get the number of threads being used by FFTW
*/
int nthreads() const { return d_nthreads; }
-
+
/*!
* compute FFT. The input comes from inbuf, the output is placed in
* outbuf.
@@ -160,11 +160,11 @@ namespace gr {
gr_complex *d_inbuf;
float *d_outbuf;
void *d_plan;
-
+
public:
fft_real_rev(int fft_size, int nthreads=1);
virtual ~fft_real_rev();
-
+
/*
* These return pointers to buffers owned by fft_impl_fft_real_rev
* into which input and output take place. It's done this way in
@@ -172,20 +172,20 @@ namespace gr {
*/
gr_complex *get_inbuf() const { return d_inbuf; }
float *get_outbuf() const { return d_outbuf; }
-
+
int inbuf_length() const { return d_fft_size / 2 + 1; }
int outbuf_length() const { return d_fft_size; }
-
+
/*!
* Set the number of threads to use for caclulation.
*/
void set_nthreads(int n);
-
+
/*!
* Get the number of threads being used by FFTW
*/
int nthreads() const { return d_nthreads; }
-
+
/*!
* compute FFT. The input comes from inbuf, the output is placed in
* outbuf.
diff --git a/gr-fft/include/gnuradio/fft/fft_vcc.h b/gr-fft/include/gnuradio/fft/fft_vcc.h
index a2682de196..1e09521b4f 100644
--- a/gr-fft/include/gnuradio/fft/fft_vcc.h
+++ b/gr-fft/include/gnuradio/fft/fft_vcc.h
@@ -43,7 +43,7 @@ namespace gr {
static sptr make(int fft_size, bool forward,
const std::vector<float> &window,
bool shift=false, int nthreads=1);
-
+
virtual void set_nthreads(int n) = 0;
virtual int nthreads() const = 0;
diff --git a/gr-fft/include/gnuradio/fft/fft_vfc.h b/gr-fft/include/gnuradio/fft/fft_vfc.h
index 9937d92a34..91ed81fb17 100644
--- a/gr-fft/include/gnuradio/fft/fft_vfc.h
+++ b/gr-fft/include/gnuradio/fft/fft_vfc.h
@@ -39,7 +39,7 @@ namespace gr {
// gr::fft::fft_vfc::sptr
typedef boost::shared_ptr<fft_vfc> sptr;
-
+
static sptr make(int fft_size, bool forward,
const std::vector<float> &window,
int nthreads=1);
diff --git a/gr-fft/include/gnuradio/fft/goertzel.h b/gr-fft/include/gnuradio/fft/goertzel.h
index 6d9437f0fa..ac77e7d2dd 100644
--- a/gr-fft/include/gnuradio/fft/goertzel.h
+++ b/gr-fft/include/gnuradio/fft/goertzel.h
@@ -37,17 +37,17 @@ namespace gr {
{
public:
goertzel(int rate, int len, float freq);
-
+
void set_params(int rate, int len, float freq);
-
+
// Process a input array
gr_complex batch(float *in);
-
+
// Process sample by sample
void input(const float &in);
gr_complex output();
bool ready() const { return d_processed == d_len; }
-
+
private:
float d_d1;
float d_d2;
@@ -56,7 +56,7 @@ namespace gr {
int d_len;
int d_processed;
};
-
+
} /* namespace fft */
} /* namespace gr */
diff --git a/gr-fft/include/gnuradio/fft/goertzel_fc.h b/gr-fft/include/gnuradio/fft/goertzel_fc.h
index 3815ac0fd4..daa0c5ec26 100644
--- a/gr-fft/include/gnuradio/fft/goertzel_fc.h
+++ b/gr-fft/include/gnuradio/fft/goertzel_fc.h
@@ -39,7 +39,7 @@ namespace gr {
// gr::fft::goertzel_fc::sptr
typedef boost::shared_ptr<goertzel_fc> sptr;
-
+
static sptr make(int rate, int len, float freq);
virtual void set_freq (float freq) = 0;
@@ -47,7 +47,7 @@ namespace gr {
virtual void set_rate (int rate) = 0;
virtual float freq() = 0;
-
+
virtual int rate() = 0;
};
diff --git a/gr-fft/include/gnuradio/fft/window.h b/gr-fft/include/gnuradio/fft/window.h
index 92f62c64cb..c1de1814c7 100644
--- a/gr-fft/include/gnuradio/fft/window.h
+++ b/gr-fft/include/gnuradio/fft/window.h
@@ -33,7 +33,7 @@ namespace gr {
class FFT_API window {
public:
-
+
enum win_type {
WIN_HAMMING = 0, //!< Hamming window; max attenuation 53 dB
WIN_HANN = 1, //!< Hann window; max attenuation 44 dB
@@ -193,7 +193,7 @@ namespace gr {
* \param ntaps Number of coefficients in the window.
*/
static std::vector<float> blackman_nuttal(int ntaps);
-
+
/*!
* \brief Build a Nuttal continuous first derivative window.
*
diff --git a/gr-fft/lib/CMakeLists.txt b/gr-fft/lib/CMakeLists.txt
index 045df5b4f8..51fecbe677 100644
--- a/gr-fft/lib/CMakeLists.txt
+++ b/gr-fft/lib/CMakeLists.txt
@@ -83,3 +83,16 @@ endif()
add_library(gnuradio-fft SHARED ${fft_sources})
target_link_libraries(gnuradio-fft ${fft_libs})
GR_LIBRARY_FOO(gnuradio-fft RUNTIME_COMPONENT "fft_runtime" DEVEL_COMPONENT "fft_devel")
+
+if(ENABLE_STATIC_LIBS)
+ add_library(gnuradio-fft_static STATIC ${fft_sources})
+
+ if(NOT WIN32)
+ set_target_properties(gnuradio-fft_static
+ PROPERTIES OUTPUT_NAME gnuradio-fft)
+ endif(NOT WIN32)
+
+ install(TARGETS gnuradio-fft_static
+ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT "fft_devel" # .lib file
+ )
+endif(ENABLE_STATIC_LIBS)
diff --git a/gr-fft/lib/ctrlport_probe_psd_impl.cc b/gr-fft/lib/ctrlport_probe_psd_impl.cc
index b517fa3ac4..a12341e931 100644
--- a/gr-fft/lib/ctrlport_probe_psd_impl.cc
+++ b/gr-fft/lib/ctrlport_probe_psd_impl.cc
@@ -62,7 +62,7 @@ namespace gr {
for(unsigned i = 0; i < ninputs; i++)
ninput_items_required[i] = d_len;
}
-
+
// boost::shared_mutex mutex_buffer;
// mutable boost::mutex mutex_notify;
// boost::condition_variable condition_buffer_ready;
@@ -84,7 +84,7 @@ namespace gr {
std::vector<gr_complex> buf_copy;
buf_copy.resize(d_len);
-
+
gr_complex* out = d_fft.get_outbuf();
for(size_t i=0; i<d_len; i++){
size_t idx = (i + d_len/2)%d_len;
@@ -131,14 +131,14 @@ namespace gr {
for(int i = 0; i < num_copy; i++) {
d_buffer.push_back(in[i]);
}
-
+
// notify the waiting get() if we fill up the buffer
if(d_buffer.size() == d_len) {
condition_buffer_ready.notify_one();
}
}
mutex_buffer.unlock();
-
+
return noutput_items;
}
@@ -152,7 +152,7 @@ namespace gr {
alias(), d_id.c_str(), &ctrlport_probe_psd::get,
pmt::make_c32vector(0,-2),
pmt::make_c32vector(0,2),
- pmt::make_c32vector(0,0),
+ pmt::make_c32vector(0,0),
"dB", d_desc.c_str(), RPC_PRIVLVL_MIN,
DISPXY | DISPOPTSCATTER)));
diff --git a/gr-fft/lib/fft.cc b/gr-fft/lib/fft.cc
index abcda7d30e..18e54f065f 100644
--- a/gr-fft/lib/fft.cc
+++ b/gr-fft/lib/fft.cc
@@ -151,17 +151,17 @@ namespace gr {
d_inbuf = (gr_complex *) fftwf_malloc (sizeof (gr_complex) * inbuf_length ());
if (d_inbuf == 0)
throw std::runtime_error ("fftwf_malloc");
-
+
d_outbuf = (gr_complex *) fftwf_malloc (sizeof (gr_complex) * outbuf_length ());
if (d_outbuf == 0){
fftwf_free (d_inbuf);
throw std::runtime_error ("fftwf_malloc");
}
-
+
d_nthreads = nthreads;
config_threading(nthreads);
import_wisdom(); // load prior wisdom from disk
-
+
d_plan = fftwf_plan_dft_1d (fft_size,
reinterpret_cast<fftwf_complex *>(d_inbuf),
reinterpret_cast<fftwf_complex *>(d_outbuf),
@@ -246,7 +246,7 @@ namespace gr {
{
// Hold global mutex during plan construction and destruction.
planner::scoped_lock lock(planner::mutex());
-
+
fftwf_destroy_plan ((fftwf_plan) d_plan);
fftwf_free (d_inbuf);
fftwf_free (d_outbuf);
@@ -278,7 +278,7 @@ namespace gr {
planner::scoped_lock lock(planner::mutex());
assert (sizeof (fftwf_complex) == sizeof (gr_complex));
-
+
if (fft_size <= 0)
throw std::out_of_range ("gr::fft::fft_real_rev: invalid fft_size");
@@ -316,7 +316,7 @@ namespace gr {
{
// Hold global mutex during plan construction and destruction.
planner::scoped_lock lock(planner::mutex());
-
+
fftwf_destroy_plan ((fftwf_plan) d_plan);
fftwf_free (d_inbuf);
fftwf_free (d_outbuf);
@@ -328,7 +328,7 @@ namespace gr {
if (n <= 0)
throw std::out_of_range ("gr::fft::fft_real_rev::set_nthreads: invalid number of threads");
d_nthreads = n;
-
+
#ifdef FFTW3F_THREADS
fftwf_plan_with_nthreads(d_nthreads);
#endif
diff --git a/gr-fft/lib/fft_vcc_fftw.cc b/gr-fft/lib/fft_vcc_fftw.cc
index 6873e74f45..778042ebf0 100644
--- a/gr-fft/lib/fft_vcc_fftw.cc
+++ b/gr-fft/lib/fft_vcc_fftw.cc
@@ -31,7 +31,7 @@
namespace gr {
namespace fft {
-
+
fft_vcc::sptr fft_vcc::make(int fft_size, bool forward,
const std::vector<float> &window,
bool shift, int nthreads)
@@ -89,14 +89,14 @@ namespace gr {
{
const gr_complex *in = (const gr_complex *) input_items[0];
gr_complex *out = (gr_complex *) output_items[0];
-
+
unsigned int input_data_size = input_signature()->sizeof_stream_item (0);
unsigned int output_data_size = output_signature()->sizeof_stream_item (0);
-
+
int count = 0;
-
+
while(count++ < noutput_items) {
-
+
// copy input into optimally aligned buffer
if(d_window.size()) {
gr_complex *dst = d_fft->get_inbuf();
@@ -107,7 +107,7 @@ namespace gr {
dst[i+fft_m_offset] = in[i] * d_window[i];
for(unsigned int i = offset; i < d_fft_size; i++) // apply window
dst[i-offset] = in[i] * d_window[i];
- }
+ }
else {
for(unsigned int i = 0; i < d_fft_size; i++) // apply window
dst[i] = in[i] * d_window[i];
@@ -124,10 +124,10 @@ namespace gr {
memcpy(d_fft->get_inbuf(), in, input_data_size);
}
}
-
+
// compute the fft
d_fft->execute();
-
+
// copy result to our output
if(d_forward && d_shift) { // apply a fft shift on the data
unsigned int len = (unsigned int)(ceil(d_fft_size/2.0));
@@ -137,11 +137,11 @@ namespace gr {
else {
memcpy (out, d_fft->get_outbuf (), output_data_size);
}
-
+
in += d_fft_size;
out += d_fft_size;
}
-
+
return noutput_items;
}
diff --git a/gr-fft/lib/fft_vcc_fftw.h b/gr-fft/lib/fft_vcc_fftw.h
index 2aa2056f5b..951602031c 100644
--- a/gr-fft/lib/fft_vcc_fftw.h
+++ b/gr-fft/lib/fft_vcc_fftw.h
@@ -28,7 +28,7 @@
namespace gr {
namespace fft {
-
+
class FFT_API fft_vcc_fftw : public fft_vcc
{
private:
@@ -42,13 +42,13 @@ namespace gr {
fft_vcc_fftw(int fft_size, bool forward,
const std::vector<float> &window,
bool shift, int nthreads=1);
-
+
~fft_vcc_fftw();
-
+
void set_nthreads(int n);
int nthreads() const;
bool set_window(const std::vector<float> &window);
-
+
int work(int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items);
diff --git a/gr-fft/lib/fft_vfc_fftw.cc b/gr-fft/lib/fft_vfc_fftw.cc
index cb8d223d95..7e327ea916 100644
--- a/gr-fft/lib/fft_vfc_fftw.cc
+++ b/gr-fft/lib/fft_vfc_fftw.cc
@@ -31,7 +31,7 @@
namespace gr {
namespace fft {
-
+
fft_vfc::sptr fft_vfc::make(int fft_size, bool forward,
const std::vector<float> &window,
int nthreads)
@@ -40,7 +40,7 @@ namespace gr {
(fft_size, forward, window,
nthreads));
}
-
+
fft_vfc_fftw::fft_vfc_fftw(int fft_size, bool forward,
const std::vector<float> &window,
int nthreads)
@@ -70,7 +70,7 @@ namespace gr {
{
return d_fft->nthreads();
}
-
+
bool
fft_vfc_fftw::set_window(const std::vector<float> &window)
{
@@ -81,7 +81,7 @@ namespace gr {
else
return false;
}
-
+
int
fft_vfc_fftw::work(int noutput_items,
gr_vector_const_void_star &input_items,
@@ -89,13 +89,13 @@ namespace gr {
{
const float *in = (const float *)input_items[0];
gr_complex *out = (gr_complex *)output_items[0];
-
+
unsigned int output_data_size = output_signature()->sizeof_stream_item (0);
-
+
int count = 0;
-
+
while(count++ < noutput_items) {
-
+
// copy input into optimally aligned buffer
if(d_window.size()) {
gr_complex *dst = d_fft->get_inbuf();
@@ -107,17 +107,17 @@ namespace gr {
for(unsigned int i = 0; i < d_fft_size; i++) // float to complex conversion
dst[i] = in[i];
}
-
+
// compute the fft
d_fft->execute();
-
+
// copy result to output stream
memcpy(out, d_fft->get_outbuf(), output_data_size);
-
+
in += d_fft_size;
out += d_fft_size;
}
-
+
return noutput_items;
}
diff --git a/gr-fft/lib/fft_vfc_fftw.h b/gr-fft/lib/fft_vfc_fftw.h
index 2fe292f8ca..f500129e2e 100644
--- a/gr-fft/lib/fft_vfc_fftw.h
+++ b/gr-fft/lib/fft_vfc_fftw.h
@@ -28,7 +28,7 @@
namespace gr {
namespace fft {
-
+
class FFT_API fft_vfc_fftw : public fft_vfc
{
private:
@@ -36,18 +36,18 @@ namespace gr {
unsigned int d_fft_size;
std::vector<float> d_window;
bool d_forward;
-
+
public:
fft_vfc_fftw(int fft_size, bool forward,
const std::vector<float> &window,
int nthreads=1);
-
+
~fft_vfc_fftw();
-
+
void set_nthreads(int n);
int nthreads() const;
bool set_window(const std::vector<float> &window);
-
+
int work(int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items);
diff --git a/gr-fft/lib/goertzel.cc b/gr-fft/lib/goertzel.cc
index ddb086c531..14098180b5 100644
--- a/gr-fft/lib/goertzel.cc
+++ b/gr-fft/lib/goertzel.cc
@@ -34,29 +34,29 @@ namespace gr {
{
set_params(rate, len, freq);
}
-
+
void
goertzel::set_params(int rate, int len, float freq)
{
d_d1 = 0.0;
d_d2 = 0.0;
-
+
float w = 2.0*M_PI*freq/rate;
d_wr = 2.0*std::cos(w);
d_wi = std::sin(w);
d_len = len;
d_processed = 0;
}
-
+
gr_complex
goertzel::batch(float *in)
{
d_d1 = 0.0;
d_d2 = 0.0;
-
+
for(int i = 0; i < d_len; i++)
input(in[i]);
-
+
return output();
}
diff --git a/gr-fft/lib/goertzel_fc_impl.cc b/gr-fft/lib/goertzel_fc_impl.cc
index fd3755eeaa..ba26df0ca3 100644
--- a/gr-fft/lib/goertzel_fc_impl.cc
+++ b/gr-fft/lib/goertzel_fc_impl.cc
@@ -29,12 +29,12 @@
namespace gr {
namespace fft {
-
+
goertzel_fc::sptr goertzel_fc::make(int rate, int len, float freq)
{
return gnuradio::get_initial_sptr(new goertzel_fc_impl(rate, len, freq));
}
-
+
goertzel_fc_impl::goertzel_fc_impl(int rate, int len, float freq)
: sync_decimator("goertzel_fc",
io_signature::make (1, 1, sizeof(float)),
@@ -46,7 +46,7 @@ namespace gr {
d_rate = rate;
d_freq = freq;
}
-
+
goertzel_fc_impl::~goertzel_fc_impl()
{
}
@@ -64,7 +64,7 @@ namespace gr {
d_rate = rate;
d_goertzel.set_params(d_rate, d_len, d_freq);
}
-
+
int
goertzel_fc_impl::work(int noutput_items,
gr_vector_const_void_star &input_items,
@@ -72,12 +72,12 @@ namespace gr {
{
float *in = (float *)input_items[0];
gr_complex *out = (gr_complex *)output_items[0];
-
+
for(int i = 0; i < noutput_items; i++) {
*out++ = d_goertzel.batch(in);
in += d_len;
}
-
+
return noutput_items;
}
diff --git a/gr-fft/lib/goertzel_fc_impl.h b/gr-fft/lib/goertzel_fc_impl.h
index 79b24f15c4..e007bcfb73 100644
--- a/gr-fft/lib/goertzel_fc_impl.h
+++ b/gr-fft/lib/goertzel_fc_impl.h
@@ -28,7 +28,7 @@
namespace gr {
namespace fft {
-
+
class FFT_API goertzel_fc_impl : public goertzel_fc
{
private:
@@ -39,9 +39,9 @@ namespace gr {
public:
goertzel_fc_impl(int rate, int len, float freq);
-
+
~goertzel_fc_impl();
-
+
void set_freq(float freq);
void set_rate(int rate);
diff --git a/gr-fft/lib/window.cc b/gr-fft/lib/window.cc
index 015e2d9943..965b11bf46 100644
--- a/gr-fft/lib/window.cc
+++ b/gr-fft/lib/window.cc
@@ -31,12 +31,12 @@ namespace gr {
namespace fft {
#define IzeroEPSILON 1E-21 /* Max error acceptable in Izero */
-
+
static double Izero(double x)
{
double sum, u, halfx, temp;
int n;
-
+
sum = u = n = 1;
halfx = x/2.0;
do {
@@ -180,7 +180,7 @@ namespace gr {
{
return coswindow(ntaps, 0.21747, 0.45325, 0.28256, 0.04672);
}
-
+
std::vector<float>
window::blackman4(int ntaps)
{
diff --git a/gr-fft/python/fft/logpwrfft.py b/gr-fft/python/fft/logpwrfft.py
index fb8ba04622..356ec1217b 100644
--- a/gr-fft/python/fft/logpwrfft.py
+++ b/gr-fft/python/fft/logpwrfft.py
@@ -41,7 +41,7 @@ class _logpwrfft_base(gr.hier_block2):
"""
Create an log10(abs(fft)) stream chain.
Provide access to the setting the filter and sample rate.
-
+
Args:
sample_rate: Incoming stream sample rate
fft_size: Number of FFT bins
@@ -81,7 +81,7 @@ class _logpwrfft_base(gr.hier_block2):
def set_decimation(self, decim):
"""
Set the decimation on stream decimator.
-
+
Args:
decim: the new decimation
"""
@@ -90,7 +90,7 @@ class _logpwrfft_base(gr.hier_block2):
def set_vec_rate(self, vec_rate):
"""
Set the vector rate on stream decimator.
-
+
Args:
vec_rate: the new vector rate
"""
@@ -99,7 +99,7 @@ class _logpwrfft_base(gr.hier_block2):
def set_sample_rate(self, sample_rate):
"""
Set the new sampling rate
-
+
Args:
sample_rate: the new rate
"""
@@ -108,7 +108,7 @@ class _logpwrfft_base(gr.hier_block2):
def set_average(self, average):
"""
Set the averaging filter on/off.
-
+
Args:
average: true to set averaging on
"""
@@ -121,7 +121,7 @@ class _logpwrfft_base(gr.hier_block2):
def set_avg_alpha(self, avg_alpha):
"""
Set the average alpha and set the taps if average was on.
-
+
Args:
avg_alpha: the new iir filter tap
"""
diff --git a/gr-filter/apps/gr_filter_design b/gr-filter/apps/gr_filter_design
index 0180119321..6799f74be8 100755
--- a/gr-filter/apps/gr_filter_design
+++ b/gr-filter/apps/gr_filter_design
@@ -20,7 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio.filter import filter_design
+from gnuradio.filter import filter_design
import sys
# Call filter desgin main function
diff --git a/gr-filter/doc/filter.dox b/gr-filter/doc/filter.dox
index a9b329836c..8d465ab896 100644
--- a/gr-filter/doc/filter.dox
+++ b/gr-filter/doc/filter.dox
@@ -217,7 +217,7 @@ example of this can be found in \b examples/filter/gr_filtdes_api.py.
\code
filtobj = filter_design.launch(sys.argv)
-print "Filter Count:", filtobj.get_filtercount()
+print "Filter Count:", filtobj.get_filtercount()
print "Filter type:", filtobj.get_restype()
print "Filter params", filtobj.get_params()
print "Filter Coefficients", filtobj.get_taps()
diff --git a/gr-filter/examples/channelizer_demo.grc b/gr-filter/examples/channelizer_demo.grc
index b7b4c1cb79..1891f33b2a 100644
--- a/gr-filter/examples/channelizer_demo.grc
+++ b/gr-filter/examples/channelizer_demo.grc
@@ -209,7 +209,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>fftsize</key>
@@ -530,7 +530,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>fftsize</key>
@@ -745,7 +745,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>fftsize</key>
@@ -1015,7 +1015,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>fftsize</key>
diff --git a/gr-filter/examples/fft_filter_ccc.py b/gr-filter/examples/fft_filter_ccc.py
index 4979cfedda..00b0697b6c 100755
--- a/gr-filter/examples/fft_filter_ccc.py
+++ b/gr-filter/examples/fft_filter_ccc.py
@@ -112,7 +112,7 @@ def main():
s2.plot(data_snk.real, 'g')
pylab.show()
-
+
if __name__ == "__main__":
try:
main()
diff --git a/gr-filter/examples/fir_filter_ccc.py b/gr-filter/examples/fir_filter_ccc.py
index 2a9241858c..b295e299bb 100755
--- a/gr-filter/examples/fir_filter_ccc.py
+++ b/gr-filter/examples/fir_filter_ccc.py
@@ -106,7 +106,7 @@ def main():
s2.plot(data_snk.real, 'g')
pylab.show()
-
+
if __name__ == "__main__":
try:
main()
diff --git a/gr-filter/examples/fir_filter_fff.py b/gr-filter/examples/fir_filter_fff.py
index c9c5556da3..60b61054e9 100755
--- a/gr-filter/examples/fir_filter_fff.py
+++ b/gr-filter/examples/fir_filter_fff.py
@@ -106,7 +106,7 @@ def main():
s2.plot(data_snk.real, 'g')
pylab.show()
-
+
if __name__ == "__main__":
try:
main()
diff --git a/gr-filter/examples/gr_filtdes_api.py b/gr-filter/examples/gr_filtdes_api.py
index c94a56bbc9..6d7716ce49 100755
--- a/gr-filter/examples/gr_filtdes_api.py
+++ b/gr-filter/examples/gr_filtdes_api.py
@@ -24,14 +24,14 @@ from gnuradio.filter import filter_design
import sys
'''
-API Blocking call
+API Blocking call
returns filter taps for FIR filter design
returns b,a for IIR filter design
-'''
+'''
filtobj = filter_design.launch(sys.argv)
# Displaying all filter paramters
-print "Filter Count:", filtobj.get_filtercount()
+print "Filter Count:", filtobj.get_filtercount()
print "Filter type:", filtobj.get_restype()
print "Filter params", filtobj.get_params()
print "Filter Coefficients", filtobj.get_taps()
diff --git a/gr-filter/examples/gr_filtdes_callback.py b/gr-filter/examples/gr_filtdes_callback.py
index a87d7d3dad..9496253d7a 100755
--- a/gr-filter/examples/gr_filtdes_callback.py
+++ b/gr-filter/examples/gr_filtdes_callback.py
@@ -32,7 +32,7 @@ except ImportError:
Callback example
Function called when "design" button is pressed
or pole-zero plot is changed
-launch function returns gr_filter_design mainwindow
+launch function returns gr_filter_design mainwindow
object when callback is not None
'''
def print_params(filtobj):
diff --git a/gr-filter/examples/gr_filtdes_live_upd.py b/gr-filter/examples/gr_filtdes_live_upd.py
index 52985119e0..9f974dd81c 100755
--- a/gr-filter/examples/gr_filtdes_live_upd.py
+++ b/gr-filter/examples/gr_filtdes_live_upd.py
@@ -65,7 +65,7 @@ class my_top_block(gr.top_block):
self.qapp = QtGui.QApplication(sys.argv)
self.filt_taps = [1,]
-
+
src1 = analog.sig_source_c(Rs, analog.GR_SIN_WAVE, f1, 0.1, 0)
src2 = analog.sig_source_c(Rs, analog.GR_SIN_WAVE, f2, 0.1, 0)
src = blocks.add_cc()
diff --git a/gr-filter/grc/filter_block_tree.xml b/gr-filter/grc/filter_block_tree.xml
index ea0ffd3694..e1cca2436b 100644
--- a/gr-filter/grc/filter_block_tree.xml
+++ b/gr-filter/grc/filter_block_tree.xml
@@ -2,19 +2,19 @@
<!--
Copyright 2012 Free Software Foundation, Inc.
-
+
This file is part of GNU Radio
-
+
GNU Radio is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
-
+
GNU Radio is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with GNU Radio; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street,
diff --git a/gr-filter/include/gnuradio/filter/dc_blocker_cc.h b/gr-filter/include/gnuradio/filter/dc_blocker_cc.h
index f3ae32d23c..a8971e6a9f 100644
--- a/gr-filter/include/gnuradio/filter/dc_blocker_cc.h
+++ b/gr-filter/include/gnuradio/filter/dc_blocker_cc.h
@@ -28,7 +28,7 @@
namespace gr {
namespace filter {
-
+
/*!
* \brief a computationally efficient controllable DC blocker
* \ingroup filter_blk
diff --git a/gr-filter/include/gnuradio/filter/dc_blocker_ff.h b/gr-filter/include/gnuradio/filter/dc_blocker_ff.h
index 3363e95bc3..e01827e468 100644
--- a/gr-filter/include/gnuradio/filter/dc_blocker_ff.h
+++ b/gr-filter/include/gnuradio/filter/dc_blocker_ff.h
@@ -28,7 +28,7 @@
namespace gr {
namespace filter {
-
+
/*!
* \brief a computationally efficient controllable DC blocker
* \ingroup filter_blk
diff --git a/gr-filter/include/gnuradio/filter/fft_filter_ccc.h b/gr-filter/include/gnuradio/filter/fft_filter_ccc.h
index a9ca7ef6d4..2cff4585d2 100644
--- a/gr-filter/include/gnuradio/filter/fft_filter_ccc.h
+++ b/gr-filter/include/gnuradio/filter/fft_filter_ccc.h
@@ -60,7 +60,7 @@ namespace gr {
/*!
* Build an FFT filter blocks.
- *
+ *
* \param decimation >= 1
* \param taps complex filter taps
* \param nthreads number of threads for the FFT to use
diff --git a/gr-filter/include/gnuradio/filter/fft_filter_fff.h b/gr-filter/include/gnuradio/filter/fft_filter_fff.h
index 10c63dd9ed..dc56077679 100644
--- a/gr-filter/include/gnuradio/filter/fft_filter_fff.h
+++ b/gr-filter/include/gnuradio/filter/fft_filter_fff.h
@@ -60,7 +60,7 @@ namespace gr {
/*!
* Build an FFT filter block.
- *
+ *
* \param decimation >= 1
* \param taps float filter taps
* \param nthreads number of threads for the FFT to use
diff --git a/gr-filter/include/gnuradio/filter/filter_delay_fc.h b/gr-filter/include/gnuradio/filter/filter_delay_fc.h
index 5b87d4b12d..af33ad203b 100644
--- a/gr-filter/include/gnuradio/filter/filter_delay_fc.h
+++ b/gr-filter/include/gnuradio/filter/filter_delay_fc.h
@@ -28,7 +28,7 @@
namespace gr {
namespace filter {
-
+
/*!
* \brief Filter-Delay Combination Block.
* \ingroup filter_blk
diff --git a/gr-filter/include/gnuradio/filter/filterbank.h b/gr-filter/include/gnuradio/filter/filterbank.h
index f71d6c9fdd..a28917957e 100644
--- a/gr-filter/include/gnuradio/filter/filterbank.h
+++ b/gr-filter/include/gnuradio/filter/filterbank.h
@@ -30,7 +30,7 @@
namespace gr {
namespace filter {
namespace kernel {
-
+
/*!
* \brief A filter bank with generic taps.
*
@@ -39,7 +39,7 @@ namespace gr {
* outputs.
*
* The only advantage of using this block over N individual
- * FIR filter blocks is that it places less of a load on the
+ * FIR filter blocks is that it places less of a load on the
* scheduler.
*
* The number of filters cannot be changed dynamically, however
@@ -59,7 +59,7 @@ namespace gr {
std::vector< std::vector<float> > d_taps;
std::vector<bool> d_active;
unsigned int d_taps_per_filter;
-
+
public:
/*!
* Build the filterbank.
@@ -68,7 +68,7 @@ namespace gr {
* Populates the filters.
*/
filterbank(const std::vector<std::vector<float> > &taps);
-
+
~filterbank();
/*!
@@ -89,7 +89,7 @@ namespace gr {
*/
std::vector<std::vector<float> > taps() const;
};
-
+
} /* namespace kernel */
} /* namespace filter */
} /* namespace gr */
diff --git a/gr-filter/include/gnuradio/filter/fir_filter.h b/gr-filter/include/gnuradio/filter/fir_filter.h
index 973b55d322..99ca96c19a 100644
--- a/gr-filter/include/gnuradio/filter/fir_filter.h
+++ b/gr-filter/include/gnuradio/filter/fir_filter.h
@@ -30,7 +30,7 @@
namespace gr {
namespace filter {
namespace kernel {
-
+
class FILTER_API fir_filter_fff
{
public:
@@ -42,7 +42,7 @@ namespace gr {
void update_tap(float t, unsigned int index);
std::vector<float> taps() const;
unsigned int ntaps() const;
-
+
float filter(const float input[]);
void filterN(float output[],
const float input[],
@@ -62,7 +62,7 @@ namespace gr {
};
/**************************************************************/
-
+
class FILTER_API fir_filter_ccf
{
public:
@@ -94,7 +94,7 @@ namespace gr {
};
/**************************************************************/
-
+
class FILTER_API fir_filter_fcc
{
public:
@@ -126,7 +126,7 @@ namespace gr {
};
/**************************************************************/
-
+
class FILTER_API fir_filter_ccc
{
public:
@@ -158,7 +158,7 @@ namespace gr {
};
/**************************************************************/
-
+
class FILTER_API fir_filter_scc
{
public:
@@ -190,7 +190,7 @@ namespace gr {
};
/**************************************************************/
-
+
class FILTER_API fir_filter_fsf
{
public:
diff --git a/gr-filter/include/gnuradio/filter/fir_filter_with_buffer.h b/gr-filter/include/gnuradio/filter/fir_filter_with_buffer.h
index 8520b692c4..387e96c6ac 100644
--- a/gr-filter/include/gnuradio/filter/fir_filter_with_buffer.h
+++ b/gr-filter/include/gnuradio/filter/fir_filter_with_buffer.h
@@ -49,7 +49,7 @@ namespace gr {
int d_naligned;
public:
-
+
// CONSTRUCTORS
/*!
@@ -146,7 +146,7 @@ namespace gr {
int d_naligned;
public:
-
+
// CONSTRUCTORS
/*!
@@ -243,7 +243,7 @@ namespace gr {
int d_naligned;
public:
-
+
// CONSTRUCTORS
/*!
diff --git a/gr-filter/include/gnuradio/filter/firdes.h b/gr-filter/include/gnuradio/filter/firdes.h
index 7e22cbde06..78540bd6aa 100644
--- a/gr-filter/include/gnuradio/filter/firdes.h
+++ b/gr-filter/include/gnuradio/filter/firdes.h
@@ -36,7 +36,7 @@ namespace gr {
* \brief Finite Impulse Response (FIR) filter design functions.
* \ingroup filter_design
*/
-
+
class FILTER_API firdes {
public:
@@ -58,7 +58,7 @@ namespace gr {
static std::vector<float> window(win_type type, int ntaps, double beta);
// ... class methods ...
-
+
/*!
* \brief use "window method" to design a low-pass FIR filter
*
@@ -80,7 +80,7 @@ namespace gr {
double transition_width, // Hz width of transition band
win_type window = WIN_HAMMING,
double beta = 6.76); // used only with Kaiser
-
+
/*!
* \brief use "window method" to design a low-pass FIR filter
*
@@ -122,7 +122,7 @@ namespace gr {
* maximum attenuation and passband ripple.
* \p beta: parameter for Kaiser window
*/
-
+
static std::vector<float>
high_pass(double gain,
double sampling_freq,
@@ -148,7 +148,7 @@ namespace gr {
* maximum attenuation and passband ripple.
* \p beta: parameter for Kaiser window
*/
-
+
static std::vector<float>
high_pass_2(double gain,
double sampling_freq,
@@ -157,7 +157,7 @@ namespace gr {
double attenuation_dB, // out of band attenuation dB
win_type window = WIN_HAMMING,
double beta = 6.76); // used only with Kaiser
-
+
/*!
* \brief use "window method" to design a band-pass FIR filter
*
@@ -181,7 +181,7 @@ namespace gr {
double transition_width, // Hz width of transition band
win_type window = WIN_HAMMING,
double beta = 6.76); // used only with Kaiser
-
+
/*!
* \brief use "window method" to design a band-pass FIR filter
*
@@ -200,7 +200,7 @@ namespace gr {
* maximum attenuation and passband ripple.
* \p beta: parameter for Kaiser window
*/
-
+
static std::vector<float>
band_pass_2(double gain,
double sampling_freq,
@@ -210,7 +210,7 @@ namespace gr {
double attenuation_dB, // out of band attenuation dB
win_type window = WIN_HAMMING,
double beta = 6.76); // used only with Kaiser
-
+
/*!
* \brief use "window method" to design a complex band-pass FIR filter
*
@@ -234,7 +234,7 @@ namespace gr {
double transition_width, // Hz width of transition band
win_type window = WIN_HAMMING,
double beta = 6.76); // used only with Kaiser
-
+
/*!
* \brief use "window method" to design a complex band-pass FIR filter
*
@@ -253,7 +253,7 @@ namespace gr {
* maximum attenuation and passband ripple.
* \p beta: parameter for Kaiser window
*/
-
+
static std::vector<gr_complex>
complex_band_pass_2(double gain,
double sampling_freq,
@@ -263,7 +263,7 @@ namespace gr {
double attenuation_dB, // out of band attenuation dB
win_type window = WIN_HAMMING,
double beta = 6.76); // used only with Kaiser
-
+
/*!
* \brief use "window method" to design a band-reject FIR filter
*
@@ -279,7 +279,7 @@ namespace gr {
* maximum attenuation and passband ripple.
* \p beta: parameter for Kaiser window
*/
-
+
static std::vector<float>
band_reject(double gain,
double sampling_freq,
@@ -288,7 +288,7 @@ namespace gr {
double transition_width, // Hz width of transition band
win_type window = WIN_HAMMING,
double beta = 6.76); // used only with Kaiser
-
+
/*!
* \brief use "window method" to design a band-reject FIR filter
*
@@ -307,7 +307,7 @@ namespace gr {
* maximum attenuation and passband ripple.
* \p beta: parameter for Kaiser window
*/
-
+
static std::vector<float>
band_reject_2(double gain,
double sampling_freq,
@@ -317,7 +317,7 @@ namespace gr {
double attenuation_dB, // out of band attenuation dB
win_type window = WIN_HAMMING,
double beta = 6.76); // used only with Kaiser
-
+
/*!\brief design a Hilbert Transform Filter
*
* \p ntaps: Number of taps, must be odd
@@ -328,7 +328,7 @@ namespace gr {
hilbert(unsigned int ntaps = 19,
win_type windowtype = WIN_RECTANGULAR,
double beta = 6.76);
-
+
/*!
* \brief design a Root Cosine FIR Filter (do we need a window?)
*
@@ -344,7 +344,7 @@ namespace gr {
double symbol_rate, // Symbol rate, NOT bitrate (unless BPSK)
double alpha, // Excess Bandwidth Factor
int ntaps);
-
+
/*!
* \brief design a Gaussian filter
*
@@ -357,7 +357,7 @@ namespace gr {
double spb,
double bt, // Bandwidth to bitrate ratio
int ntaps);
-
+
private:
static double bessi0(double x);
static void sanity_check_1f(double sampling_freq, double f1,
@@ -366,16 +366,16 @@ namespace gr {
double transition_width);
static void sanity_check_2f_c(double sampling_freq, double f1, double f2,
double transition_width);
-
+
static int compute_ntaps(double sampling_freq,
double transition_width,
win_type window_type, double beta);
-
+
static int compute_ntaps_windes(double sampling_freq,
double transition_width,
double attenuation_dB);
};
-
+
} /* namespace filter */
} /* namespace gr */
diff --git a/gr-filter/include/gnuradio/filter/fractional_interpolator_cc.h b/gr-filter/include/gnuradio/filter/fractional_interpolator_cc.h
index ed84d956ef..6cd6413a57 100644
--- a/gr-filter/include/gnuradio/filter/fractional_interpolator_cc.h
+++ b/gr-filter/include/gnuradio/filter/fractional_interpolator_cc.h
@@ -28,7 +28,7 @@
namespace gr {
namespace filter {
-
+
/*!
* \brief Interpolating MMSE filter with complex input, complex output
* \ingroup resamplers_blk
diff --git a/gr-filter/include/gnuradio/filter/fractional_interpolator_ff.h b/gr-filter/include/gnuradio/filter/fractional_interpolator_ff.h
index 04ee235688..c8218adb77 100644
--- a/gr-filter/include/gnuradio/filter/fractional_interpolator_ff.h
+++ b/gr-filter/include/gnuradio/filter/fractional_interpolator_ff.h
@@ -28,7 +28,7 @@
namespace gr {
namespace filter {
-
+
/*!
* \brief Interpolating MMSE filter with float input, float output
* \ingroup resamplers_blk
diff --git a/gr-filter/include/gnuradio/filter/fractional_resampler_cc.h b/gr-filter/include/gnuradio/filter/fractional_resampler_cc.h
index d46a462d35..6fde6dde8a 100644
--- a/gr-filter/include/gnuradio/filter/fractional_resampler_cc.h
+++ b/gr-filter/include/gnuradio/filter/fractional_resampler_cc.h
@@ -28,7 +28,7 @@
namespace gr {
namespace filter {
-
+
/*!
* \brief resampling MMSE filter with complex input, complex output
* \ingroup resamplers_blk
diff --git a/gr-filter/include/gnuradio/filter/fractional_resampler_ff.h b/gr-filter/include/gnuradio/filter/fractional_resampler_ff.h
index e505920f8b..9836010af5 100644
--- a/gr-filter/include/gnuradio/filter/fractional_resampler_ff.h
+++ b/gr-filter/include/gnuradio/filter/fractional_resampler_ff.h
@@ -28,7 +28,7 @@
namespace gr {
namespace filter {
-
+
/*!
* \brief Resampling MMSE filter with float input, float output
* \ingroup resamplers_blk
diff --git a/gr-filter/include/gnuradio/filter/hilbert_fc.h b/gr-filter/include/gnuradio/filter/hilbert_fc.h
index 3999e1a619..7af39731a2 100644
--- a/gr-filter/include/gnuradio/filter/hilbert_fc.h
+++ b/gr-filter/include/gnuradio/filter/hilbert_fc.h
@@ -30,7 +30,7 @@
namespace gr {
namespace filter {
-
+
/*!
* \brief Hilbert transformer.
* \ingroup filter_blk
diff --git a/gr-filter/include/gnuradio/filter/iir_filter.h b/gr-filter/include/gnuradio/filter/iir_filter.h
index 58694ff5c4..bf87ce1d85 100644
--- a/gr-filter/include/gnuradio/filter/iir_filter.h
+++ b/gr-filter/include/gnuradio/filter/iir_filter.h
@@ -120,7 +120,7 @@ namespace gr {
d_fbtaps[i] = -fbtaps[i];
}
}
-
+
int n = fftaps.size();
int m = fbtaps.size();
d_prev_input.clear();
diff --git a/gr-filter/include/gnuradio/filter/iir_filter_ccc.h b/gr-filter/include/gnuradio/filter/iir_filter_ccc.h
index 7ca9108380..2c81942809 100644
--- a/gr-filter/include/gnuradio/filter/iir_filter_ccc.h
+++ b/gr-filter/include/gnuradio/filter/iir_filter_ccc.h
@@ -28,7 +28,7 @@
namespace gr {
namespace filter {
-
+
/*!
* \brief IIR filter with complex input, complex output, and
* complex taps.
diff --git a/gr-filter/include/gnuradio/filter/iir_filter_ccd.h b/gr-filter/include/gnuradio/filter/iir_filter_ccd.h
index c9565f6fec..3c7144940d 100644
--- a/gr-filter/include/gnuradio/filter/iir_filter_ccd.h
+++ b/gr-filter/include/gnuradio/filter/iir_filter_ccd.h
@@ -28,7 +28,7 @@
namespace gr {
namespace filter {
-
+
/*!
* \brief IIR filter with complex input, complex output, and
* double taps.
diff --git a/gr-filter/include/gnuradio/filter/iir_filter_ccf.h b/gr-filter/include/gnuradio/filter/iir_filter_ccf.h
index 2a9a953719..729d915b2c 100644
--- a/gr-filter/include/gnuradio/filter/iir_filter_ccf.h
+++ b/gr-filter/include/gnuradio/filter/iir_filter_ccf.h
@@ -28,7 +28,7 @@
namespace gr {
namespace filter {
-
+
/*!
* \brief IIR filter with complex input, complex output, and
* float taps.
diff --git a/gr-filter/include/gnuradio/filter/iir_filter_ccz.h b/gr-filter/include/gnuradio/filter/iir_filter_ccz.h
index 061ab39715..47cfb4cb21 100644
--- a/gr-filter/include/gnuradio/filter/iir_filter_ccz.h
+++ b/gr-filter/include/gnuradio/filter/iir_filter_ccz.h
@@ -28,7 +28,7 @@
namespace gr {
namespace filter {
-
+
/*!
* \brief IIR filter with complex input, complex output, and
* complex (double) taps.
diff --git a/gr-filter/include/gnuradio/filter/iir_filter_ffd.h b/gr-filter/include/gnuradio/filter/iir_filter_ffd.h
index db61cb149d..ab14718d98 100644
--- a/gr-filter/include/gnuradio/filter/iir_filter_ffd.h
+++ b/gr-filter/include/gnuradio/filter/iir_filter_ffd.h
@@ -28,7 +28,7 @@
namespace gr {
namespace filter {
-
+
/*!
* \brief IIR filter with float input, float output and double taps
* \ingroup filter_blk
diff --git a/gr-filter/include/gnuradio/filter/mmse_fir_interpolator_cc.h b/gr-filter/include/gnuradio/filter/mmse_fir_interpolator_cc.h
index f24e7d9c54..84d91d52d4 100644
--- a/gr-filter/include/gnuradio/filter/mmse_fir_interpolator_cc.h
+++ b/gr-filter/include/gnuradio/filter/mmse_fir_interpolator_cc.h
@@ -29,7 +29,7 @@
namespace gr {
namespace filter {
-
+
/*!
* \brief Compute intermediate samples between signal samples x(k*Ts)
* \ingroup filter_primitive
diff --git a/gr-filter/include/gnuradio/filter/mmse_fir_interpolator_ff.h b/gr-filter/include/gnuradio/filter/mmse_fir_interpolator_ff.h
index 069a9fc09c..a69315b3d9 100644
--- a/gr-filter/include/gnuradio/filter/mmse_fir_interpolator_ff.h
+++ b/gr-filter/include/gnuradio/filter/mmse_fir_interpolator_ff.h
@@ -29,7 +29,7 @@
namespace gr {
namespace filter {
-
+
/*!
* \brief Compute intermediate samples between signal samples x(k*Ts)
* \ingroup filter_primitive
diff --git a/gr-filter/include/gnuradio/filter/pfb_arb_resampler_ccf.h b/gr-filter/include/gnuradio/filter/pfb_arb_resampler_ccf.h
index 1c5dd49628..453d0cdb5f 100644
--- a/gr-filter/include/gnuradio/filter/pfb_arb_resampler_ccf.h
+++ b/gr-filter/include/gnuradio/filter/pfb_arb_resampler_ccf.h
@@ -38,7 +38,7 @@ namespace gr {
* \details
* This block takes in a signal stream and calls
- * gr::filter::kernel::pfb_arb_resampler_ccf to perform
+ * gr::filter::kernel::pfb_arb_resampler_ccf to perform
* arbitrary resampling on the stream.
*
* Output sampling rate is \p rate * input rate.
@@ -105,12 +105,12 @@ namespace gr {
/*!
* Gets the decimation rate of the filter.
- */
+ */
virtual unsigned int decimation_rate() const =0;
-
+
/*!
* Gets the fractional rate of the filter.
- */
+ */
virtual float fractional_rate() const = 0;
/*!
diff --git a/gr-filter/include/gnuradio/filter/pfb_arb_resampler_fff.h b/gr-filter/include/gnuradio/filter/pfb_arb_resampler_fff.h
index 70016bc656..7ae3dcb38f 100644
--- a/gr-filter/include/gnuradio/filter/pfb_arb_resampler_fff.h
+++ b/gr-filter/include/gnuradio/filter/pfb_arb_resampler_fff.h
@@ -154,12 +154,12 @@ namespace gr {
/*!
* Gets the decimation rate of the filter.
- */
+ */
virtual unsigned int decimation_rate() const =0;
-
+
/*!
* Gets the fractional rate of the filter.
- */
+ */
virtual float fractional_rate() const = 0;
/*!
diff --git a/gr-filter/include/gnuradio/filter/pm_remez.h b/gr-filter/include/gnuradio/filter/pm_remez.h
index 00899eaf45..98683cd637 100644
--- a/gr-filter/include/gnuradio/filter/pm_remez.h
+++ b/gr-filter/include/gnuradio/filter/pm_remez.h
@@ -65,7 +65,7 @@ namespace gr {
const std::string filter_type = "bandpass",
int grid_density = 16
) throw (std::runtime_error);
-
+
} /* namespace filter */
} /* namespace gr */
diff --git a/gr-filter/include/gnuradio/filter/single_pole_iir.h b/gr-filter/include/gnuradio/filter/single_pole_iir.h
index 0ded3a4ede..bb21bccf79 100644
--- a/gr-filter/include/gnuradio/filter/single_pole_iir.h
+++ b/gr-filter/include/gnuradio/filter/single_pole_iir.h
@@ -29,7 +29,7 @@
namespace gr {
namespace filter {
-
+
/*!
* \brief class template for single pole IIR filter
*/
diff --git a/gr-filter/include/gnuradio/filter/single_pole_iir_filter_cc.h b/gr-filter/include/gnuradio/filter/single_pole_iir_filter_cc.h
index e84270aa63..fcba7b655e 100644
--- a/gr-filter/include/gnuradio/filter/single_pole_iir_filter_cc.h
+++ b/gr-filter/include/gnuradio/filter/single_pole_iir_filter_cc.h
@@ -30,7 +30,7 @@
namespace gr {
namespace filter {
-
+
/*!
* \brief single pole IIR filter with complex input, complex output
* \ingroup filter_blk
@@ -57,7 +57,7 @@ namespace gr {
\xmlonly
H(z) = \ frac{alpha}{1 - (1-alpha) z^{-1}}
\endxmlonly
-
+
* Note that some texts define the system function with a + in the
* denominator. If you're using that convention, you'll need to
* negate the feedback tap.
diff --git a/gr-filter/include/gnuradio/filter/single_pole_iir_filter_ff.h b/gr-filter/include/gnuradio/filter/single_pole_iir_filter_ff.h
index ae9e1821cb..4996513fa9 100644
--- a/gr-filter/include/gnuradio/filter/single_pole_iir_filter_ff.h
+++ b/gr-filter/include/gnuradio/filter/single_pole_iir_filter_ff.h
@@ -30,7 +30,7 @@
namespace gr {
namespace filter {
-
+
/*!
* \brief single pole IIR filter with float input, float output
* \ingroup filter_blk
@@ -69,7 +69,7 @@ namespace gr {
typedef boost::shared_ptr<single_pole_iir_filter_ff> sptr;
static sptr make(double alpha, unsigned int vlen=1);
-
+
virtual void set_taps (double alpha) = 0;
};
diff --git a/gr-filter/lib/CMakeLists.txt b/gr-filter/lib/CMakeLists.txt
index 3d6aea5b52..17867f8879 100644
--- a/gr-filter/lib/CMakeLists.txt
+++ b/gr-filter/lib/CMakeLists.txt
@@ -185,6 +185,24 @@ add_dependencies(gnuradio-filter
filter_generated_includes filter_generated_swigs
gnuradio-runtime gnuradio-fft)
+if(ENABLE_STATIC_LIBS)
+ add_library(gnuradio-filter_static STATIC ${filter_sources})
+
+ add_dependencies(gnuradio-filter_static
+ filter_generated_includes
+ gnuradio-runtime_static gnuradio-fft_static)
+
+ if(NOT WIN32)
+ set_target_properties(gnuradio-filter_static
+ PROPERTIES OUTPUT_NAME gnuradio-filter)
+ endif(NOT WIN32)
+
+ install(TARGETS gnuradio-filter_static
+ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT "filter_devel" # .lib file
+ )
+endif(ENABLE_STATIC_LIBS)
+
+
########################################################################
# QA C++ Code for gr-filter
########################################################################
diff --git a/gr-filter/lib/dc_blocker_cc_impl.cc b/gr-filter/lib/dc_blocker_cc_impl.cc
index 355426e821..c05a721c99 100644
--- a/gr-filter/lib/dc_blocker_cc_impl.cc
+++ b/gr-filter/lib/dc_blocker_cc_impl.cc
@@ -30,7 +30,7 @@
namespace gr {
namespace filter {
-
+
moving_averager_c::moving_averager_c(int D)
: d_length(D), d_out(0), d_out_d1(0), d_out_d2(0)
{
@@ -48,10 +48,10 @@ namespace gr {
d_delay_line.push_back(x);
d_out = d_delay_line[0];
d_delay_line.pop_front();
-
+
gr_complex y = x - d_out_d1 + d_out_d2;
d_out_d2 = y;
-
+
return (y / (float)(d_length));
}
@@ -114,7 +114,7 @@ namespace gr {
{
const gr_complex *in = (const gr_complex*)input_items[0];
gr_complex *out = (gr_complex*)output_items[0];
-
+
if(d_long_form) {
gr_complex y1, y2, y3, y4, d;
for(int i = 0; i < noutput_items; i++) {
@@ -122,11 +122,11 @@ namespace gr {
y2 = d_ma_1->filter(y1);
y3 = d_ma_2->filter(y2);
y4 = d_ma_3->filter(y3);
-
+
d_delay_line.push_back(d_ma_0->delayed_sig());
d = d_delay_line[0];
d_delay_line.pop_front();
-
+
out[i] = d - y4;
}
}
@@ -138,7 +138,7 @@ namespace gr {
out[i] = d_ma_0->delayed_sig() - y2;
}
}
-
+
return noutput_items;
}
diff --git a/gr-filter/lib/dc_blocker_cc_impl.h b/gr-filter/lib/dc_blocker_cc_impl.h
index a5093cb505..9abf140a81 100644
--- a/gr-filter/lib/dc_blocker_cc_impl.h
+++ b/gr-filter/lib/dc_blocker_cc_impl.h
@@ -29,22 +29,22 @@
namespace gr {
namespace filter {
-
+
class moving_averager_c
{
public:
moving_averager_c(int D);
~moving_averager_c();
-
+
gr_complex filter(gr_complex x);
gr_complex delayed_sig() { return d_out; }
-
+
private:
int d_length;
gr_complex d_out, d_out_d1, d_out_d2;
std::deque<gr_complex> d_delay_line;
};
-
+
class FILTER_API dc_blocker_cc_impl : public dc_blocker_cc
{
private:
@@ -62,9 +62,9 @@ namespace gr {
~dc_blocker_cc_impl();
int group_delay();
-
+
//int set_length(int D);
-
+
int work(int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items);
diff --git a/gr-filter/lib/dc_blocker_ff_impl.cc b/gr-filter/lib/dc_blocker_ff_impl.cc
index c0b5b17022..b5188c8e88 100644
--- a/gr-filter/lib/dc_blocker_ff_impl.cc
+++ b/gr-filter/lib/dc_blocker_ff_impl.cc
@@ -30,13 +30,13 @@
namespace gr {
namespace filter {
-
+
moving_averager_f::moving_averager_f(int D)
: d_length(D), d_out(0), d_out_d1(0), d_out_d2(0)
{
d_delay_line = std::deque<float>(d_length-1, 0);
}
-
+
moving_averager_f::~moving_averager_f()
{
}
@@ -48,13 +48,13 @@ namespace gr {
d_delay_line.push_back(x);
d_out = d_delay_line[0];
d_delay_line.pop_front();
-
+
float y = x - d_out_d1 + d_out_d2;
d_out_d2 = y;
-
+
return (y / (float)(d_length));
}
-
+
dc_blocker_ff::sptr dc_blocker_ff::make(int D, bool long_form)
{
diff --git a/gr-filter/lib/dc_blocker_ff_impl.h b/gr-filter/lib/dc_blocker_ff_impl.h
index c00b750a5d..f9c78882df 100644
--- a/gr-filter/lib/dc_blocker_ff_impl.h
+++ b/gr-filter/lib/dc_blocker_ff_impl.h
@@ -29,22 +29,22 @@
namespace gr {
namespace filter {
-
+
class moving_averager_f
{
public:
moving_averager_f(int D);
~moving_averager_f();
-
+
float filter(float x);
float delayed_sig() { return d_out; }
-
+
private:
int d_length;
float d_out, d_out_d1, d_out_d2;
std::deque<float> d_delay_line;
};
-
+
class FILTER_API dc_blocker_ff_impl : public dc_blocker_ff
{
private:
@@ -62,9 +62,9 @@ namespace gr {
~dc_blocker_ff_impl();
int group_delay();
-
+
//int set_length(int D);
-
+
int work(int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items);
diff --git a/gr-filter/lib/fft_filter_ccc_impl.cc b/gr-filter/lib/fft_filter_ccc_impl.cc
index 09077d2116..34c9f59880 100644
--- a/gr-filter/lib/fft_filter_ccc_impl.cc
+++ b/gr-filter/lib/fft_filter_ccc_impl.cc
@@ -33,7 +33,7 @@
namespace gr {
namespace filter {
-
+
fft_filter_ccc::sptr fft_filter_ccc::make(int decimation,
const std::vector<gr_complex> &taps,
int nthreads)
@@ -52,7 +52,7 @@ namespace gr {
d_updated(false)
{
set_history(1);
-
+
d_filter = new kernel::fft_filter_ccc(decimation, taps, nthreads);
d_new_taps = taps;
@@ -84,7 +84,7 @@ namespace gr {
if(d_filter)
d_filter->set_nthreads(n);
}
-
+
int
fft_filter_ccc_impl::nthreads() const
{
@@ -101,18 +101,18 @@ namespace gr {
{
const gr_complex *in = (const gr_complex *) input_items[0];
gr_complex *out = (gr_complex *) output_items[0];
-
+
if (d_updated){
d_nsamples = d_filter->set_taps(d_new_taps);
d_updated = false;
set_output_multiple(d_nsamples);
return 0; // output multiple may have changed
}
-
+
d_filter->filter(noutput_items, in, out);
return noutput_items;
}
-
+
} /* namespace filter */
} /* namespace gr */
diff --git a/gr-filter/lib/fft_filter_ccc_impl.h b/gr-filter/lib/fft_filter_ccc_impl.h
index 2f804f7bb3..c7a07a92a8 100644
--- a/gr-filter/lib/fft_filter_ccc_impl.h
+++ b/gr-filter/lib/fft_filter_ccc_impl.h
@@ -41,7 +41,7 @@ namespace gr {
fft_filter_ccc_impl(int decimation,
const std::vector<gr_complex> &taps,
int nthreads=1);
-
+
~fft_filter_ccc_impl();
void set_taps(const std::vector<gr_complex> &taps);
@@ -49,7 +49,7 @@ namespace gr {
void set_nthreads(int n);
int nthreads() const;
-
+
int work(int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items);
diff --git a/gr-filter/lib/fft_filter_fff_impl.cc b/gr-filter/lib/fft_filter_fff_impl.cc
index 9d6fa4a59a..de10c4616d 100644
--- a/gr-filter/lib/fft_filter_fff_impl.cc
+++ b/gr-filter/lib/fft_filter_fff_impl.cc
@@ -33,7 +33,7 @@
namespace gr {
namespace filter {
-
+
fft_filter_fff::sptr fft_filter_fff::make(int decimation,
const std::vector<float> &taps,
int nthreads)
@@ -41,8 +41,8 @@ namespace gr {
return gnuradio::get_initial_sptr(new fft_filter_fff_impl
(decimation, taps, nthreads));
}
-
-
+
+
fft_filter_fff_impl::fft_filter_fff_impl(int decimation,
const std::vector<float> &taps,
int nthreads)
@@ -53,7 +53,7 @@ namespace gr {
d_updated(false)
{
set_history(1);
-
+
d_filter = new kernel::fft_filter_fff(decimation, taps, nthreads);
d_new_taps = taps;
@@ -65,27 +65,27 @@ namespace gr {
{
delete d_filter;
}
-
+
void
fft_filter_fff_impl::set_taps(const std::vector<float> &taps)
{
d_new_taps = taps;
d_updated = true;
}
-
+
std::vector<float>
fft_filter_fff_impl::taps() const
{
return d_new_taps;
}
-
+
void
fft_filter_fff_impl::set_nthreads(int n)
{
if(d_filter)
d_filter->set_nthreads(n);
}
-
+
int
fft_filter_fff_impl::nthreads() const
{
@@ -102,18 +102,18 @@ namespace gr {
{
const float *in = (const float *)input_items[0];
float *out = (float *)output_items[0];
-
+
if (d_updated){
d_nsamples = d_filter->set_taps(d_new_taps);
d_updated = false;
set_output_multiple(d_nsamples);
return 0; // output multiple may have changed
}
-
+
d_filter->filter(noutput_items, in, out);
-
+
return noutput_items;
}
-
+
} /* namespace filter */
} /* namespace gr */
diff --git a/gr-filter/lib/fft_filter_fff_impl.h b/gr-filter/lib/fft_filter_fff_impl.h
index 85b75ef625..8c4e134110 100644
--- a/gr-filter/lib/fft_filter_fff_impl.h
+++ b/gr-filter/lib/fft_filter_fff_impl.h
@@ -49,7 +49,7 @@ namespace gr {
void set_nthreads(int n);
int nthreads() const;
-
+
int work(int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items);
diff --git a/gr-filter/lib/filter_delay_fc_impl.cc b/gr-filter/lib/filter_delay_fc_impl.cc
index 645cfdc67e..1a4d47582b 100644
--- a/gr-filter/lib/filter_delay_fc_impl.cc
+++ b/gr-filter/lib/filter_delay_fc_impl.cc
@@ -29,7 +29,7 @@
namespace gr {
namespace filter {
-
+
filter_delay_fc::sptr filter_delay_fc::make(const std::vector<float> &taps)
{
return gnuradio::get_initial_sptr(new filter_delay_fc_impl(taps));
@@ -93,14 +93,14 @@ namespace gr {
d_fir->filter(&in0[i]));
}
break;
-
+
case 2:
for(int j = 0; j < noutput_items; j++) {
out[j] = gr_complex(in0[j + d_delay],
d_fir->filter(&in1[j]));
}
break;
-
+
default:
assert(0);
}
diff --git a/gr-filter/lib/filter_delay_fc_impl.h b/gr-filter/lib/filter_delay_fc_impl.h
index 5f39de223a..ef4b33132e 100644
--- a/gr-filter/lib/filter_delay_fc_impl.h
+++ b/gr-filter/lib/filter_delay_fc_impl.h
@@ -29,7 +29,7 @@
namespace gr {
namespace filter {
-
+
class FILTER_API filter_delay_fc_impl : public filter_delay_fc
{
private:
@@ -44,7 +44,7 @@ namespace gr {
std::vector<float> taps();
void set_taps(const std::vector<float> &taps);
-
+
int work(int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items);
diff --git a/gr-filter/lib/fir_filter.cc b/gr-filter/lib/fir_filter.cc
index e322cfb129..3ea3c8b8f6 100644
--- a/gr-filter/lib/fir_filter.cc
+++ b/gr-filter/lib/fir_filter.cc
@@ -29,7 +29,7 @@
namespace gr {
namespace filter {
namespace kernel {
-
+
fir_filter_fff::fir_filter_fff(int decimation,
const std::vector<float> &taps)
{
@@ -42,7 +42,7 @@ namespace gr {
// Make sure the output sample is always aligned, too.
d_output = (float*)volk_malloc(1*sizeof(float), d_align);
}
-
+
fir_filter_fff::~fir_filter_fff()
{
// Free all aligned taps
@@ -57,7 +57,7 @@ namespace gr {
// Free output sample
volk_free(d_output);
}
-
+
void
fir_filter_fff::set_taps(const std::vector<float> &taps)
{
@@ -69,7 +69,7 @@ namespace gr {
::free(d_aligned_taps);
d_aligned_taps = NULL;
}
-
+
d_ntaps = (int)taps.size();
d_taps = taps;
std::reverse(d_taps.begin(), d_taps.end());
@@ -118,7 +118,7 @@ namespace gr {
d_ntaps+al);
return *d_output;
}
-
+
void
fir_filter_fff::filterN(float output[],
const float input[],
@@ -128,7 +128,7 @@ namespace gr {
output[i] = filter(&input[i]);
}
}
-
+
void
fir_filter_fff::filterNdec(float output[],
const float input[],
@@ -141,7 +141,7 @@ namespace gr {
j += decimate;
}
}
-
+
/**************************************************************/
fir_filter_ccf::fir_filter_ccf(int decimation,
@@ -156,7 +156,7 @@ namespace gr {
// Make sure the output sample is always aligned, too.
d_output = (gr_complex*)volk_malloc(1*sizeof(gr_complex), d_align);
}
-
+
fir_filter_ccf::~fir_filter_ccf()
{
// Free all aligned taps
@@ -171,7 +171,7 @@ namespace gr {
// Free output sample
volk_free(d_output);
}
-
+
void
fir_filter_ccf::set_taps(const std::vector<float> &taps)
{
@@ -183,7 +183,7 @@ namespace gr {
::free(d_aligned_taps);
d_aligned_taps = NULL;
}
-
+
d_ntaps = (int)taps.size();
d_taps = taps;
std::reverse(d_taps.begin(), d_taps.end());
@@ -197,7 +197,7 @@ namespace gr {
d_aligned_taps[i][i+j] = d_taps[j];
}
}
-
+
void
fir_filter_ccf::update_tap(float t, unsigned int index)
{
@@ -220,7 +220,7 @@ namespace gr {
{
return d_ntaps;
}
-
+
gr_complex
fir_filter_ccf::filter(const gr_complex input[])
{
@@ -232,7 +232,7 @@ namespace gr {
(d_ntaps+al));
return *d_output;
}
-
+
void
fir_filter_ccf::filterN(gr_complex output[],
const gr_complex input[],
@@ -241,8 +241,8 @@ namespace gr {
for(unsigned long i = 0; i < n; i++)
output[i] = filter(&input[i]);
}
-
-
+
+
void
fir_filter_ccf::filterNdec(gr_complex output[],
const gr_complex input[],
@@ -255,7 +255,7 @@ namespace gr {
j += decimate;
}
}
-
+
/**************************************************************/
@@ -272,7 +272,7 @@ namespace gr {
// Make sure the output sample is always aligned, too.
d_output = (gr_complex*)volk_malloc(1*sizeof(gr_complex), d_align);
}
-
+
fir_filter_fcc::~fir_filter_fcc()
{
// Free all aligned taps
@@ -287,7 +287,7 @@ namespace gr {
// Free output sample
volk_free(d_output);
}
-
+
void
fir_filter_fcc::set_taps(const std::vector<gr_complex> &taps)
{
@@ -299,7 +299,7 @@ namespace gr {
::free(d_aligned_taps);
d_aligned_taps = NULL;
}
-
+
d_ntaps = (int)taps.size();
d_taps = taps;
std::reverse(d_taps.begin(), d_taps.end());
@@ -313,7 +313,7 @@ namespace gr {
d_aligned_taps[i][i+j] = d_taps[j];
}
}
-
+
void
fir_filter_fcc::update_tap(gr_complex t, unsigned int index)
{
@@ -337,7 +337,7 @@ namespace gr {
{
return d_ntaps;
}
-
+
gr_complex
fir_filter_fcc::filter(const float input[])
{
@@ -350,7 +350,7 @@ namespace gr {
(d_ntaps+al));
return *d_output;
}
-
+
void
fir_filter_fcc::filterN(gr_complex output[],
const float input[],
@@ -359,8 +359,8 @@ namespace gr {
for(unsigned long i = 0; i < n; i++)
output[i] = filter(&input[i]);
}
-
-
+
+
void
fir_filter_fcc::filterNdec(gr_complex output[],
const float input[],
@@ -373,7 +373,7 @@ namespace gr {
j += decimate;
}
}
-
+
/**************************************************************/
fir_filter_ccc::fir_filter_ccc(int decimation,
@@ -388,7 +388,7 @@ namespace gr {
// Make sure the output sample is always aligned, too.
d_output = (gr_complex*)volk_malloc(1*sizeof(gr_complex), d_align);
}
-
+
fir_filter_ccc::~fir_filter_ccc()
{
// Free all aligned taps
@@ -403,7 +403,7 @@ namespace gr {
// Free output sample
volk_free(d_output);
}
-
+
void
fir_filter_ccc::set_taps(const std::vector<gr_complex> &taps)
{
@@ -415,7 +415,7 @@ namespace gr {
::free(d_aligned_taps);
d_aligned_taps = NULL;
}
-
+
d_ntaps = (int)taps.size();
d_taps = taps;
std::reverse(d_taps.begin(), d_taps.end());
@@ -429,7 +429,7 @@ namespace gr {
d_aligned_taps[i][i+j] = d_taps[j];
}
}
-
+
void
fir_filter_ccc::update_tap(gr_complex t, unsigned int index)
{
@@ -452,7 +452,7 @@ namespace gr {
{
return d_ntaps;
}
-
+
gr_complex
fir_filter_ccc::filter(const gr_complex input[])
{
@@ -464,7 +464,7 @@ namespace gr {
(d_ntaps+al));
return *d_output;
}
-
+
void
fir_filter_ccc::filterN(gr_complex output[],
const gr_complex input[],
@@ -473,8 +473,8 @@ namespace gr {
for(unsigned long i = 0; i < n; i++)
output[i] = filter(&input[i]);
}
-
-
+
+
void
fir_filter_ccc::filterNdec(gr_complex output[],
const gr_complex input[],
@@ -487,7 +487,7 @@ namespace gr {
j += decimate;
}
}
-
+
/**************************************************************/
fir_filter_scc::fir_filter_scc(int decimation,
@@ -502,7 +502,7 @@ namespace gr {
// Make sure the output sample is always aligned, too.
d_output = (gr_complex*)volk_malloc(1*sizeof(gr_complex), d_align);
}
-
+
fir_filter_scc::~fir_filter_scc()
{
// Free all aligned taps
@@ -517,7 +517,7 @@ namespace gr {
// Free output sample
volk_free(d_output);
}
-
+
void
fir_filter_scc::set_taps(const std::vector<gr_complex> &taps)
{
@@ -529,7 +529,7 @@ namespace gr {
::free(d_aligned_taps);
d_aligned_taps = NULL;
}
-
+
d_ntaps = (int)taps.size();
d_taps = taps;
std::reverse(d_taps.begin(), d_taps.end());
@@ -543,7 +543,7 @@ namespace gr {
d_aligned_taps[i][i+j] = d_taps[j];
}
}
-
+
void
fir_filter_scc::update_tap(gr_complex t, unsigned int index)
{
@@ -566,7 +566,7 @@ namespace gr {
{
return d_ntaps;
}
-
+
gr_complex
fir_filter_scc::filter(const short input[])
{
@@ -579,7 +579,7 @@ namespace gr {
return *d_output;
}
-
+
void
fir_filter_scc::filterN(gr_complex output[],
const short input[],
@@ -588,8 +588,8 @@ namespace gr {
for(unsigned long i = 0; i < n; i++)
output[i] = filter(&input[i]);
}
-
-
+
+
void
fir_filter_scc::filterNdec(gr_complex output[],
const short input[],
@@ -617,7 +617,7 @@ namespace gr {
// Make sure the output sample is always aligned, too.
d_output = (short*)volk_malloc(1*sizeof(short), d_align);
}
-
+
fir_filter_fsf::~fir_filter_fsf()
{
// Free all aligned taps
@@ -632,7 +632,7 @@ namespace gr {
// Free output sample
volk_free(d_output);
}
-
+
void
fir_filter_fsf::set_taps(const std::vector<float> &taps)
{
@@ -644,7 +644,7 @@ namespace gr {
::free(d_aligned_taps);
d_aligned_taps = NULL;
}
-
+
d_ntaps = (int)taps.size();
d_taps = taps;
std::reverse(d_taps.begin(), d_taps.end());
@@ -658,7 +658,7 @@ namespace gr {
d_aligned_taps[i][i+j] = d_taps[j];
}
}
-
+
void
fir_filter_fsf::update_tap(float t, unsigned int index)
{
@@ -681,7 +681,7 @@ namespace gr {
{
return d_ntaps;
}
-
+
short
fir_filter_fsf::filter(const float input[])
{
@@ -694,7 +694,7 @@ namespace gr {
return *d_output;
}
-
+
void
fir_filter_fsf::filterN(short output[],
const float input[],
diff --git a/gr-filter/lib/fir_filter_XXX_impl.cc.t b/gr-filter/lib/fir_filter_XXX_impl.cc.t
index 8b8938095f..4a112a2180 100644
--- a/gr-filter/lib/fir_filter_XXX_impl.cc.t
+++ b/gr-filter/lib/fir_filter_XXX_impl.cc.t
@@ -32,7 +32,7 @@
namespace gr {
namespace filter {
-
+
@BASE_NAME@::sptr
@BASE_NAME@::make(int decimation, const std::vector<@TAP_TYPE@> &taps)
{
@@ -68,7 +68,7 @@ namespace gr {
d_fir->set_taps(taps);
d_updated = true;
}
-
+
std::vector<@TAP_TYPE@>
@IMPL_NAME@::taps() const
{
@@ -84,13 +84,13 @@ namespace gr {
const @I_TYPE@ *in = (const @I_TYPE@*)input_items[0];
@O_TYPE@ *out = (@O_TYPE@*)output_items[0];
-
+
if (d_updated) {
set_history(d_fir->ntaps());
d_updated = false;
return 0; // history requirements may have changed.
}
-
+
if (decimation() == 1) {
d_fir->filterN(out, in, noutput_items);
}
@@ -98,7 +98,7 @@ namespace gr {
d_fir->filterNdec(out, in, noutput_items,
decimation());
}
-
+
return noutput_items;
}
diff --git a/gr-filter/lib/fir_filter_XXX_impl.h.t b/gr-filter/lib/fir_filter_XXX_impl.h.t
index d00e73dc33..3678d82acb 100644
--- a/gr-filter/lib/fir_filter_XXX_impl.h.t
+++ b/gr-filter/lib/fir_filter_XXX_impl.h.t
@@ -44,7 +44,7 @@ namespace gr {
void set_taps(const std::vector<@TAP_TYPE@> &taps);
std::vector<@TAP_TYPE@> taps() const;
-
+
int work(int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items);
diff --git a/gr-filter/lib/fir_filter_with_buffer.cc b/gr-filter/lib/fir_filter_with_buffer.cc
index 4191dc3932..9d4dd3a023 100644
--- a/gr-filter/lib/fir_filter_with_buffer.cc
+++ b/gr-filter/lib/fir_filter_with_buffer.cc
@@ -54,7 +54,7 @@ namespace gr {
volk_free(d_buffer_ptr);
d_buffer_ptr = NULL;
}
-
+
// Free aligned taps
if(d_aligned_taps != NULL) {
for(int i = 0; i < d_naligned; i++) {
@@ -185,7 +185,7 @@ namespace gr {
}
}
-
+
/**************************************************************/
@@ -208,7 +208,7 @@ namespace gr {
volk_free(d_buffer_ptr);
d_buffer_ptr = NULL;
}
-
+
// Free aligned taps
if(d_aligned_taps != NULL) {
for(int i = 0; i < d_naligned; i++) {
@@ -338,7 +338,7 @@ namespace gr {
}
}
-
+
/**************************************************************/
@@ -361,7 +361,7 @@ namespace gr {
volk_free(d_buffer_ptr);
d_buffer_ptr = NULL;
}
-
+
// Free aligned taps
if(d_aligned_taps != NULL) {
for(int i = 0; i < d_naligned; i++) {
diff --git a/gr-filter/lib/firdes.cc b/gr-filter/lib/firdes.cc
index cb6bffd18a..351eb7a71d 100644
--- a/gr-filter/lib/firdes.cc
+++ b/gr-filter/lib/firdes.cc
@@ -37,11 +37,11 @@ namespace gr {
{
return fft::window::build(static_cast<fft::window::win_type>(type), ntaps, beta);
}
-
+
//
// === Low Pass ===
//
-
+
vector<float>
firdes::low_pass_2(double gain,
double sampling_freq, // Hz
@@ -52,11 +52,11 @@ namespace gr {
double beta) // used only with Kaiser
{
sanity_check_1f(sampling_freq, cutoff_freq, transition_width);
-
+
int ntaps = compute_ntaps_windes(sampling_freq,
transition_width,
attenuation_dB);
-
+
// construct the truncated ideal impulse response
// [sin(x)/x for the low pass case]
@@ -105,7 +105,7 @@ namespace gr {
// construct the truncated ideal impulse response
// [sin(x)/x for the low pass case]
-
+
vector<float> taps(ntaps);
vector<float> w = window(window_type, ntaps, beta);
@@ -123,7 +123,7 @@ namespace gr {
// find the factor to normalize the gain, fmax.
// For low-pass, gain @ zero freq = 1.0
-
+
double fmax = taps[0 + M];
for(int n = 1; n <= M; n++)
fmax += 2 * taps[n + M];
@@ -140,7 +140,7 @@ namespace gr {
//
// === High Pass ===
//
-
+
vector<float>
firdes::high_pass_2(double gain,
double sampling_freq,
@@ -151,13 +151,13 @@ namespace gr {
double beta) // used only with Kaiser
{
sanity_check_1f(sampling_freq, cutoff_freq, transition_width);
-
+
int ntaps = compute_ntaps_windes(sampling_freq,
transition_width,
attenuation_dB);
// construct the truncated ideal impulse response times the window function
-
+
vector<float> taps(ntaps);
vector<float> w = window(window_type, ntaps, beta);
@@ -175,13 +175,13 @@ namespace gr {
// find the factor to normalize the gain, fmax.
// For high-pass, gain @ fs/2 freq = 1.0
-
+
double fmax = taps[0 + M];
for(int n = 1; n <= M; n++)
fmax += 2 * taps[n + M] * cos(n * M_PI);
-
+
gain /= fmax; // normalize
-
+
for(int i = 0; i < ntaps; i++)
taps[i] *= gain;
@@ -202,7 +202,7 @@ namespace gr {
int ntaps = compute_ntaps(sampling_freq,
transition_width,
window_type, beta);
-
+
// construct the truncated ideal impulse response times the window function
vector<float> taps(ntaps);
@@ -222,7 +222,7 @@ namespace gr {
// find the factor to normalize the gain, fmax.
// For high-pass, gain @ fs/2 freq = 1.0
-
+
double fmax = taps[0 + M];
for(int n = 1; n <= M; n++)
fmax += 2 * taps[n + M] * cos(n * M_PI);
@@ -274,7 +274,7 @@ namespace gr {
// find the factor to normalize the gain, fmax.
// For band-pass, gain @ center freq = 1.0
-
+
double fmax = taps[0 + M];
for(int n = 1; n <= M; n++)
fmax += 2 * taps[n + M] * cos(n * (fwT0 + fwT1) * 0.5);
@@ -314,7 +314,7 @@ namespace gr {
int M = (ntaps - 1) / 2;
double fwT0 = 2 * M_PI * low_cutoff_freq / sampling_freq;
double fwT1 = 2 * M_PI * high_cutoff_freq / sampling_freq;
-
+
for(int n = -M; n <= M; n++) {
if (n == 0)
taps[n + M] = (fwT1 - fwT0) / M_PI * w[n + M];
@@ -376,8 +376,8 @@ namespace gr {
float phase = 0;
if (lptaps.size() & 01) {
phase = - freq * ( lptaps.size() >> 1 );
- }
- else
+ }
+ else
phase = - freq/2.0 * ((1 + 2*lptaps.size()) >> 1);
for(unsigned int i = 0; i < lptaps.size(); i++) {
@@ -423,7 +423,7 @@ namespace gr {
float phase = 0;
if(lptaps.size() & 01) {
phase = - freq * ( lptaps.size() >> 1 );
- }
+ }
else
phase = - freq/2.0 * ((1 + 2*lptaps.size()) >> 1);
@@ -572,7 +572,7 @@ namespace gr {
taps[i] /= gain;
return taps;
}
-
+
//
// Gaussian
//
@@ -647,7 +647,7 @@ namespace gr {
taps[i] = 4 * alpha * num / den;
scale += taps[i];
}
-
+
for(int i = 0; i < ntaps; i++)
taps[i] = taps[i] * gain / scale;
@@ -720,7 +720,7 @@ namespace gr {
throw std::out_of_range("firdes check failed: 0 < fa <= sampling_freq / 2");
if(transition_width <= 0)
- throw std::out_of_range("gr_dirdes check failed: transition_width > 0");
+ throw std::out_of_range("firdes check failed: transition_width > 0");
}
void
@@ -734,13 +734,13 @@ namespace gr {
if (fa <= 0.0 || fa > sampling_freq / 2)
throw std::out_of_range("firdes check failed: 0 < fa <= sampling_freq / 2");
-
+
if (fb <= 0.0 || fb > sampling_freq / 2)
throw std::out_of_range("firdes check failed: 0 < fb <= sampling_freq / 2");
-
+
if (fa > fb)
throw std::out_of_range("firdes check failed: fa <= fb");
-
+
if (transition_width <= 0)
throw std::out_of_range("firdes check failed: transition_width > 0");
}
diff --git a/gr-filter/lib/fractional_interpolator_cc_impl.cc b/gr-filter/lib/fractional_interpolator_cc_impl.cc
index 06e823f75a..938c377cc8 100644
--- a/gr-filter/lib/fractional_interpolator_cc_impl.cc
+++ b/gr-filter/lib/fractional_interpolator_cc_impl.cc
@@ -30,7 +30,7 @@
namespace gr {
namespace filter {
-
+
fractional_interpolator_cc::sptr
fractional_interpolator_cc::make(float phase_shift, float interp_ratio)
{
diff --git a/gr-filter/lib/fractional_interpolator_cc_impl.h b/gr-filter/lib/fractional_interpolator_cc_impl.h
index 6297313b97..786bccfbaf 100644
--- a/gr-filter/lib/fractional_interpolator_cc_impl.h
+++ b/gr-filter/lib/fractional_interpolator_cc_impl.h
@@ -28,7 +28,7 @@
namespace gr {
namespace filter {
-
+
class FILTER_API fractional_interpolator_cc_impl
: public fractional_interpolator_cc
{
diff --git a/gr-filter/lib/fractional_interpolator_ff_impl.cc b/gr-filter/lib/fractional_interpolator_ff_impl.cc
index 8728a05241..60730aa6be 100644
--- a/gr-filter/lib/fractional_interpolator_ff_impl.cc
+++ b/gr-filter/lib/fractional_interpolator_ff_impl.cc
@@ -30,7 +30,7 @@
namespace gr {
namespace filter {
-
+
fractional_interpolator_ff::sptr
fractional_interpolator_ff::make(float phase_shift, float interp_ratio)
{
diff --git a/gr-filter/lib/fractional_interpolator_ff_impl.h b/gr-filter/lib/fractional_interpolator_ff_impl.h
index 41c5db7e77..3b3047888f 100644
--- a/gr-filter/lib/fractional_interpolator_ff_impl.h
+++ b/gr-filter/lib/fractional_interpolator_ff_impl.h
@@ -28,7 +28,7 @@
namespace gr {
namespace filter {
-
+
class FILTER_API fractional_interpolator_ff_impl
: public fractional_interpolator_ff
{
diff --git a/gr-filter/lib/fractional_resampler_cc_impl.cc b/gr-filter/lib/fractional_resampler_cc_impl.cc
index b17e13638b..72a2262605 100644
--- a/gr-filter/lib/fractional_resampler_cc_impl.cc
+++ b/gr-filter/lib/fractional_resampler_cc_impl.cc
@@ -30,7 +30,7 @@
namespace gr {
namespace filter {
-
+
fractional_resampler_cc::sptr
fractional_resampler_cc::make(float phase_shift, float resamp_ratio)
{
diff --git a/gr-filter/lib/fractional_resampler_cc_impl.h b/gr-filter/lib/fractional_resampler_cc_impl.h
index f4a5ead56e..d88d595370 100644
--- a/gr-filter/lib/fractional_resampler_cc_impl.h
+++ b/gr-filter/lib/fractional_resampler_cc_impl.h
@@ -28,7 +28,7 @@
namespace gr {
namespace filter {
-
+
class FILTER_API fractional_resampler_cc_impl
: public fractional_resampler_cc
{
diff --git a/gr-filter/lib/fractional_resampler_ff_impl.cc b/gr-filter/lib/fractional_resampler_ff_impl.cc
index 131ccaae4e..2ffccf5204 100644
--- a/gr-filter/lib/fractional_resampler_ff_impl.cc
+++ b/gr-filter/lib/fractional_resampler_ff_impl.cc
@@ -30,7 +30,7 @@
namespace gr {
namespace filter {
-
+
fractional_resampler_ff::sptr
fractional_resampler_ff::make(float phase_shift, float resamp_ratio)
{
diff --git a/gr-filter/lib/fractional_resampler_ff_impl.h b/gr-filter/lib/fractional_resampler_ff_impl.h
index 7e7fcc0ad4..11c9886176 100644
--- a/gr-filter/lib/fractional_resampler_ff_impl.h
+++ b/gr-filter/lib/fractional_resampler_ff_impl.h
@@ -28,7 +28,7 @@
namespace gr {
namespace filter {
-
+
class FILTER_API fractional_resampler_ff_impl
: public fractional_resampler_ff
{
diff --git a/gr-filter/lib/freq_xlating_fir_filter_XXX_impl.cc.t b/gr-filter/lib/freq_xlating_fir_filter_XXX_impl.cc.t
index 57fa47f935..a9e70e7b45 100644
--- a/gr-filter/lib/freq_xlating_fir_filter_XXX_impl.cc.t
+++ b/gr-filter/lib/freq_xlating_fir_filter_XXX_impl.cc.t
@@ -132,7 +132,7 @@ namespace gr {
pmt::pmt_t x = pmt::cdr(msg);
if(pmt::is_real(x)) {
double freq = pmt::to_double(x);
- set_center_freq(freq*d_sampling_freq);
+ set_center_freq(freq);
}
}
}
diff --git a/gr-filter/lib/hilbert_fc_impl.cc b/gr-filter/lib/hilbert_fc_impl.cc
index 5a066ac27c..0bdfb7041b 100644
--- a/gr-filter/lib/hilbert_fc_impl.cc
+++ b/gr-filter/lib/hilbert_fc_impl.cc
@@ -30,7 +30,7 @@
namespace gr {
namespace filter {
-
+
hilbert_fc::sptr
hilbert_fc::make(unsigned int ntaps,
firdes::win_type window,
@@ -48,7 +48,7 @@ namespace gr {
io_signature::make(1, 1, sizeof(gr_complex))),
d_ntaps(ntaps | 0x1) // ensure ntaps is odd
{
- d_hilb = new kernel::fir_filter_fff(1,
+ d_hilb = new kernel::fir_filter_fff(1,
firdes::hilbert(d_ntaps, window, beta));
set_history(d_ntaps);
@@ -69,12 +69,12 @@ namespace gr {
{
float *in = (float *)input_items[0];
gr_complex *out = (gr_complex *)output_items[0];
-
+
for(int i = 0; i < noutput_items; i++) {
out[i] = gr_complex(in[i + d_ntaps/2],
d_hilb->filter(&in[i]));
}
-
+
return noutput_items;
}
diff --git a/gr-filter/lib/hilbert_fc_impl.h b/gr-filter/lib/hilbert_fc_impl.h
index 70968b15f2..fa46a057f9 100644
--- a/gr-filter/lib/hilbert_fc_impl.h
+++ b/gr-filter/lib/hilbert_fc_impl.h
@@ -42,7 +42,7 @@ namespace gr {
double beta=6.76);
~hilbert_fc_impl();
-
+
int work(int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items);
diff --git a/gr-filter/lib/iir_filter_ccc_impl.cc b/gr-filter/lib/iir_filter_ccc_impl.cc
index f1f0dbe4ed..e813cd933d 100644
--- a/gr-filter/lib/iir_filter_ccc_impl.cc
+++ b/gr-filter/lib/iir_filter_ccc_impl.cc
@@ -29,7 +29,7 @@
namespace gr {
namespace filter {
-
+
iir_filter_ccc::sptr
iir_filter_ccc::make(const std::vector<gr_complex> &fftaps,
const std::vector<gr_complex> &fbtaps,
diff --git a/gr-filter/lib/iir_filter_ccd_impl.cc b/gr-filter/lib/iir_filter_ccd_impl.cc
index 8616b6deac..ebe53e925a 100644
--- a/gr-filter/lib/iir_filter_ccd_impl.cc
+++ b/gr-filter/lib/iir_filter_ccd_impl.cc
@@ -29,7 +29,7 @@
namespace gr {
namespace filter {
-
+
iir_filter_ccd::sptr
iir_filter_ccd::make(const std::vector<double> &fftaps,
const std::vector<double> &fbtaps,
diff --git a/gr-filter/lib/iir_filter_ccf_impl.cc b/gr-filter/lib/iir_filter_ccf_impl.cc
index 5132bdfedf..bb19e4550d 100644
--- a/gr-filter/lib/iir_filter_ccf_impl.cc
+++ b/gr-filter/lib/iir_filter_ccf_impl.cc
@@ -29,7 +29,7 @@
namespace gr {
namespace filter {
-
+
iir_filter_ccf::sptr
iir_filter_ccf::make(const std::vector<float> &fftaps,
const std::vector<float> &fbtaps,
diff --git a/gr-filter/lib/iir_filter_ccz_impl.cc b/gr-filter/lib/iir_filter_ccz_impl.cc
index 117aef5aa4..cb7b2300f5 100644
--- a/gr-filter/lib/iir_filter_ccz_impl.cc
+++ b/gr-filter/lib/iir_filter_ccz_impl.cc
@@ -29,7 +29,7 @@
namespace gr {
namespace filter {
-
+
iir_filter_ccz::sptr
iir_filter_ccz::make(const std::vector<gr_complexd> &fftaps,
const std::vector<gr_complexd> &fbtaps,
diff --git a/gr-filter/lib/iir_filter_ffd_impl.cc b/gr-filter/lib/iir_filter_ffd_impl.cc
index b61c80aabf..5aee5175c1 100644
--- a/gr-filter/lib/iir_filter_ffd_impl.cc
+++ b/gr-filter/lib/iir_filter_ffd_impl.cc
@@ -29,7 +29,7 @@
namespace gr {
namespace filter {
-
+
iir_filter_ffd::sptr
iir_filter_ffd::make(const std::vector<double> &fftaps,
const std::vector<double> &fbtaps,
diff --git a/gr-filter/lib/interp_fir_filter_XXX_impl.cc.t b/gr-filter/lib/interp_fir_filter_XXX_impl.cc.t
index 1a3a49ea31..507322b21d 100644
--- a/gr-filter/lib/interp_fir_filter_XXX_impl.cc.t
+++ b/gr-filter/lib/interp_fir_filter_XXX_impl.cc.t
@@ -33,7 +33,7 @@
namespace gr {
namespace filter {
-
+
@BASE_NAME@::sptr
@BASE_NAME@::make(unsigned interpolation,
const std::vector<@TAP_TYPE@> &taps)
diff --git a/gr-filter/lib/mmse_fir_interpolator_cc.cc b/gr-filter/lib/mmse_fir_interpolator_cc.cc
index 5d711ecc81..848dadda7e 100644
--- a/gr-filter/lib/mmse_fir_interpolator_cc.cc
+++ b/gr-filter/lib/mmse_fir_interpolator_cc.cc
@@ -30,7 +30,7 @@
namespace gr {
namespace filter {
-
+
mmse_fir_interpolator_cc::mmse_fir_interpolator_cc()
{
filters.resize (NSTEPS + 1);
diff --git a/gr-filter/lib/mmse_fir_interpolator_ff.cc b/gr-filter/lib/mmse_fir_interpolator_ff.cc
index f4cf6c3862..0c8fcfad53 100644
--- a/gr-filter/lib/mmse_fir_interpolator_ff.cc
+++ b/gr-filter/lib/mmse_fir_interpolator_ff.cc
@@ -30,7 +30,7 @@
namespace gr {
namespace filter {
-
+
mmse_fir_interpolator_ff::mmse_fir_interpolator_ff()
{
filters.resize(NSTEPS + 1);
diff --git a/gr-filter/lib/pfb_arb_resampler_ccf_impl.cc b/gr-filter/lib/pfb_arb_resampler_ccf_impl.cc
index 2b59723d62..aa6cb775ae 100644
--- a/gr-filter/lib/pfb_arb_resampler_ccf_impl.cc
+++ b/gr-filter/lib/pfb_arb_resampler_ccf_impl.cc
@@ -30,7 +30,7 @@
namespace gr {
namespace filter {
-
+
pfb_arb_resampler_ccf::sptr
pfb_arb_resampler_ccf::make(float rate,
const std::vector<float> &taps,
@@ -85,7 +85,7 @@ namespace gr {
set_history(d_resamp->taps_per_filter());
d_updated = true;
}
-
+
std::vector<std::vector<float> >
pfb_arb_resampler_ccf_impl::taps() const
{
@@ -122,7 +122,7 @@ namespace gr {
unsigned int
pfb_arb_resampler_ccf_impl::interpolation_rate() const
- {
+ {
return d_resamp->interpolation_rate();
}
diff --git a/gr-filter/lib/pfb_arb_resampler_fff_impl.cc b/gr-filter/lib/pfb_arb_resampler_fff_impl.cc
index 1d0cdee95b..e82ef31625 100644
--- a/gr-filter/lib/pfb_arb_resampler_fff_impl.cc
+++ b/gr-filter/lib/pfb_arb_resampler_fff_impl.cc
@@ -30,7 +30,7 @@
namespace gr {
namespace filter {
-
+
pfb_arb_resampler_fff::sptr
pfb_arb_resampler_fff::make(float rate,
const std::vector<float> &taps,
@@ -85,7 +85,7 @@ namespace gr {
set_history(d_resamp->taps_per_filter());
d_updated = true;
}
-
+
std::vector<std::vector<float> >
pfb_arb_resampler_fff_impl::taps() const
{
@@ -122,7 +122,7 @@ namespace gr {
unsigned int
pfb_arb_resampler_fff_impl::interpolation_rate() const
- {
+ {
return d_resamp->interpolation_rate();
}
diff --git a/gr-filter/lib/pfb_channelizer_ccf_impl.cc b/gr-filter/lib/pfb_channelizer_ccf_impl.cc
index fe1966bc3f..c439353505 100644
--- a/gr-filter/lib/pfb_channelizer_ccf_impl.cc
+++ b/gr-filter/lib/pfb_channelizer_ccf_impl.cc
@@ -28,6 +28,10 @@
#include <gnuradio/io_signature.h>
#include <stdio.h>
+#ifdef _MSC_VER
+#define round(number) number < 0.0 ? ceil(number - 0.5) : floor(number + 0.5)
+#endif
+
namespace gr {
namespace filter {
diff --git a/gr-filter/lib/pfb_interpolator_ccf_impl.h b/gr-filter/lib/pfb_interpolator_ccf_impl.h
index 6bc1d4b789..c4dc3c3d16 100644
--- a/gr-filter/lib/pfb_interpolator_ccf_impl.h
+++ b/gr-filter/lib/pfb_interpolator_ccf_impl.h
@@ -32,7 +32,7 @@
namespace gr {
namespace filter {
-
+
class FILTER_API pfb_interpolator_ccf_impl : public pfb_interpolator_ccf, kernel::polyphase_filterbank
{
private:
diff --git a/gr-filter/lib/pfb_synthesizer_ccf_impl.h b/gr-filter/lib/pfb_synthesizer_ccf_impl.h
index e83865a7ff..cbe4064a3e 100644
--- a/gr-filter/lib/pfb_synthesizer_ccf_impl.h
+++ b/gr-filter/lib/pfb_synthesizer_ccf_impl.h
@@ -31,7 +31,7 @@
namespace gr {
namespace filter {
-
+
// While this is a polyphase_filterbank, we don't use the normal
// parent class because we have to use the fir_filter_with_buffer
// objects instead of normal filters.
diff --git a/gr-filter/lib/pm_remez.cc b/gr-filter/lib/pm_remez.cc
index c23095af25..ea351766a5 100644
--- a/gr-filter/lib/pm_remez.cc
+++ b/gr-filter/lib/pm_remez.cc
@@ -97,7 +97,7 @@ namespace gr {
* double D[] - Desired response on the dense grid [gridsize]
* double W[] - Weight function on the dense grid [gridsize]
*******************/
-
+
static void
create_dense_grid(int r, int numtaps, int numband, const double bands[],
const double des[], const double weight[], int gridsize,
@@ -129,7 +129,7 @@ namespace gr {
}
Grid[j-1] = highf;
}
-
+
/*
* Similar to above, if odd symmetry, last grid point can't be .5
* - but, if there are even taps, leave the last grid point at .5
@@ -158,12 +158,12 @@ namespace gr {
* -------
* int ext[] - Extremal indexes to dense frequency grid [r+1]
********************/
-
+
static void
initial_guess(int r, int Ext[], int gridsize)
{
int i;
-
+
for(i=0; i<=r; i++)
Ext[i] = i * (gridsize-1) / r;
}
@@ -195,7 +195,7 @@ namespace gr {
{
int i, j, k, ld;
double sign, xi, delta, denom, numer;
-
+
/*
* Find x[]
*/
@@ -262,13 +262,13 @@ namespace gr {
* -------
* Returns double value of A[freq]
*********************/
-
+
static double
compute_A(double freq, int r, double ad[], double x[], double y[])
{
int i;
double xc, c, denom, numer;
-
+
denom = numer = 0;
xc = cos(Pi2 * freq);
for(i = 0; i <= r; i++) {
@@ -317,7 +317,7 @@ namespace gr {
{
int i;
double A;
-
+
for(i = 0; i < gridsize; i++) {
A = compute_A(Grid[i], r, ad, x, y);
E[i] = W[i] * (D[i] - A);
@@ -355,20 +355,20 @@ namespace gr {
int i, j, k, l, extra; /* Counters */
int up, alt;
int *foundExt; /* Array of found extremals */
-
+
/*
* Allocate enough space for found extremals.
*/
foundExt = (int *)malloc((2*r) * sizeof(int));
k = 0;
-
+
/*
* Check for extremum at 0.
*/
if(((E[0] > 0.0) && (E[0] > E[1])) ||
((E[0] < 0.0) && (E[0] < E[1])))
foundExt[k++] = 0;
-
+
/*
* Check for extrema inside dense grid
*/
@@ -396,13 +396,13 @@ namespace gr {
}
foundExt[k++] = j;
}
-
+
// PAK: we sometimes get not enough extremal frequencies
if(k < r+1) {
free(foundExt);
return -2;
}
-
+
/*
* Remove extra extremals
*/
@@ -435,7 +435,7 @@ namespace gr {
break; /* Ooops, found two non-alternating */
} /* extrema. Delete smallest of them */
} /* if the loop finishes, all extrema are alternating */
-
+
/*
* If there's only one extremal and all are alternating,
* delete the smallest of the first/last extremals.
@@ -450,7 +450,7 @@ namespace gr {
l = 0;
// PAK: changed from l = foundExt[0];
}
-
+
for(j = l; j < k-1; j++) { /* Loop that does the deletion */
foundExt[j] = foundExt[j+1];
assert(foundExt[j]<gridsize);
@@ -458,7 +458,7 @@ namespace gr {
k--;
extra--;
}
-
+
for(i = 0; i <= r; i++) {
assert(foundExt[i]<gridsize);
Ext[i] = foundExt[i]; /* Copy found extremals to Ext[] */
@@ -468,7 +468,7 @@ namespace gr {
return 0;
}
-
+
/*********************
* freq_sample
*============
@@ -491,7 +491,7 @@ namespace gr {
{
int n, k;
double x, val, M;
-
+
M = (N-1.0)/2.0;
if(symm == POSITIVE) {
if(N % 2) {
@@ -558,7 +558,7 @@ namespace gr {
{
int i;
double min, max, current;
-
+
min = max = fabs(E[Ext[0]]);
for(i = 1; i <= r; i++) {
current = fabs(E[Ext[i]]);
@@ -604,12 +604,12 @@ namespace gr {
double *taps, c;
double *x, *y, *ad;
int symmetry;
-
+
if(type == BANDPASS)
symmetry = POSITIVE;
else
symmetry = NEGATIVE;
-
+
r = numtaps/2; /* number of extrema */
if((numtaps % 2) && (symmetry == POSITIVE))
r++;
@@ -625,7 +625,7 @@ namespace gr {
if(symmetry == NEGATIVE) {
gridsize--;
}
-
+
/*
* Dynamically allocate memory for arrays with proper sizes
*/
@@ -638,7 +638,7 @@ namespace gr {
x = (double *)malloc((r+1) * sizeof(double));
y = (double *)malloc((r+1) * sizeof(double));
ad = (double *)malloc((r+1) * sizeof(double));
-
+
/*
* Create dense frequency grid
*/
@@ -686,7 +686,7 @@ namespace gr {
}
}
}
-
+
/*
* Perform the Remez Exchange algorithm
*/
@@ -739,7 +739,7 @@ namespace gr {
* Frequency sampling design with calculated taps
*/
freq_sample(numtaps, taps, h, symmetry);
-
+
/*
* Delete allocated memory
*/
@@ -794,7 +794,7 @@ namespace gr {
if(arg_bands[0] < 0 || arg_bands[arg_bands.size() - 1] > 1)
punt("gr_remez: band edges must be in the range [0,1]");
-
+
// Divide by 2 to fit with the implementation that uses a
// sample rate of [0, 0.5] instead of [0, 1.0]
for(int i = 0; i < 2 * numbands; i++)
@@ -806,11 +806,11 @@ namespace gr {
for(int i = 0; i < 2 * numbands; i++)
response[i] = arg_response[i];
-
+
LOCAL_BUFFER(double, weight, numbands);
for(int i = 0; i < numbands; i++)
weight[i] = 1.0;
-
+
if(arg_weight.size() != 0) {
if((int) arg_weight.size() != numbands)
punt("gr_remez: need one weight for each band [=length(band)/2]");
@@ -837,13 +837,13 @@ namespace gr {
if(err == -1)
punt("gr_remez: failed to converge");
-
+
if(err == -2)
punt("gr_remez: insufficient extremals -- cannot continue");
if(err == -3)
punt("gr_remez: too many extremals -- cannot continue");
-
+
return std::vector<double>(&coeff[0], &coeff[numtaps]);
}
diff --git a/gr-filter/lib/qa_fir_filter_with_buffer.cc b/gr-filter/lib/qa_fir_filter_with_buffer.cc
index 06d44f6eee..a1dd9f4e48 100644
--- a/gr-filter/lib/qa_fir_filter_with_buffer.cc
+++ b/gr-filter/lib/qa_fir_filter_with_buffer.cc
@@ -41,7 +41,7 @@ namespace gr {
#define ERR_DELTA (1e-5)
static float
- uniform()
+ uniform()
{
return 2.0 * ((float)(::random()) / RANDOM_MAX - 0.5); // uniformly (-1, 1)
}
@@ -310,7 +310,7 @@ namespace gr {
sum += input[i] * taps[i];
}
- //return gr_complex(121,9)*sum;
+ //return gr_complex(121,9)*sum;
return sum;
}
diff --git a/gr-filter/lib/qa_fir_filter_with_buffer.h b/gr-filter/lib/qa_fir_filter_with_buffer.h
index 8850ada20c..b3bb9c874e 100644
--- a/gr-filter/lib/qa_fir_filter_with_buffer.h
+++ b/gr-filter/lib/qa_fir_filter_with_buffer.h
@@ -30,7 +30,7 @@ namespace gr {
namespace fff {
- class qa_fir_filter_with_buffer_fff : public CppUnit::TestCase
+ class qa_fir_filter_with_buffer_fff : public CppUnit::TestCase
{
CPPUNIT_TEST_SUITE(qa_fir_filter_with_buffer_fff);
CPPUNIT_TEST(t1);
@@ -50,7 +50,7 @@ namespace gr {
namespace ccc {
- class qa_fir_filter_with_buffer_ccc : public CppUnit::TestCase
+ class qa_fir_filter_with_buffer_ccc : public CppUnit::TestCase
{
CPPUNIT_TEST_SUITE(qa_fir_filter_with_buffer_ccc);
CPPUNIT_TEST(t1);
@@ -70,7 +70,7 @@ namespace gr {
namespace ccf {
- class qa_fir_filter_with_buffer_ccf : public CppUnit::TestCase
+ class qa_fir_filter_with_buffer_ccf : public CppUnit::TestCase
{
CPPUNIT_TEST_SUITE(qa_fir_filter_with_buffer_ccf);
CPPUNIT_TEST(t1);
diff --git a/gr-filter/lib/qa_firdes.h b/gr-filter/lib/qa_firdes.h
index b27cf78b91..6b3cc7dc30 100644
--- a/gr-filter/lib/qa_firdes.h
+++ b/gr-filter/lib/qa_firdes.h
@@ -27,9 +27,9 @@
namespace gr {
namespace filter {
-
+
class qa_firdes : public CppUnit::TestCase {
-
+
CPPUNIT_TEST_SUITE(qa_firdes);
CPPUNIT_TEST(t1);
CPPUNIT_TEST(t2);
@@ -39,7 +39,7 @@ namespace gr {
CPPUNIT_TEST(t6);
CPPUNIT_TEST(t7);
CPPUNIT_TEST_SUITE_END();
-
+
private:
void t1();
void t2();
@@ -49,7 +49,7 @@ namespace gr {
void t6();
void t7();
};
-
+
} /* namespace filter */
} /* namespace gr */
diff --git a/gr-filter/lib/qa_mmse_fir_interpolator_cc.cc b/gr-filter/lib/qa_mmse_fir_interpolator_cc.cc
index 8057e1d3ce..9766cb93a3 100644
--- a/gr-filter/lib/qa_mmse_fir_interpolator_cc.cc
+++ b/gr-filter/lib/qa_mmse_fir_interpolator_cc.cc
@@ -36,7 +36,7 @@
namespace gr {
namespace filter {
-
+
static float
test_fcn_sin(double index)
{
diff --git a/gr-filter/lib/qa_mmse_fir_interpolator_cc.h b/gr-filter/lib/qa_mmse_fir_interpolator_cc.h
index a45965ca27..3ae3c8e4fd 100644
--- a/gr-filter/lib/qa_mmse_fir_interpolator_cc.h
+++ b/gr-filter/lib/qa_mmse_fir_interpolator_cc.h
@@ -28,8 +28,8 @@
namespace gr {
namespace filter {
-
- class qa_mmse_fir_interpolator_cc : public CppUnit::TestCase
+
+ class qa_mmse_fir_interpolator_cc : public CppUnit::TestCase
{
CPPUNIT_TEST_SUITE(qa_mmse_fir_interpolator_cc);
CPPUNIT_TEST(t1);
diff --git a/gr-filter/lib/qa_mmse_fir_interpolator_ff.cc b/gr-filter/lib/qa_mmse_fir_interpolator_ff.cc
index b2e3d34502..e9ee937230 100644
--- a/gr-filter/lib/qa_mmse_fir_interpolator_ff.cc
+++ b/gr-filter/lib/qa_mmse_fir_interpolator_ff.cc
@@ -34,7 +34,7 @@
namespace gr {
namespace filter {
-
+
static float
test_fcn(double index)
{
diff --git a/gr-filter/lib/qa_mmse_fir_interpolator_ff.h b/gr-filter/lib/qa_mmse_fir_interpolator_ff.h
index 833ec173ac..609c6a2daf 100644
--- a/gr-filter/lib/qa_mmse_fir_interpolator_ff.h
+++ b/gr-filter/lib/qa_mmse_fir_interpolator_ff.h
@@ -28,7 +28,7 @@
namespace gr {
namespace filter {
-
+
class qa_mmse_fir_interpolator_ff : public CppUnit::TestCase
{
CPPUNIT_TEST_SUITE(qa_mmse_fir_interpolator_ff);
diff --git a/gr-filter/lib/rational_resampler_base_XXX_impl.cc.t b/gr-filter/lib/rational_resampler_base_XXX_impl.cc.t
index 755b267517..ef98af3037 100644
--- a/gr-filter/lib/rational_resampler_base_XXX_impl.cc.t
+++ b/gr-filter/lib/rational_resampler_base_XXX_impl.cc.t
@@ -33,7 +33,7 @@
namespace gr {
namespace filter {
-
+
@BASE_NAME@::sptr
@BASE_NAME@::make(unsigned interpolation,
unsigned decimation,
diff --git a/gr-filter/lib/single_pole_iir_filter_cc_impl.cc b/gr-filter/lib/single_pole_iir_filter_cc_impl.cc
index ecfe8f05ee..1bab177531 100644
--- a/gr-filter/lib/single_pole_iir_filter_cc_impl.cc
+++ b/gr-filter/lib/single_pole_iir_filter_cc_impl.cc
@@ -30,7 +30,7 @@
namespace gr {
namespace filter {
-
+
single_pole_iir_filter_cc::sptr
single_pole_iir_filter_cc::make(double alpha, unsigned int vlen)
{
diff --git a/gr-filter/lib/single_pole_iir_filter_ff_impl.cc b/gr-filter/lib/single_pole_iir_filter_ff_impl.cc
index 23d9814eb4..d948afbc14 100644
--- a/gr-filter/lib/single_pole_iir_filter_ff_impl.cc
+++ b/gr-filter/lib/single_pole_iir_filter_ff_impl.cc
@@ -29,7 +29,7 @@
namespace gr {
namespace filter {
-
+
single_pole_iir_filter_ff::sptr
single_pole_iir_filter_ff::make(double alpha, unsigned int vlen)
{
diff --git a/gr-filter/python/filter/CMakeLists.txt b/gr-filter/python/filter/CMakeLists.txt
index c708f0a7d8..1dd055abaf 100644
--- a/gr-filter/python/filter/CMakeLists.txt
+++ b/gr-filter/python/filter/CMakeLists.txt
@@ -36,13 +36,13 @@ GR_PYTHON_INSTALL(
# Handle the unit tests
########################################################################
if(ENABLE_TESTING)
-
+
set(GR_TEST_TARGET_DEPS "")
set(GR_TEST_LIBRARY_DIRS "")
set(GR_TEST_PYTHON_DIRS
${CMAKE_BINARY_DIR}/gnuradio-runtime/python
)
-
+
include(GrTest)
file(GLOB py_qa_test_files "qa_*.py")
foreach(py_qa_test_file ${py_qa_test_files})
diff --git a/gr-filter/python/filter/design/api_object.py b/gr-filter/python/filter/design/api_object.py
index 8e3687d37e..7661265c75 100644
--- a/gr-filter/python/filter/design/api_object.py
+++ b/gr-filter/python/filter/design/api_object.py
@@ -21,12 +21,12 @@
class ApiObject():
'''
Filter count variable if the filter design tool has to
- return multiple filter paramters in future
+ return multiple filter paramters in future
e.g Cascaded Filters
'''
def __init__(self, filtcount = 1):
self.filtercount = filtcount
- self.restype = [''] * self.filtercount
+ self.restype = [''] * self.filtercount
self.params = [''] * self.filtercount
self.taps = [''] * self.filtercount
@@ -42,38 +42,38 @@ class ApiObject():
'''
def update_filttype(self, filttype, filtno):
if (filtno <= self.filtercount):
- self.filttype[filtno - 1] = filttype
+ self.filttype[filtno - 1] = filttype
'''
- updates taps for the given filter number. taps will
+ updates taps for the given filter number. taps will
contain a list of coefficients in the case of fir design
- and (b,a) tuple in the case of iir design
+ and (b,a) tuple in the case of iir design
'''
def update_taps(self, taps, filtno):
if (filtno <= self.filtercount):
- self.taps[filtno - 1] = taps
+ self.taps[filtno - 1] = taps
'''
- updates all of them in a single call
+ updates all of them in a single call
'''
def update_all(self, filttype, params, taps, filtno):
if (filtno <= self.filtercount):
- self.taps[filtno - 1] = taps
+ self.taps[filtno - 1] = taps
self.params[filtno - 1] = params
- self.restype[filtno - 1] = filttype
+ self.restype[filtno - 1] = filttype
def get_filtercount(self):
return self.filtercount
-
+
def get_restype(self, filtno=1):
if (filtno <= self.filtercount):
return self.restype[filtno - 1]
-
+
def get_params(self, filtno=1):
if (filtno <= self.filtercount):
return self.params[filtno - 1]
-
+
def get_taps(self, filtno=1):
if (filtno <= self.filtercount):
return self.taps[filtno - 1]
diff --git a/gr-filter/python/filter/design/filter_design.py b/gr-filter/python/filter/design/filter_design.py
index 748a435c63..fe90681e34 100644
--- a/gr-filter/python/filter/design/filter_design.py
+++ b/gr-filter/python/filter/design/filter_design.py
@@ -49,31 +49,31 @@ except ImportError:
raise SystemExit, 1
try:
- from gnuradio.filter.banditems import *
+ from gnuradio.filter.banditems import *
except ImportError:
print "Could not import from banditems. Please check whether banditems.py is in the library path"
raise SystemExit, 1
try:
- from gnuradio.filter.polezero_plot import *
+ from gnuradio.filter.polezero_plot import *
except ImportError:
print "Could not import from polezero_plot. Please check whether polezero_plot.py is in the library path"
raise SystemExit, 1
try:
- from gnuradio.filter.idealbanditems import *
+ from gnuradio.filter.idealbanditems import *
except ImportError:
print "Could not import from idealbanditems. Please check whether idealbanditems.py is in the library path"
raise SystemExit, 1
try:
- from gnuradio.filter.api_object import *
+ from gnuradio.filter.api_object import *
except ImportError:
print "Could not import from api_object. Please check whether api_object.py is in the library path"
raise SystemExit, 1
try:
- from gnuradio.filter.fir_design import *
+ from gnuradio.filter.fir_design import *
except ImportError:
print "Could not import from fir_design. Please check whether fir_design.py is in the library path"
raise SystemExit, 1
@@ -91,8 +91,8 @@ class gr_plot_filter(QtGui.QMainWindow):
self.gui = Ui_MainWindow()
self.callback = callback
self.gui.setupUi(self)
-
- #Remove other filter combobox entry if
+
+ #Remove other filter combobox entry if
#some restriction is specified
if restype == "iir":
ind = self.gui.fselectComboBox.findText("FIR")
@@ -142,7 +142,7 @@ class gr_plot_filter(QtGui.QMainWindow):
self.connect(self.gui.actionQuick_Access,
Qt.SIGNAL("activated()"),
self.action_quick_access)
-
+
self.connect(self.gui.actionSpec_Widget,
Qt.SIGNAL("activated()"),
self.action_spec_widget)
@@ -166,7 +166,7 @@ class gr_plot_filter(QtGui.QMainWindow):
self.connect(self.gui.actionPhase_Respone,
Qt.SIGNAL("activated()"),
self.set_actphase)
-
+
self.connect(self.gui.actionGroup_Delay,
Qt.SIGNAL("activated()"),
self.set_actgdelay)
@@ -186,7 +186,7 @@ class gr_plot_filter(QtGui.QMainWindow):
self.connect(self.gui.actionPole_Zero_Plot_2,
Qt.SIGNAL("activated()"),
self.set_actpzplot)
-
+
self.connect(self.gui.actionGridview,
Qt.SIGNAL("activated()"),
self.set_switchview)
@@ -194,7 +194,7 @@ class gr_plot_filter(QtGui.QMainWindow):
self.connect(self.gui.actionPlot_select,
Qt.SIGNAL("activated()"),
self.set_plotselect)
-
+
self.connect(self.gui.actionPhase_Delay,
Qt.SIGNAL("activated()"),
self.set_actpdelay)
@@ -282,7 +282,7 @@ class gr_plot_filter(QtGui.QMainWindow):
self.connect(self.gui.checkMagres,
Qt.SIGNAL("stateChanged(int)"),
self.set_magresponse)
-
+
self.connect(self.gui.checkGdelay,
Qt.SIGNAL("stateChanged(int)"),
self.set_gdelay)
@@ -298,7 +298,7 @@ class gr_plot_filter(QtGui.QMainWindow):
self.connect(self.gui.checkBand,
Qt.SIGNAL("stateChanged(int)"),
self.set_band)
-
+
self.connect(self.gui.checkPzplot,
Qt.SIGNAL("stateChanged(int)"),
self.set_pzplot)
@@ -314,11 +314,11 @@ class gr_plot_filter(QtGui.QMainWindow):
self.connect(self.gui.checkStep,
Qt.SIGNAL("stateChanged(int)"),
self.set_stepres)
-
+
self.gridenable = False
self.mfoverlay = False
self.mtoverlay = False
- self.iir = False
+ self.iir = False
self.gui.designButton.setShortcut(QtCore.Qt.Key_Return)
@@ -402,7 +402,7 @@ class gr_plot_filter(QtGui.QMainWindow):
mtxtitle)
self.gui.mtimePlot.setAxisTitle(self.gui.freqPlot.yLeft,
mtytitle)
-
+
phytitle = Qwt.QwtText("Phase Delay")
phytitle.setFont(Qt.QFont("Helvetica", 11, Qt.QFont.Bold))
self.gui.pdelayPlot.setAxisTitle(self.gui.groupPlot.xBottom,
@@ -433,7 +433,7 @@ class gr_plot_filter(QtGui.QMainWindow):
self.steprescurve = Qwt.QwtPlotCurve("Step Response")
self.steprescurve.attach(self.gui.stepresPlot)
-
+
self.steprescurve_i = Qwt.QwtPlotCurve("Step Response Imag")
self.steprescurve_i.attach(self.gui.stepresPlot)
@@ -496,14 +496,14 @@ class gr_plot_filter(QtGui.QMainWindow):
Qwt.QwtPicker.PointSelection,
Qwt.QwtPicker.AlwaysOn,
self.gui.freqPlot.canvas())
-
+
self.mfreqZoomer = Qwt.QwtPlotZoomer(self.gui.mfreqPlot.xBottom,
self.gui.mfreqPlot.yLeft,
Qwt.QwtPicker.PointSelection,
Qwt.QwtPicker.AlwaysOn,
self.gui.mfreqPlot.canvas())
-
+
self.mfreqZoomer2 = Qwt.QwtPlotZoomer(self.gui.mfreqPlot.xBottom,
self.gui.mfreqPlot.yRight,
Qwt.QwtPicker.PointSelection,
@@ -546,7 +546,7 @@ class gr_plot_filter(QtGui.QMainWindow):
self.hpfitems = hpfItems
self.bpfitems = bpfItems
self.bnfitems = bnfItems
-
+
#Connect signals
self.lpfitems[0].attenChanged.connect(self.set_fatten)
@@ -567,7 +567,7 @@ class gr_plot_filter(QtGui.QMainWindow):
self.cpicker = CanvasPicker(self.gui.pzPlot)
self.cpicker.curveChanged.connect(self.set_curvetaps)
self.cpicker.mouseposChanged.connect(self.set_statusbar)
-
+
self.cpicker2 = CanvasPicker(self.gui.mpzPlot)
self.cpicker2.curveChanged.connect(self.set_mcurvetaps)
self.cpicker2.mouseposChanged.connect(self.set_mstatusbar)
@@ -579,7 +579,7 @@ class gr_plot_filter(QtGui.QMainWindow):
self.lpfstartproxy=QtGui.QGraphicsProxyWidget()
self.lpfstartproxy.setWidget(self.lpfpassEdit)
self.lpfstartproxy.setPos(400,30)
-
+
self.lpfstopEdit=QtGui.QLineEdit()
self.lpfstopEdit.setMaximumSize(QtCore.QSize(75,20))
self.lpfstopEdit.setText(Qt.QString("Not set"))
@@ -876,7 +876,7 @@ class gr_plot_filter(QtGui.QMainWindow):
# Do FIR design
def design_fir(self, ftype, fs, gain, winstr):
- self.iir = False
+ self.iir = False
self.cpicker.set_iir(False)
self.cpicker2.set_iir(False)
if(winstr == "Equiripple"):
@@ -938,7 +938,7 @@ class gr_plot_filter(QtGui.QMainWindow):
iirft = {"Elliptic" : 'ellip',
"Butterworth" : 'butter',
"Chebyshev-1" : 'cheby1',
- "Chebyshev-2" : 'cheby2',
+ "Chebyshev-2" : 'cheby2',
"Bessel" : 'bessel' }
sanalog = {"Analog (rad/second)" : 1,
@@ -977,8 +977,8 @@ class gr_plot_filter(QtGui.QMainWindow):
self.gui.iirBsfStopBandRippleEdit.text().toDouble()] }
#Remove Ideal band-diagrams if IIR
self.set_drawideal()
- for i in range(len(iirboxes[iirbtype])):
- params.append(iirboxes[iirbtype][i][0])
+ for i in range(len(iirboxes[iirbtype])):
+ params.append(iirboxes[iirbtype][i][0])
ret = iirboxes[iirbtype][i][1] and ret
if len(iirboxes[iirbtype]) == 6:
@@ -1019,7 +1019,7 @@ class gr_plot_filter(QtGui.QMainWindow):
e.args[0], "&Ok")
(self.z,self.p,self.k) = signal.tf2zpk(self.b,self.a)
#Create params
- iirparams = { "filttype": iirft[iirftype], "bandtype": iirabbr[iirbtype],"paramtype":paramtype[sanalog[atype]],
+ iirparams = { "filttype": iirft[iirftype], "bandtype": iirabbr[iirbtype],"paramtype":paramtype[sanalog[atype]],
"pbedge": params[0], "sbedge": params[1],"gpass": params[2],
"gstop": params[3]}
self.gui.pzPlot.insertZeros(self.z)
@@ -1036,12 +1036,12 @@ class gr_plot_filter(QtGui.QMainWindow):
retobj.update_all("iir", self.params, (self.b, self.a), 1)
self.callback(retobj)
- # IIR Filter design plot updates
+ # IIR Filter design plot updates
def iir_plot_all(self,z,p,k):
self.b,self.a = signal.zpk2tf(z,p,k)
w,h = signal.freqz(self.b,self.a)
self.fftdB = 20 * scipy.log10 (abs(h))
- self.freq = w/max(w)
+ self.freq = w/max(w)
self.fftDeg = scipy.unwrap(scipy.arctan2(imag(h),real(h)))
self.groupDelay = -scipy.diff(self.fftDeg)
self.phaseDelay = -self.fftDeg[1:]/self.freq[1:]
@@ -1289,7 +1289,7 @@ class gr_plot_filter(QtGui.QMainWindow):
xmin, xmax)
self.gui.phasePlot.setAxisScale(self.gui.phasePlot.yLeft,
ymin, ymax)
-
+
if self.mfoverlay:
self.gui.mfreqPlot.setAxisScale(self.gui.mfreqPlot.xBottom,
xmin, xmax)
@@ -1304,7 +1304,7 @@ class gr_plot_filter(QtGui.QMainWindow):
xmin, xmax)
self.gui.mfreqPlot.setAxisScale(self.gui.mfreqPlot.yLeft,
ymin, ymax)
-
+
#Set Axis title
self.gui.mfreqPlot.setAxisTitle(self.phasecurve.yAxis(),
pytitle)
@@ -1355,7 +1355,7 @@ class gr_plot_filter(QtGui.QMainWindow):
xmin, xmax)
self.gui.mfreqPlot.setAxisScale(self.gui.mfreqPlot.yLeft,
ymin, ymax)
-
+
#Set Axis title
self.gui.mfreqPlot.setAxisTitle(self.groupcurve.yAxis(),
gytitle)
@@ -1407,7 +1407,7 @@ class gr_plot_filter(QtGui.QMainWindow):
#Set Axis title
self.gui.mfreqPlot.setAxisTitle(self.pdelaycurve.yAxis(),
phytitle)
-
+
# Set the zoomer base to unzoom to the new axis
self.pdelayZoomer.setZoomBase()
self.mfreqZoomer.setZoomBase()
@@ -1452,30 +1452,30 @@ class gr_plot_filter(QtGui.QMainWindow):
self.bufferplots = []
else:
self.bufferplots = []
- #Iterate through tabgroup children and copy curves
+ #Iterate through tabgroup children and copy curves
for i in range(self.gui.tabGroup.count()):
page = self.gui.tabGroup.widget(i)
for item in page.children():
if isinstance(item, Qwt.QwtPlot):
- #Change colours as both plots overlay
+ #Change colours as both plots overlay
colours = [QtCore.Qt.darkYellow,QtCore.Qt.black]
for c in item.itemList():
if isinstance(c, Qwt.QwtPlotCurve):
- dup = Qwt.QwtPlotCurve()
- dpen = c.pen()
- dsym = c.symbol()
- dsym.setPen(Qt.QPen(colours[0]))
- dsym.setSize(Qt.QSize(6, 6))
- dpen.setColor(colours[0])
- del colours[0]
- dup.setPen(dpen)
- dup.setSymbol(dsym)
+ dup = Qwt.QwtPlotCurve()
+ dpen = c.pen()
+ dsym = c.symbol()
+ dsym.setPen(Qt.QPen(colours[0]))
+ dsym.setSize(Qt.QSize(6, 6))
+ dpen.setColor(colours[0])
+ del colours[0]
+ dup.setPen(dpen)
+ dup.setSymbol(dsym)
dup.setRenderHint(Qwt.QwtPlotItem.RenderAntialiased)
dup.setData([c.x(i) for i in range(c.dataSize())],
[c.y(i) for i in range(c.dataSize())])
- self.bufferplots.append(dup)
- self.bufferplots[-1].attach(item)
-
+ self.bufferplots.append(dup)
+ self.bufferplots[-1].attach(item)
+
def set_grid(self):
if (self.gui.checkGrid.checkState() == 0 ):
self.gridenable=False
@@ -1497,7 +1497,7 @@ class gr_plot_filter(QtGui.QMainWindow):
self.pdelaygrid.attach(self.gui.pdelayPlot)
self.ftapsgrid.attach(self.gui.timePlot)
self.replot_all()
-
+
def set_actgrid(self):
if (self.gui.actionGrid_2.isChecked() == 0 ):
self.gridenable=False
@@ -1528,7 +1528,7 @@ class gr_plot_filter(QtGui.QMainWindow):
self.magres=True
self.gui.tabGroup.addTab(self.gui.freqTab, _fromUtf8("Magnitude Response"))
self.update_freq_curves()
-
+
def set_actmagresponse(self):
if (self.gui.actionMagnitude_Response.isChecked() == 0 ):
self.gui.tabGroup.removeTab(self.gui.tabGroup.indexOf(self.gui.freqTab))
@@ -1566,7 +1566,7 @@ class gr_plot_filter(QtGui.QMainWindow):
self.update_freq_curves()
self.update_time_curves()
self.set_drawideal()
-
+
def set_plotselect(self):
if (self.gui.actionPlot_select.isChecked() == 0 ):
self.gui.mfgroupBox.hide()
@@ -1598,7 +1598,7 @@ class gr_plot_filter(QtGui.QMainWindow):
self.impresgrid.detach()
self.stepresgrid.detach()
self.ftapsgrid.detach()
-
+
def set_mfmagresponse(self):
if self.mfoverlay:
if not(self.ifinlist(self.freqcurve,self.gui.mfreqPlot.itemList())):
@@ -1647,7 +1647,7 @@ class gr_plot_filter(QtGui.QMainWindow):
self.groupcurve.setYAxis(Qwt.QwtPlot.yLeft)
self.groupcurve.attach(self.gui.mfreqPlot)
self.update_group_curves()
-
+
def set_mfphasedelay(self):
if self.mfoverlay:
if not(self.ifinlist(self.pdelaycurve,self.gui.mfreqPlot.itemList())):
@@ -1689,8 +1689,8 @@ class gr_plot_filter(QtGui.QMainWindow):
if plot is self.gui.mfreqPlot:
items[1].setPen(QtGui.QPen(QtCore.Qt.red, 1, QtCore.Qt.SolidLine))
self.set_actgrid()
-
-
+
+
def update_fft(self, taps, params):
self.params = params
self.taps = scipy.array(taps)
@@ -1775,7 +1775,7 @@ class gr_plot_filter(QtGui.QMainWindow):
else:
self.gui.tabGroup.addTab(self.gui.groupTab, _fromUtf8("Group Delay"))
self.update_freq_curves()
-
+
def set_actgdelay(self):
if (self.gui.actionGroup_Delay.isChecked() == 0 ):
self.gui.tabGroup.removeTab(self.gui.tabGroup.indexOf(self.gui.groupTab))
@@ -1829,7 +1829,7 @@ class gr_plot_filter(QtGui.QMainWindow):
plot = self.gui.mfreqPlot
else:
plot = self.gui.freqPlot
-
+
if (self.gui.actionIdeal_Band.isChecked() == 0 or fsel == "IIR(scipy)"):
self.idbanditems.detach_allidealcurves(plot)
elif(self.params):
@@ -1892,7 +1892,7 @@ class gr_plot_filter(QtGui.QMainWindow):
self.scene.addWidget(item)
else:
self.scene.addItem(item)
-
+
def remove_bandview(self):
for item in self.scene.items():
self.scene.removeItem(item)
@@ -1902,7 +1902,7 @@ class gr_plot_filter(QtGui.QMainWindow):
if (ftype == "Low Pass"):
boxatten,r = self.gui.lpfStopBandAttenEdit.text().toDouble()
self.gui.lpfStopBandAttenEdit.setText(Qt.QString(str(atten+boxatten)))
-
+
if ftype == "High Pass":
boxatten,r = self.gui.hpfStopBandAttenEdit.text().toDouble()
self.gui.hpfStopBandAttenEdit.setText(Qt.QString(str(atten+boxatten)))
@@ -1921,7 +1921,7 @@ class gr_plot_filter(QtGui.QMainWindow):
#self.design()
def set_curvetaps(self,(zr,pl)):
- if self.iir:
+ if self.iir:
self.z=zr
self.p=pl
self.iir_plot_all(self.z,self.p,self.k)
@@ -1932,7 +1932,7 @@ class gr_plot_filter(QtGui.QMainWindow):
retobj = ApiObject()
retobj.update_all("iir", self.params, (self.b, self.a), 1)
self.callback(retobj)
- else:
+ else:
hz = poly1d(zr,r=1)
#print hz.c
self.taps=hz.c*self.taps[0]
@@ -1950,7 +1950,7 @@ class gr_plot_filter(QtGui.QMainWindow):
self.callback(retobj)
def set_mcurvetaps(self,(zr,pl)):
- if self.iir:
+ if self.iir:
self.z=zr
self.p=pl
self.iir_plot_all(self.z,self.p,self.k)
@@ -1961,7 +1961,7 @@ class gr_plot_filter(QtGui.QMainWindow):
retobj = ApiObject()
retobj.update_all("iir", self.params, (self.b, self.a), 1)
self.callback(retobj)
- else:
+ else:
hz = poly1d(zr,r=1)
#print hz.c
self.taps=hz.c*self.taps[0]
@@ -1998,7 +1998,7 @@ class gr_plot_filter(QtGui.QMainWindow):
def get_zeros(self):
hz = poly1d(self.taps,r=0)
return hz.r
-
+
def get_poles(self):
if len(self.taps):
hp = zeros(len(self.taps)-1,complex)
@@ -2047,7 +2047,7 @@ class gr_plot_filter(QtGui.QMainWindow):
return
csvhandle = csv.writer(handle, delimiter=",")
- #indicate fir/iir for easy reading
+ #indicate fir/iir for easy reading
if self.iir:
csvhandle.writerow(["restype","iir"])
else:
@@ -2105,7 +2105,7 @@ class gr_plot_filter(QtGui.QMainWindow):
params[row[0]] = row[1]
handle.close()
if restype == "fir":
- self.iir = False
+ self.iir = False
self.gui.fselectComboBox.setCurrentIndex(0)
self.draw_plots(taps, params)
zeros=self.get_zeros()
@@ -2192,8 +2192,8 @@ class gr_plot_filter(QtGui.QMainWindow):
self.iir_plot_all(self.z,self.p,self.k)
self.update_fcoeff()
self.gui.nTapsEdit.setText("-")
- self.params = params
-
+ self.params = params
+
#Set GUI for IIR type
iirft = { "ellip" : 0,
"butter" : 1,
@@ -2204,9 +2204,9 @@ class gr_plot_filter(QtGui.QMainWindow):
paramtype = { "analog" : 1,
"digital" : 0 }
bandpos = {
- "lpf" : 0,
+ "lpf" : 0,
"bpf" : 1,
- "bnf" : 2,
+ "bnf" : 2,
"hpf" : 3}
iirboxes = {"lpf" : [self.gui.iirendofLpfPassBandEdit,
@@ -2248,7 +2248,7 @@ class gr_plot_filter(QtGui.QMainWindow):
else:
pbedge = map(float, params["pbedge"][1:-1].split(','))
sbedge = map(float, params["sbedge"][1:-1].split(','))
- sdata = [pbedge[0], pbedge[1], sbedge[0],
+ sdata = [pbedge[0], pbedge[1], sbedge[0],
sbedge[1], params["gpass"], params["gstop"]]
cboxes = iirboxes[params["bandtype"]]
@@ -2290,14 +2290,14 @@ def launch(args, callback=None, restype=""):
if gplt.iir:
retobj = ApiObject()
retobj.update_all("iir", gplt.params, (gplt.b, gplt.a), 1)
- return retobj
+ return retobj
else:
retobj = ApiObject()
retobj.update_all("fir", gplt.params, gplt.taps, 1)
- return retobj
+ return retobj
else:
gplt = gr_plot_filter(options, callback, restype)
- return gplt
+ return gplt
def main(args):
parser = setup_options()
diff --git a/gr-filter/python/filter/design/fir_design.py b/gr-filter/python/filter/design/fir_design.py
index 494cda3723..e27b065781 100644
--- a/gr-filter/python/filter/design/fir_design.py
+++ b/gr-filter/python/filter/design/fir_design.py
@@ -19,7 +19,7 @@
#
import scipy
-from gnuradio import filter
+from gnuradio import filter
from PyQt4 import QtGui
# Filter design functions using a window
diff --git a/gr-filter/python/filter/gui/banditems.py b/gr-filter/python/filter/gui/banditems.py
index 9a6158fcfb..5071fe7b03 100644
--- a/gr-filter/python/filter/gui/banditems.py
+++ b/gr-filter/python/filter/gui/banditems.py
@@ -50,7 +50,7 @@ class filtermovlineItem(QtGui.QGraphicsObject):
def boundingRect(self):
return QtCore.QRectF(0,0,400,400)
- #allow only vertical movement and emit signals
+ #allow only vertical movement and emit signals
def itemChange(self, change, value):
if (change == QtGui.QGraphicsItem.ItemPositionChange):
newpos=value.toPointF()
@@ -182,25 +182,25 @@ bnfItems=[]
#lpfitems list
lpfItems.append(filtermovlineItem(200,175,400,175,0,-60))
#lpfItems.append(filtermovlineItem(200,145,400,145,30,-30))
-lpfItems[0].setFlags(QtGui.QGraphicsItem.ItemIsSelectable | QtGui.QGraphicsItem.ItemIsMovable|
+lpfItems[0].setFlags(QtGui.QGraphicsItem.ItemIsSelectable | QtGui.QGraphicsItem.ItemIsMovable|
QtGui.QGraphicsItem.ItemSendsGeometryChanges)
lpfItems.append(lpfsLines())
#hpfitems list
hpfItems.append(filtermovlineItem(6,175,150,175,0,-60))
-hpfItems[0].setFlags(QtGui.QGraphicsItem.ItemIsSelectable | QtGui.QGraphicsItem.ItemIsMovable|
+hpfItems[0].setFlags(QtGui.QGraphicsItem.ItemIsSelectable | QtGui.QGraphicsItem.ItemIsMovable|
QtGui.QGraphicsItem.ItemSendsGeometryChanges)
hpfItems.append(hpfsLines())
#bpfitems list
bpfItems.append(filtermovlineItem(6,175,110,175,0,-60,True,300,175,400,175))
-bpfItems[0].setFlags(QtGui.QGraphicsItem.ItemIsSelectable | QtGui.QGraphicsItem.ItemIsMovable|
+bpfItems[0].setFlags(QtGui.QGraphicsItem.ItemIsSelectable | QtGui.QGraphicsItem.ItemIsMovable|
QtGui.QGraphicsItem.ItemSendsGeometryChanges)
bpfItems.append(bpfsLines())
#bnfitems list
bnfItems.append(filtermovlineItem(155,175,255,175,0,-60))
-bnfItems[0].setFlags(QtGui.QGraphicsItem.ItemIsSelectable | QtGui.QGraphicsItem.ItemIsMovable|
+bnfItems[0].setFlags(QtGui.QGraphicsItem.ItemIsSelectable | QtGui.QGraphicsItem.ItemIsMovable|
QtGui.QGraphicsItem.ItemSendsGeometryChanges)
bnfItems.append(bnfsLines())
diff --git a/gr-filter/python/filter/gui/idealbanditems.py b/gr-filter/python/filter/gui/idealbanditems.py
index b0c0497e38..ce556577eb 100644
--- a/gr-filter/python/filter/gui/idealbanditems.py
+++ b/gr-filter/python/filter/gui/idealbanditems.py
@@ -42,140 +42,140 @@ class IdealBandItems():
if (ftype == "Low Pass"):
self.detach_unwantedcurves(plot)
x=[0, self.params["pbend"]]
- y=[20.0*scipy.log10(self.params["gain"])]*2
+ y=[20.0*scipy.log10(self.params["gain"])]*2
self.idealbandhcurves[0].setData(x, y)
-
+
x=[self.params["pbend"]]*2
y=[20.0*scipy.log10(self.params["gain"]),
- plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
+ plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
self.idealbandvcurves[0].setData(x, y)
-
+
x=[self.params["sbstart"], self.params["fs"]/2.0]
- y=[-self.params["atten"]]*2
+ y=[-self.params["atten"]]*2
self.idealbandhcurves[1].setData(x, y)
-
+
x=[self.params["sbstart"]]*2
- y=[-self.params["atten"],
- plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
+ y=[-self.params["atten"],
+ plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
self.idealbandvcurves[1].setData(x, y)
elif ftype == "High Pass":
self.detach_unwantedcurves(plot)
x=[self.params["pbstart"],self.params["fs"]/2.0]
- y=[20.0*scipy.log10(self.params["gain"])]*2
+ y=[20.0*scipy.log10(self.params["gain"])]*2
self.idealbandhcurves[0].setData(x, y)
-
+
x=[self.params["pbstart"]]*2
y=[20.0*scipy.log10(self.params["gain"]),
- plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
+ plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
self.idealbandvcurves[0].setData(x, y)
-
+
x=[0,self.params["sbend"]]
- y=[-self.params["atten"]]*2
+ y=[-self.params["atten"]]*2
self.idealbandhcurves[1].setData(x, y)
-
+
x=[self.params["sbend"]]*2
- y=[-self.params["atten"],
- plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
+ y=[-self.params["atten"],
+ plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
self.idealbandvcurves[1].setData(x, y)
elif ftype == "Band Notch":
x=[self.params["sbstart"],self.params["sbend"]]
- y=[-self.params["atten"]]*2
+ y=[-self.params["atten"]]*2
self.idealbandhcurves[0].setData(x, y)
-
+
x=[self.params["sbstart"]]*2
- y=[-self.params["atten"],
- plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
+ y=[-self.params["atten"],
+ plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
self.idealbandvcurves[0].setData(x, y)
-
+
x=[self.params["sbend"]]*2
- y=[-self.params["atten"],
- plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
+ y=[-self.params["atten"],
+ plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
self.idealbandvcurves[1].setData(x, y)
x=[0,self.params["sbstart"]-self.params["tb"]]
- y=[20.0*scipy.log10(self.params["gain"])]*2
+ y=[20.0*scipy.log10(self.params["gain"])]*2
self.idealbandhcurves[1].setData(x, y)
-
+
x=[self.params["sbstart"]-self.params["tb"]]*2
y=[20.0*scipy.log10(self.params["gain"]),
- plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
+ plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
self.idealbandvcurves[2].setData(x, y)
x=[self.params["sbend"]+self.params["tb"],self.params["fs"]/2.0]
- y=[20.0*scipy.log10(self.params["gain"])]*2
+ y=[20.0*scipy.log10(self.params["gain"])]*2
self.idealbandhcurves[2].setData(x, y)
-
+
x=[self.params["sbend"]+self.params["tb"]]*2
y=[20.0*scipy.log10(self.params["gain"]),
- plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
+ plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
self.idealbandvcurves[3].setData(x, y)
elif ftype == "Band Pass":
x=[self.params["pbstart"],self.params["pbend"]]
- y=[20.0*scipy.log10(self.params["gain"])]*2
+ y=[20.0*scipy.log10(self.params["gain"])]*2
self.idealbandhcurves[0].setData(x, y)
-
+
x=[self.params["pbstart"]]*2
y=[20.0*scipy.log10(self.params["gain"]),
- plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
+ plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
self.idealbandvcurves[0].setData(x, y)
-
+
x=[self.params["pbend"]]*2
y=[20.0*scipy.log10(self.params["gain"]),
- plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
+ plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
self.idealbandvcurves[1].setData(x, y)
x=[0,self.params["pbstart"]-self.params["tb"]]
- y=[-self.params["atten"]]*2
+ y=[-self.params["atten"]]*2
self.idealbandhcurves[1].setData(x, y)
-
+
x=[self.params["pbstart"]-self.params["tb"]]*2
- y=[-self.params["atten"],
- plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
+ y=[-self.params["atten"],
+ plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
self.idealbandvcurves[2].setData(x, y)
x=[self.params["pbend"]+self.params["tb"],self.params["fs"]/2.0]
- y=[-self.params["atten"]]*2
+ y=[-self.params["atten"]]*2
self.idealbandhcurves[2].setData(x, y)
-
+
x=[self.params["pbend"]+self.params["tb"]]*2
- y=[-self.params["atten"],
- plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
+ y=[-self.params["atten"],
+ plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
self.idealbandvcurves[3].setData(x, y)
elif ftype == "Complex Band Pass":
x=[self.params["pbstart"],self.params["pbend"]]
- y=[20.0*scipy.log10(self.params["gain"])]*2
+ y=[20.0*scipy.log10(self.params["gain"])]*2
self.idealbandhcurves[0].setData(x, y)
-
+
x=[self.params["pbstart"]]*2
y=[20.0*scipy.log10(self.params["gain"]),
- plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
+ plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
self.idealbandvcurves[0].setData(x, y)
-
+
x=[self.params["pbend"]]*2
y=[20.0*scipy.log10(self.params["gain"]),
- plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
+ plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
self.idealbandvcurves[1].setData(x, y)
x=[0,self.params["pbstart"]-self.params["tb"]]
- y=[-self.params["atten"]]*2
+ y=[-self.params["atten"]]*2
self.idealbandhcurves[1].setData(x, y)
-
+
x=[self.params["pbstart"]-self.params["tb"]]*2
- y=[-self.params["atten"],
- plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
+ y=[-self.params["atten"],
+ plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
self.idealbandvcurves[2].setData(x, y)
x=[self.params["pbend"]+self.params["tb"],self.params["fs"]/2.0]
- y=[-self.params["atten"]]*2
+ y=[-self.params["atten"]]*2
self.idealbandhcurves[2].setData(x, y)
-
+
x=[self.params["pbend"]+self.params["tb"]]*2
- y=[-self.params["atten"],
- plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
+ y=[-self.params["atten"],
+ plot.axisScaleDiv(Qwt.QwtPlot.yLeft).lowerBound()]
self.idealbandvcurves[3].setData(x, y)
else:
self.detach_allidealcurves(plot)
@@ -183,7 +183,7 @@ class IdealBandItems():
except KeyError:
print "All parameters not set for ideal band diagram"
self.detach_allidealcurves(plot)
-
+
def detach_allidealcurves(self, plot):
for c in self.idealbandhcurves:
c.detach()
diff --git a/gr-filter/python/filter/gui/polezero_plot.py b/gr-filter/python/filter/gui/polezero_plot.py
index 0115339e5e..839af0400d 100644
--- a/gr-filter/python/filter/gui/polezero_plot.py
+++ b/gr-filter/python/filter/gui/polezero_plot.py
@@ -29,7 +29,7 @@ class PzPlot(Qwt.QwtPlot):
def __init__(self, *args):
Qwt.QwtPlot.__init__(self, *args)
-
+
self.ymax=0
self.xmax=0
self.ymin=0
@@ -39,11 +39,11 @@ class PzPlot(Qwt.QwtPlot):
grid = Qwt.QwtPlotGrid()
grid.attach(self)
grid.setMajPen(Qt.QPen(Qt.Qt.white, 0, Qt.Qt.DotLine))
-
+
self.setAxisScale(Qwt.QwtPlot.xBottom, -3, 3)
self.setAxisScale(Qwt.QwtPlot.yLeft, -2, 2)
self.drawUnitcircle()
-
+
def setCanvasColor(self, color):
@@ -52,7 +52,7 @@ class PzPlot(Qwt.QwtPlot):
def drawUnitcircle(self):
- radius = 1.0
+ radius = 1.0
steps = 1024
angleStep = 2 * pi / steps
@@ -97,7 +97,7 @@ class PzPlot(Qwt.QwtPlot):
xmax = max(xmax,self.xmax)
xmin = min(roots.real)
xmin = min(xmin,self.xmin)
-
+
#To make the plot look good
if xmax <= 1.3:
xmax = 2
@@ -165,23 +165,23 @@ class CanvasPicker(Qt.QObject):
self.__selectedcPoint = -1
self.__addedZero = -1
self.__addedcZero = -1
- self.changeConjugate = False
- self.enableZeroadd= False
- self.enablePoleadd= False
- self.enablepzDelete= False
- self.iir = False
+ self.changeConjugate = False
+ self.enableZeroadd= False
+ self.enablePoleadd= False
+ self.enablepzDelete= False
+ self.iir = False
self.__plot = plot
canvas = plot.canvas()
canvas.installEventFilter(self)
-
+
# We want the focus, but no focus rect.
# The selected point will be highlighted instead.
canvas.setFocusPolicy(Qt.Qt.StrongFocus)
canvas.setCursor(Qt.Qt.PointingHandCursor)
canvas.setFocusIndicator(Qwt.QwtPlotCanvas.ItemFocusIndicator)
canvas.setFocus()
-
+
canvas.setWhatsThis(
'All points can be moved using the left mouse button '
'or with these keys:\n\n'
@@ -208,15 +208,15 @@ class CanvasPicker(Qt.QObject):
def set_conjugate(self):
self.changeConjugate = not(self.changeConjugate)
-
+
def set_iir(self,val=True):
- self.iir = val
-
+ self.iir = val
+
def add_zero(self):
self.enableZeroadd = not(self.enableZeroadd)
def add_pole(self):
- #Adding pole support only for iir
+ #Adding pole support only for iir
if self.iir:
self.enablePoleadd = not(self.enablePoleadd)
@@ -224,12 +224,12 @@ class CanvasPicker(Qt.QObject):
self.enablepzDelete = not(self.enablepzDelete)
def eventFilter(self, object, event):
-
+
if event.type() == Qt.QEvent.FocusIn:
self.__showCursor(True)
if event.type() == Qt.QEvent.FocusOut:
self.__showCursor(False)
-
+
if event.type() == Qt.QEvent.Paint:
Qt.QApplication.postEvent(
self, Qt.QEvent(Qt.QEvent.User))
@@ -286,13 +286,13 @@ class CanvasPicker(Qt.QObject):
self.__moveBy(0, -delta)
elif key == Qt.Qt.Key_9:
self.__moveBy(delta, -delta)
-
+
return Qwt.QwtPlot.eventFilter(self, object, event)
def __select(self, pos):
found, distance, point = None, 1e100, -1
-
+
for curve in self.__plot.itemList():
if isinstance(curve, Qwt.QwtPlotCurve):
if curve.symbol().style() != Qwt.QwtSymbol.NoSymbol:
@@ -310,7 +310,7 @@ class CanvasPicker(Qt.QObject):
if found and distance < 10:
self.__selectedCurve = found
self.__selectedPoint = point
- #search for conjugate point if enabled
+ #search for conjugate point if enabled
if self.changeConjugate:
j=self.__searchConjugate(found.x(point),found.y(point))
self.__selectedcPoint = j
@@ -334,10 +334,10 @@ class CanvasPicker(Qt.QObject):
xData=delete(xData, self.__selectedPoint)
yData=delete(yData, self.__selectedPoint)
#one less to accomodate previous delete
- if(self.__selectedcPoint != -1):
+ if(self.__selectedcPoint != -1):
xData=delete(xData, self.__selectedcPoint-1)
yData=delete(yData, self.__selectedcPoint-1)
-
+
curve.setData(xData, yData)
self.__plot.replot()
px=[]
@@ -382,7 +382,7 @@ class CanvasPicker(Qt.QObject):
if i == self.__selectedPoint:
xData[i] = self.__plot.invTransform(curve.xAxis(), pos.x())
yData[i] = self.__plot.invTransform(curve.yAxis(), pos.y())
- if(self.__selectedcPoint != -1):
+ if(self.__selectedcPoint != -1):
xData[self.__selectedcPoint] = xData[i]
yData[self.__selectedcPoint] = -yData[i]
elif i != self.__selectedcPoint:
@@ -406,7 +406,7 @@ class CanvasPicker(Qt.QObject):
if (round(curve.x(i),8) == round(x,8) and round(curve.y(i),8) == -round(y,8)):
if (y !=0):
return i
- return -1
+ return -1
def __drawAddedzero_pole(self, showIt, pos):
editcurve=''
@@ -436,7 +436,7 @@ class CanvasPicker(Qt.QObject):
yData[i+1] = self.__plot.invTransform(editcurve.yAxis(), pos.y())
if self.changeConjugate:
- xData[i+2] = xData[i+1]
+ xData[i+2] = xData[i+1]
yData[i+2] = -yData[i+1]
self.__addedcZero=i+2
@@ -489,7 +489,7 @@ class CanvasPicker(Qt.QObject):
curve.setSymbol(symbol)
self.__plot.setAutoReplot(doReplot)
-
+
def __shiftCurveCursor(self, up):
curves = [curve for curve in self.__plot.itemList()
if isinstance(curve, Qwt.QwtPlotCurve)]
diff --git a/gr-filter/python/filter/gui/pyqt_filter_stacked.ui b/gr-filter/python/filter/gui/pyqt_filter_stacked.ui
index 7aecf62508..4d7336c8ca 100644
--- a/gr-filter/python/filter/gui/pyqt_filter_stacked.ui
+++ b/gr-filter/python/filter/gui/pyqt_filter_stacked.ui
@@ -2060,7 +2060,7 @@
<item row="2" column="0">
<widget class="QLabel" name="firhbtrEditLabel2">
<property name="text">
- <string>Transition width
+ <string>Transition width
(from fs/4)</string>
</property>
</widget>
diff --git a/gr-filter/python/filter/optfir.py b/gr-filter/python/filter/optfir.py
index 47b0ac4e8d..8ef2a06732 100644
--- a/gr-filter/python/filter/optfir.py
+++ b/gr-filter/python/filter/optfir.py
@@ -36,7 +36,7 @@ def low_pass (gain, Fs, freq1, freq2, passband_ripple_db, stopband_atten_db,
nextra_taps=2):
"""
Builds a low pass filter.
-
+
Args:
gain: Filter gain in the passband (linear)
Fs: Sampling rate (sps)
@@ -60,7 +60,7 @@ def band_pass (gain, Fs, freq_sb1, freq_pb1, freq_pb2, freq_sb2,
nextra_taps=2):
"""
Builds a band pass filter.
-
+
Args:
gain: Filter gain in the passband (linear)
Fs: Sampling rate (sps)
@@ -89,7 +89,7 @@ def complex_band_pass (gain, Fs, freq_sb1, freq_pb1, freq_pb2, freq_sb2,
"""
Builds a band pass filter with complex taps by making an LPF and
spinning it up to the right center frequency
-
+
Args:
gain: Filter gain in the passband (linear)
Fs: Sampling rate (sps)
@@ -117,7 +117,7 @@ def band_reject (gain, Fs, freq_pb1, freq_sb1, freq_sb2, freq_pb2,
"""
Builds a band reject filter
spinning it up to the right center frequency
-
+
Args:
gain: Filter gain in the passband (linear)
Fs: Sampling rate (sps)
@@ -148,7 +148,7 @@ def high_pass (gain, Fs, freq1, freq2, passband_ripple_db, stopband_atten_db,
nextra_taps=2):
"""
Builds a high pass filter.
-
+
Args:
gain: Filter gain in the passband (linear)
Fs: Sampling rate (sps)
diff --git a/gr-filter/python/filter/qa_fir_filter.py b/gr-filter/python/filter/qa_fir_filter.py
index 9509ef8284..172d64a8dc 100755
--- a/gr-filter/python/filter/qa_fir_filter.py
+++ b/gr-filter/python/filter/qa_fir_filter.py
@@ -100,7 +100,7 @@ class test_filter(gr_unittest.TestCase):
taps = 20*[0.5+1j, 0.5+1j]
src_data = 40*[1+1j, 2+2j, 3+3j, 4+4j]
expected_data = fir_filter(src_data, taps, decim)
-
+
src = blocks.vector_source_c(src_data)
op = filter.fir_filter_ccc(decim, taps)
dst = blocks.vector_sink_c()
@@ -115,7 +115,7 @@ class test_filter(gr_unittest.TestCase):
taps = filter.firdes.low_pass(1, 1, 0.1, 0.01)
src_data = 10*[1+1j, 2+2j, 3+3j, 4+4j]
expected_data = fir_filter(src_data, taps, decim)
-
+
src = blocks.vector_source_c(src_data)
op = filter.fir_filter_ccc(decim, taps)
dst = blocks.vector_sink_c()
diff --git a/gr-filter/python/filter/qa_fractional_interpolator.py b/gr-filter/python/filter/qa_fractional_interpolator.py
index 42d68886b8..839ff28d8b 100755
--- a/gr-filter/python/filter/qa_fractional_interpolator.py
+++ b/gr-filter/python/filter/qa_fractional_interpolator.py
@@ -55,7 +55,7 @@ class test_fractional_resampler(gr_unittest.TestCase):
snk = blocks.vector_sink_f()
self.tb.connect(signal, op, snk)
- self.tb.run()
+ self.tb.run()
Ntest = 5000
L = len(snk.data())
@@ -81,7 +81,7 @@ class test_fractional_resampler(gr_unittest.TestCase):
snk = blocks.vector_sink_c()
self.tb.connect(signal, op, snk)
- self.tb.run()
+ self.tb.run()
Ntest = 5000
L = len(snk.data())
diff --git a/gr-filter/python/filter/qa_fractional_resampler.py b/gr-filter/python/filter/qa_fractional_resampler.py
index ea01cf7eef..2580b8dd16 100644
--- a/gr-filter/python/filter/qa_fractional_resampler.py
+++ b/gr-filter/python/filter/qa_fractional_resampler.py
@@ -59,7 +59,7 @@ class test_fractional_resampler(gr_unittest.TestCase):
snk = blocks.vector_sink_f()
self.tb.connect(signal, op, snk)
- self.tb.run()
+ self.tb.run()
Ntest = 5000
L = len(snk.data())
@@ -84,7 +84,7 @@ class test_fractional_resampler(gr_unittest.TestCase):
snk = blocks.vector_sink_c()
self.tb.connect(signal, op, snk)
- self.tb.run()
+ self.tb.run()
Ntest = 5000
L = len(snk.data())
@@ -113,7 +113,7 @@ class test_fractional_resampler(gr_unittest.TestCase):
self.tb.connect(signal, op, snk)
self.tb.connect(control, (op,1))
- self.tb.run()
+ self.tb.run()
Ntest = 5000
L = len(snk.data())
@@ -141,7 +141,7 @@ class test_fractional_resampler(gr_unittest.TestCase):
self.tb.connect(signal, op, snk)
self.tb.connect(control, (op,1))
- self.tb.run()
+ self.tb.run()
Ntest = 5000
L = len(snk.data())
diff --git a/gr-filter/python/filter/qa_freq_xlating_fft_filter.py b/gr-filter/python/filter/qa_freq_xlating_fft_filter.py
index a9adfa0f16..d5c7d41dd9 100755
--- a/gr-filter/python/filter/qa_freq_xlating_fft_filter.py
+++ b/gr-filter/python/filter/qa_freq_xlating_fft_filter.py
@@ -75,7 +75,7 @@ class test_freq_xlating_filter(gr_unittest.TestCase):
def assert_fft_ok(self, expected_result, result_data):
expected_result = expected_result[:len(result_data)]
self.assertComplexTuplesAlmostEqual2 (expected_result, result_data,
- abs_eps=1e-9, rel_eps=1e-3)
+ abs_eps=1e-9, rel_eps=1.5e-3)
def test_fft_filter_ccf_001(self):
@@ -144,4 +144,3 @@ class test_freq_xlating_filter(gr_unittest.TestCase):
if __name__ == '__main__':
gr_unittest.run(test_freq_xlating_filter, "test_freq_xlating_filter.xml")
-
diff --git a/gr-filter/python/filter/qa_hilbert.py b/gr-filter/python/filter/qa_hilbert.py
index 96901bf819..e8550a5932 100755
--- a/gr-filter/python/filter/qa_hilbert.py
+++ b/gr-filter/python/filter/qa_hilbert.py
@@ -51,7 +51,7 @@ class test_hilbert(gr_unittest.TestCase):
tb = self.tb
ntaps = 51
sampling_freq = 100
-
+
N = int(ntaps + sampling_freq * 0.10)
data = sig_source_f(sampling_freq, sampling_freq * 0.10, 1.0, N)
src1 = blocks.vector_source_f(data)
diff --git a/gr-noaa/lib/CMakeLists.txt b/gr-noaa/lib/CMakeLists.txt
index 2c69c65675..49310ecb50 100644
--- a/gr-noaa/lib/CMakeLists.txt
+++ b/gr-noaa/lib/CMakeLists.txt
@@ -67,3 +67,16 @@ list(APPEND noaa_libs
add_library(gnuradio-noaa SHARED ${noaa_sources})
target_link_libraries(gnuradio-noaa ${noaa_libs})
GR_LIBRARY_FOO(gnuradio-noaa RUNTIME_COMPONENT "noaa_runtime" DEVEL_COMPONENT "noaa_devel")
+
+if(ENABLE_STATIC_LIBS)
+ add_library(gnuradio-noaa_static STATIC ${noaa_sources})
+
+ if(NOT WIN32)
+ set_target_properties(gnuradio-noaa_static
+ PROPERTIES OUTPUT_NAME gnuradio-noaa)
+ endif(NOT WIN32)
+
+ install(TARGETS gnuradio-noaa_static
+ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT "noaa_devel" # .lib file
+ )
+endif(ENABLE_STATIC_LIBS)
diff --git a/gr-noaa/lib/hrpt_pll_cf_impl.cc b/gr-noaa/lib/hrpt_pll_cf_impl.cc
index fc0d32408d..26376be351 100644
--- a/gr-noaa/lib/hrpt_pll_cf_impl.cc
+++ b/gr-noaa/lib/hrpt_pll_cf_impl.cc
@@ -51,7 +51,7 @@ namespace gr {
return gnuradio::get_initial_sptr
(new hrpt_pll_cf_impl(alpha, beta, max_offset));
}
-
+
hrpt_pll_cf_impl::hrpt_pll_cf_impl(float alpha, float beta, float max_offset)
: sync_block("noaa_hrpt_pll_cf",
io_signature::make(1, 1, sizeof(gr_complex)),
diff --git a/gr-noaa/python/noaa/__init__.py b/gr-noaa/python/noaa/__init__.py
index 9192d2291e..876d5100ba 100644
--- a/gr-noaa/python/noaa/__init__.py
+++ b/gr-noaa/python/noaa/__init__.py
@@ -1,22 +1,22 @@
# Copyright 2012 Free Software Foundation, Inc.
-#
+#
# This file is part of GNU Radio
-#
+#
# GNU Radio is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
-#
+#
# GNU Radio is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-#
+#
# You should have received a copy of the GNU General Public License
# along with GNU Radio; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street,
# Boston, MA 02110-1301, USA.
-#
+#
'''
Blocks and utilities for NOAA app.
diff --git a/gr-pager/include/gnuradio/pager/flex_deinterleave.h b/gr-pager/include/gnuradio/pager/flex_deinterleave.h
index 2b0c4353d6..224bc2900a 100644
--- a/gr-pager/include/gnuradio/pager/flex_deinterleave.h
+++ b/gr-pager/include/gnuradio/pager/flex_deinterleave.h
@@ -28,7 +28,7 @@
namespace gr {
namespace pager {
-
+
/*!
* \brief flex deinterleave description
* \ingroup pager_blk
diff --git a/gr-pager/include/gnuradio/pager/flex_frame.h b/gr-pager/include/gnuradio/pager/flex_frame.h
index 7245c9a00c..6e19f41d40 100644
--- a/gr-pager/include/gnuradio/pager/flex_frame.h
+++ b/gr-pager/include/gnuradio/pager/flex_frame.h
@@ -28,7 +28,7 @@
namespace gr {
namespace pager {
-
+
/*!
* \brief flex_frame.
* \ingroup pager_blk
diff --git a/gr-pager/include/gnuradio/pager/slicer_fb.h b/gr-pager/include/gnuradio/pager/slicer_fb.h
index 6f01a254c3..478c2b0e1e 100644
--- a/gr-pager/include/gnuradio/pager/slicer_fb.h
+++ b/gr-pager/include/gnuradio/pager/slicer_fb.h
@@ -28,7 +28,7 @@
namespace gr {
namespace pager {
-
+
/*!
* \brief slicer description
* \ingroup pager_blk
diff --git a/gr-pager/lib/CMakeLists.txt b/gr-pager/lib/CMakeLists.txt
index 1fcdfe301c..7fae2c9892 100644
--- a/gr-pager/lib/CMakeLists.txt
+++ b/gr-pager/lib/CMakeLists.txt
@@ -75,3 +75,16 @@ list(APPEND pager_libs
add_library(gnuradio-pager SHARED ${pager_sources})
target_link_libraries(gnuradio-pager ${pager_libs})
GR_LIBRARY_FOO(gnuradio-pager RUNTIME_COMPONENT "pager_runtime" DEVEL_COMPONENT "pager_devel")
+
+if(ENABLE_STATIC_LIBS)
+ add_library(gnuradio-pager_static STATIC ${pager_sources})
+
+ if(NOT WIN32)
+ set_target_properties(gnuradio-pager_static
+ PROPERTIES OUTPUT_NAME gnuradio-pager)
+ endif(NOT WIN32)
+
+ install(TARGETS gnuradio-pager_static
+ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT "pager_devel" # .lib file
+ )
+endif(ENABLE_STATIC_LIBS)
diff --git a/gr-pager/lib/flex_parse_impl.cc b/gr-pager/lib/flex_parse_impl.cc
index 425b51f026..d0009de3b6 100644
--- a/gr-pager/lib/flex_parse_impl.cc
+++ b/gr-pager/lib/flex_parse_impl.cc
@@ -97,7 +97,7 @@ namespace gr {
{
// Block information word is the first data word in frame
int biw = d_datawords[0];
-
+
// Nothing to see here, please move along
if(biw == 0 || biw == 0x001FFFFF)
return;
diff --git a/gr-qtgui/apps/gr_constellation_plot b/gr-qtgui/apps/gr_constellation_plot
index 559b643c53..85caed6d05 100755
--- a/gr-qtgui/apps/gr_constellation_plot
+++ b/gr-qtgui/apps/gr_constellation_plot
@@ -185,4 +185,4 @@ if __name__ == "__main__":
main()
except KeyboardInterrupt:
pass
-
+
diff --git a/gr-qtgui/apps/gr_psd_plot_c b/gr-qtgui/apps/gr_psd_plot_c
index 6ade908bd4..6cb065796a 100755
--- a/gr-qtgui/apps/gr_psd_plot_c
+++ b/gr-qtgui/apps/gr_psd_plot_c
@@ -77,4 +77,4 @@ if __name__ == "__main__":
main()
except KeyboardInterrupt:
pass
-
+
diff --git a/gr-qtgui/apps/gr_psd_plot_f b/gr-qtgui/apps/gr_psd_plot_f
index 792b04290b..903a237e64 100755
--- a/gr-qtgui/apps/gr_psd_plot_f
+++ b/gr-qtgui/apps/gr_psd_plot_f
@@ -77,4 +77,4 @@ if __name__ == "__main__":
main()
except KeyboardInterrupt:
pass
-
+
diff --git a/gr-qtgui/apps/gr_psd_plot_i b/gr-qtgui/apps/gr_psd_plot_i
index b2ae5f7103..3413469b7c 100755
--- a/gr-qtgui/apps/gr_psd_plot_i
+++ b/gr-qtgui/apps/gr_psd_plot_i
@@ -76,4 +76,4 @@ if __name__ == "__main__":
main()
except KeyboardInterrupt:
pass
-
+
diff --git a/gr-qtgui/apps/gr_spectrogram_plot_b b/gr-qtgui/apps/gr_spectrogram_plot_b
index 82a443038e..b20567cd2d 100755
--- a/gr-qtgui/apps/gr_spectrogram_plot_b
+++ b/gr-qtgui/apps/gr_spectrogram_plot_b
@@ -76,4 +76,4 @@ if __name__ == "__main__":
main()
except KeyboardInterrupt:
pass
-
+
diff --git a/gr-qtgui/apps/gr_spectrogram_plot_c b/gr-qtgui/apps/gr_spectrogram_plot_c
index bb4fad1b7a..122f4ec5d6 100755
--- a/gr-qtgui/apps/gr_spectrogram_plot_c
+++ b/gr-qtgui/apps/gr_spectrogram_plot_c
@@ -77,4 +77,4 @@ if __name__ == "__main__":
main()
except KeyboardInterrupt:
pass
-
+
diff --git a/gr-qtgui/apps/gr_spectrogram_plot_f b/gr-qtgui/apps/gr_spectrogram_plot_f
index dcb0305bf5..41212eaaf7 100755
--- a/gr-qtgui/apps/gr_spectrogram_plot_f
+++ b/gr-qtgui/apps/gr_spectrogram_plot_f
@@ -77,4 +77,4 @@ if __name__ == "__main__":
main()
except KeyboardInterrupt:
pass
-
+
diff --git a/gr-qtgui/apps/gr_spectrogram_plot_i b/gr-qtgui/apps/gr_spectrogram_plot_i
index 27a1bebd45..6a076c9546 100755
--- a/gr-qtgui/apps/gr_spectrogram_plot_i
+++ b/gr-qtgui/apps/gr_spectrogram_plot_i
@@ -76,4 +76,4 @@ if __name__ == "__main__":
main()
except KeyboardInterrupt:
pass
-
+
diff --git a/gr-qtgui/apps/gr_spectrogram_plot_s b/gr-qtgui/apps/gr_spectrogram_plot_s
index b41b650a64..61fa826e90 100755
--- a/gr-qtgui/apps/gr_spectrogram_plot_s
+++ b/gr-qtgui/apps/gr_spectrogram_plot_s
@@ -76,4 +76,4 @@ if __name__ == "__main__":
main()
except KeyboardInterrupt:
pass
-
+
diff --git a/gr-qtgui/apps/gr_time_plot_c b/gr-qtgui/apps/gr_time_plot_c
index 174b3ee1ed..d3d00b5cf1 100755
--- a/gr-qtgui/apps/gr_time_plot_c
+++ b/gr-qtgui/apps/gr_time_plot_c
@@ -74,4 +74,4 @@ if __name__ == "__main__":
main()
except KeyboardInterrupt:
pass
-
+
diff --git a/gr-qtgui/apps/plot_constellation_form.py b/gr-qtgui/apps/plot_constellation_form.py
index d5e37bb33c..01c6ed1865 100644
--- a/gr-qtgui/apps/plot_constellation_form.py
+++ b/gr-qtgui/apps/plot_constellation_form.py
@@ -62,7 +62,7 @@ class plot_constellation_form(plot_form):
self.ybar.setValue(1000*self.top_block._y_value)
self.add_line_control(self.right_col_layout)
-
+
def set_auto_scale(self, state):
if(state):
self.top_block.auto_scale(True)
diff --git a/gr-qtgui/apps/plot_form.py b/gr-qtgui/apps/plot_form.py
index 2e1a6c5f77..75e39ec98e 100644
--- a/gr-qtgui/apps/plot_form.py
+++ b/gr-qtgui/apps/plot_form.py
@@ -32,7 +32,7 @@ import numpy
class plot_form(QtGui.QWidget):
def __init__(self, top_block, title='', scale=1):
QtGui.QWidget.__init__(self, None)
-
+
self._start = 0
self._end = 0
self._y_min = 0
@@ -41,7 +41,7 @@ class plot_form(QtGui.QWidget):
self.top_block = top_block
self.top_block.gui_y_axis = self.gui_y_axis
-
+
self.setWindowTitle(title)
self.layout = QtGui.QGridLayout(self)
@@ -350,7 +350,7 @@ class plot_form(QtGui.QWidget):
if(ret):
self._y_min = ret[0]
self._y_max = ret[1]
-
+
self.gui_y_axis(self._y_min, self._y_max)
else:
self.ybar.setValue(self._y_max*self._pos_scale)
diff --git a/gr-qtgui/apps/plot_psd_base.py b/gr-qtgui/apps/plot_psd_base.py
index bb1567e014..46f903e1b5 100644
--- a/gr-qtgui/apps/plot_psd_base.py
+++ b/gr-qtgui/apps/plot_psd_base.py
@@ -107,7 +107,7 @@ class plot_base(gr.top_block):
self.pyWin = sip.wrapinstance(pyQt, QtGui.QWidget)
self._is_setup = True
-
+
def is_setup(self):
return self._is_setup
diff --git a/gr-qtgui/apps/plot_psd_form.py b/gr-qtgui/apps/plot_psd_form.py
index 262734bd67..2d1fcd10bc 100644
--- a/gr-qtgui/apps/plot_psd_form.py
+++ b/gr-qtgui/apps/plot_psd_form.py
@@ -74,7 +74,7 @@ class plot_psd_form(plot_form):
self.update_psd_avg)
self.add_line_control(self.right_col_layout)
-
+
def update_psd_size(self):
newpsdsize = self.psd_size_edit.text().toInt()[0]
if(newpsdsize != self.top_block._psd_size):
diff --git a/gr-qtgui/apps/plot_spectrogram_base.py b/gr-qtgui/apps/plot_spectrogram_base.py
index a3fdf65117..26c336e36c 100644
--- a/gr-qtgui/apps/plot_spectrogram_base.py
+++ b/gr-qtgui/apps/plot_spectrogram_base.py
@@ -108,7 +108,7 @@ class plot_base(gr.top_block):
self.pyWin = sip.wrapinstance(pyQt, QtGui.QWidget)
self._is_setup = True
-
+
def is_setup(self):
return self._is_setup
@@ -165,4 +165,4 @@ def setup_options(desc):
sys.exit(0)
return (options, args)
-
+
diff --git a/gr-qtgui/apps/plot_spectrogram_form.py b/gr-qtgui/apps/plot_spectrogram_form.py
index 7f8361e6b1..17cb0335bd 100644
--- a/gr-qtgui/apps/plot_spectrogram_form.py
+++ b/gr-qtgui/apps/plot_spectrogram_form.py
@@ -80,7 +80,7 @@ class plot_spectrogram_form(plot_form):
self.spectrogram_auto_scale)
self.add_spectrogram_control(self.right_col_layout)
-
+
def update_psd_size(self):
newpsdsize = self.psd_size_edit.text().toInt()[0]
if(newpsdsize != self.top_block._psd_size):
@@ -155,7 +155,7 @@ class plot_spectrogram_form(plot_form):
index = self._line_tabs.currentIndex()
self.top_block.gui_snk.set_color_map(index, c_index)
self.update_line_alpha()
-
+
def spectrogram_auto_scale(self):
self.top_block.gui_snk.auto_scale()
_min = self.top_block.gui_snk.min_intensity(0)
diff --git a/gr-qtgui/apps/plot_time_base.py b/gr-qtgui/apps/plot_time_base.py
index 942500c627..007c94d044 100644
--- a/gr-qtgui/apps/plot_time_base.py
+++ b/gr-qtgui/apps/plot_time_base.py
@@ -111,7 +111,7 @@ class plot_base(gr.top_block):
self.pyWin = sip.wrapinstance(pyQt, QtGui.QWidget)
self._is_setup = True
-
+
def is_setup(self):
return self._is_setup
diff --git a/gr-qtgui/apps/plot_time_form.py b/gr-qtgui/apps/plot_time_form.py
index 30701c8d37..0ab94e6cfe 100644
--- a/gr-qtgui/apps/plot_time_form.py
+++ b/gr-qtgui/apps/plot_time_form.py
@@ -57,7 +57,7 @@ class plot_time_form(plot_form):
self.right_col_layout.addWidget(self.stem)
self.add_line_control(self.right_col_layout)
-
+
def set_auto_scale(self, state):
if(state):
self.top_block.auto_scale(True)
diff --git a/gr-qtgui/apps/plot_time_raster_base.py b/gr-qtgui/apps/plot_time_raster_base.py
index 2fc498ba28..856c8c8945 100644
--- a/gr-qtgui/apps/plot_time_raster_base.py
+++ b/gr-qtgui/apps/plot_time_raster_base.py
@@ -106,7 +106,7 @@ class plot_base(gr.top_block):
self.pyWin = sip.wrapinstance(pyQt, QtGui.QWidget)
self._is_setup = True
-
+
def is_setup(self):
return self._is_setup
diff --git a/gr-qtgui/apps/plot_time_raster_form.py b/gr-qtgui/apps/plot_time_raster_form.py
index 32d93744d5..32fbba0765 100644
--- a/gr-qtgui/apps/plot_time_raster_form.py
+++ b/gr-qtgui/apps/plot_time_raster_form.py
@@ -119,12 +119,12 @@ class plot_time_raster_form(plot_form):
self._line_tabs.addTab(self._line_pages[-1], "{0}".format(label))
layout.addWidget(self._line_tabs)
-
+
def update_color_map(self, c_index):
index = self._line_tabs.currentIndex()
self.top_block.gui_snk.set_color_map(index, c_index)
self.update_line_alpha()
-
+
def set_auto_scale(self, state):
if(state):
self.top_block.auto_scale(True)
diff --git a/gr-qtgui/examples/pyqt_histogram_f.py b/gr-qtgui/examples/pyqt_histogram_f.py
index 7bdcbfcb99..a960275f41 100755
--- a/gr-qtgui/examples/pyqt_histogram_f.py
+++ b/gr-qtgui/examples/pyqt_histogram_f.py
@@ -150,7 +150,7 @@ class control_box(QtGui.QWidget):
res = self.hist_bins.text().toInt()
if(res[1]):
self.snk.set_bins(res[0])
-
+
def autoscalex(self):
self.snk.autoscalex()
diff --git a/gr-qtgui/examples/qtgui_tags_viewing.grc b/gr-qtgui/examples/qtgui_tags_viewing.grc
index 296641d5cb..4c6454537a 100644
--- a/gr-qtgui/examples/qtgui_tags_viewing.grc
+++ b/gr-qtgui/examples/qtgui_tags_viewing.grc
@@ -520,7 +520,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
@@ -654,7 +654,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
@@ -784,7 +784,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
@@ -871,7 +871,7 @@
</param>
<param>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value></value>
</param>
<param>
<key>size</key>
diff --git a/gr-qtgui/grc/qtgui_const_sink_x.xml b/gr-qtgui/grc/qtgui_const_sink_x.xml
index 3b549e2d31..0062bcaba8 100644
--- a/gr-qtgui/grc/qtgui_const_sink_x.xml
+++ b/gr-qtgui/grc/qtgui_const_sink_x.xml
@@ -66,12 +66,15 @@ $(gui_hint()($win))</make>
<option><name>Complex</name><key>complex</key><opt>fcn:const_sink_c</opt></option>
<!--<option><name>Float</name><key>float</key><opt>fcn:const_sink_f</opt></option> -->
</param>
+
<param>
<name>Name</name>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value>""</value>
<type>string</type>
+ <hide>#if len($name()) > 0 then 'none' else 'part'#</hide>
</param>
+
<param>
<name>Number of Points</name>
<key>size</key>
diff --git a/gr-qtgui/grc/qtgui_freq_sink_x.xml b/gr-qtgui/grc/qtgui_freq_sink_x.xml
index 68b47122a9..beed7fa921 100644
--- a/gr-qtgui/grc/qtgui_freq_sink_x.xml
+++ b/gr-qtgui/grc/qtgui_freq_sink_x.xml
@@ -63,11 +63,13 @@ $(gui_hint()($win))</make>
<option><name>Complex</name><key>complex</key><opt>fcn:freq_sink_c</opt></option>
<option><name>Float</name><key>float</key><opt>fcn:freq_sink_f</opt></option>
</param>
+
<param>
<name>Name</name>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value>""</value>
<type>string</type>
+ <hide>#if len($name()) > 0 then 'none' else 'part'#</hide>
</param>
<param>
diff --git a/gr-qtgui/grc/qtgui_histogram_sink_x.xml b/gr-qtgui/grc/qtgui_histogram_sink_x.xml
index 254089181b..a7137ac6a1 100644
--- a/gr-qtgui/grc/qtgui_histogram_sink_x.xml
+++ b/gr-qtgui/grc/qtgui_histogram_sink_x.xml
@@ -64,9 +64,11 @@ $(gui_hint()($win))</make>
<param>
<name>Name</name>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value>""</value>
<type>string</type>
+ <hide>#if len($name()) > 0 then 'none' else 'part'#</hide>
</param>
+
<param>
<name>Number of Points</name>
<key>size</key>
diff --git a/gr-qtgui/grc/qtgui_sink_x.xml b/gr-qtgui/grc/qtgui_sink_x.xml
index ab76403472..618973ed59 100644
--- a/gr-qtgui/grc/qtgui_sink_x.xml
+++ b/gr-qtgui/grc/qtgui_sink_x.xml
@@ -49,8 +49,9 @@ Qt.QObject.connect(self._$(id)_win, Qt.SIGNAL("plotPointSelected(QPointF, int)")
<param>
<name>Name</name>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value>""</value>
<type>string</type>
+ <hide>#if len($name()) > 0 then 'none' else 'part'#</hide>
</param>
<param>
<name>FFT Size</name>
diff --git a/gr-qtgui/grc/qtgui_time_raster_x.xml b/gr-qtgui/grc/qtgui_time_raster_x.xml
index db878eb379..d303e7f42a 100644
--- a/gr-qtgui/grc/qtgui_time_raster_x.xml
+++ b/gr-qtgui/grc/qtgui_time_raster_x.xml
@@ -60,12 +60,15 @@ $(gui_hint()($win))</make>
<option><name>Byte</name><key>byte</key><opt>fcn:time_raster_sink_b</opt></option>
<option><name>Float</name><key>float</key><opt>fcn:time_raster_sink_f</opt></option>
</param>
+
<param>
<name>Name</name>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value>""</value>
<type>string</type>
+ <hide>#if len($name()) > 0 then 'none' else 'part'#</hide>
</param>
+
<param>
<name>Sample Rate</name>
<key>samp_rate</key>
diff --git a/gr-qtgui/grc/qtgui_time_sink_x.xml b/gr-qtgui/grc/qtgui_time_sink_x.xml
index 172da7a02d..f40487e61f 100644
--- a/gr-qtgui/grc/qtgui_time_sink_x.xml
+++ b/gr-qtgui/grc/qtgui_time_sink_x.xml
@@ -87,12 +87,15 @@ $(gui_hint()($win))</make>
<option><name>Complex</name><key>complex</key><opt>fcn:time_sink_c</opt></option>
<option><name>Float</name><key>float</key><opt>fcn:time_sink_f</opt></option>
</param>
+
<param>
<name>Name</name>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value>""</value>
<type>string</type>
+ <hide>#if len($name()) > 0 then 'none' else 'part'#</hide>
</param>
+
<param>
<name>Number of Points</name>
<key>size</key>
diff --git a/gr-qtgui/grc/qtgui_waterfall_sink_x.xml b/gr-qtgui/grc/qtgui_waterfall_sink_x.xml
index 279cdc75b4..36df704a3e 100644
--- a/gr-qtgui/grc/qtgui_waterfall_sink_x.xml
+++ b/gr-qtgui/grc/qtgui_waterfall_sink_x.xml
@@ -59,12 +59,15 @@ $(gui_hint()($win))</make>
<option><name>Complex</name><key>complex</key><opt>fcn:waterfall_sink_c</opt></option>
<option><name>Float</name><key>float</key><opt>fcn:waterfall_sink_f</opt></option>
</param>
+
<param>
<name>Name</name>
<key>name</key>
- <value>QT GUI Plot</value>
+ <value>""</value>
<type>string</type>
+ <hide>#if len($name()) > 0 then 'none' else 'part'#</hide>
</param>
+
<param>
<name>FFT Size</name>
<key>fftsize</key>
diff --git a/gr-qtgui/include/gnuradio/qtgui/WaterfallDisplayPlot.h b/gr-qtgui/include/gnuradio/qtgui/WaterfallDisplayPlot.h
index 156f6bf93d..4fdd065093 100644
--- a/gr-qtgui/include/gnuradio/qtgui/WaterfallDisplayPlot.h
+++ b/gr-qtgui/include/gnuradio/qtgui/WaterfallDisplayPlot.h
@@ -48,7 +48,7 @@ class WaterfallDisplayPlot: public DisplayPlot
Q_PROPERTY ( int intensity_color_map_type1 READ getIntensityColorMapType1 WRITE setIntensityColorMapType1 )
Q_PROPERTY ( QColor low_intensity_color READ getUserDefinedLowIntensityColor WRITE setUserDefinedLowIntensityColor )
Q_PROPERTY ( QColor high_intensity_color READ getUserDefinedHighIntensityColor WRITE setUserDefinedHighIntensityColor )
-
+
public:
WaterfallDisplayPlot(int nplots, QWidget*);
diff --git a/gr-qtgui/include/gnuradio/qtgui/freq_sink_c.h b/gr-qtgui/include/gnuradio/qtgui/freq_sink_c.h
index c2f50686f0..d02505c6f6 100644
--- a/gr-qtgui/include/gnuradio/qtgui/freq_sink_c.h
+++ b/gr-qtgui/include/gnuradio/qtgui/freq_sink_c.h
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2012 Free Software Foundation, Inc.
+ * Copyright 2012,2014 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -56,11 +56,15 @@ namespace gr {
*
* - freq (output):
* Produces a PMT pair with (intern("freq"), double(frequency).
- * When a user double-clicks on the display, the frequency
- * that the cursor is on is used to retune the x-axis scale
- * to recenter onto the clicked frequency. A message
- * containing the new frequency is also produced and can be
+ * When a user double-clicks on the display, the block
+ * produces and emits a message containing the frequency of
+ * where on the x-axis the user clicked. This value can be
* used by other blocks to update their frequency setting.
+ *
+ * To perform click-to-tune behavior, this output 'freq'
+ * port can be redirected to this block's input 'freq' port
+ * to catch the message and update the center frequency of
+ * the display.
*/
class QTGUI_API freq_sink_c : virtual public sync_block
{
@@ -127,6 +131,8 @@ namespace gr {
virtual void enable_menu(bool en=true) = 0;
virtual void enable_grid(bool en=true) = 0;
virtual void enable_autoscale(bool en=true) = 0;
+ virtual void clear_max_hold() = 0;
+ virtual void clear_min_hold() = 0;
virtual void reset() = 0;
QApplication *d_qApplication;
diff --git a/gr-qtgui/include/gnuradio/qtgui/freq_sink_f.h b/gr-qtgui/include/gnuradio/qtgui/freq_sink_f.h
index bc7f0a6f1c..81f9c0c8c5 100644
--- a/gr-qtgui/include/gnuradio/qtgui/freq_sink_f.h
+++ b/gr-qtgui/include/gnuradio/qtgui/freq_sink_f.h
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2012 Free Software Foundation, Inc.
+ * Copyright 2012,2014 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -56,11 +56,15 @@ namespace gr {
*
* - freq (output):
* Produces a PMT pair with (intern("freq"), double(frequency).
- * When a user double-clicks on the display, the frequency
- * that the cursor is on is used to retune the x-axis scale
- * to recenter onto the clicked frequency. A message
- * containing the new frequency is also produced and can be
+ * When a user double-clicks on the display, the block
+ * produces and emits a message containing the frequency of
+ * where on the x-axis the user clicked. This value can be
* used by other blocks to update their frequency setting.
+ *
+ * To perform click-to-tune behavior, this output 'freq'
+ * port can be redirected to this block's input 'freq' port
+ * to catch the message and update the center frequency of
+ * the display.
*/
class QTGUI_API freq_sink_f : virtual public sync_block
{
@@ -126,6 +130,8 @@ namespace gr {
virtual void enable_menu(bool en=true) = 0;
virtual void enable_grid(bool en=true) = 0;
virtual void enable_autoscale(bool en=true) = 0;
+ virtual void clear_max_hold() = 0;
+ virtual void clear_min_hold() = 0;
virtual void reset() = 0;
QApplication *d_qApplication;
diff --git a/gr-qtgui/include/gnuradio/qtgui/freqdisplayform.h b/gr-qtgui/include/gnuradio/qtgui/freqdisplayform.h
index 1fa57c1146..c0cd36ef23 100644
--- a/gr-qtgui/include/gnuradio/qtgui/freqdisplayform.h
+++ b/gr-qtgui/include/gnuradio/qtgui/freqdisplayform.h
@@ -67,6 +67,8 @@ public slots:
const double bandwidth);
void setYaxis(double min, double max);
void autoScale(bool en);
+ void clearMaxHold();
+ void clearMinHold();
private slots:
void newData(const QEvent *updateEvent);
@@ -88,7 +90,7 @@ private:
FFTSizeMenu *d_sizemenu;
FFTAverageMenu *d_avgmenu;
FFTWindowMenu *d_winmenu;
-
+ QAction *d_clearmin_act, *d_clearmax_act;
};
#endif /* FREQ_DISPLAY_FORM_H */
diff --git a/gr-qtgui/include/gnuradio/qtgui/histogram_sink_f.h b/gr-qtgui/include/gnuradio/qtgui/histogram_sink_f.h
index 96d2b57732..bedaf103ea 100644
--- a/gr-qtgui/include/gnuradio/qtgui/histogram_sink_f.h
+++ b/gr-qtgui/include/gnuradio/qtgui/histogram_sink_f.h
@@ -33,7 +33,7 @@
namespace gr {
namespace qtgui {
-
+
/*!
* \brief A graphical sink to display a histogram.
* \ingroup instrumentation_blk
diff --git a/gr-qtgui/include/gnuradio/qtgui/plot_raster.h b/gr-qtgui/include/gnuradio/qtgui/plot_raster.h
index 6352e9f0db..57c2c887e6 100644
--- a/gr-qtgui/include/gnuradio/qtgui/plot_raster.h
+++ b/gr-qtgui/include/gnuradio/qtgui/plot_raster.h
@@ -68,7 +68,7 @@ public:
#endif
virtual int rtti() const;
-
+
virtual void draw(QPainter *p,
const QwtScaleMap &xMap,
const QwtScaleMap &yMap,
diff --git a/gr-qtgui/include/gnuradio/qtgui/sink_c.h b/gr-qtgui/include/gnuradio/qtgui/sink_c.h
index 74a963669b..c1c8777255 100644
--- a/gr-qtgui/include/gnuradio/qtgui/sink_c.h
+++ b/gr-qtgui/include/gnuradio/qtgui/sink_c.h
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2008,2009,2011,2012 Free Software Foundation, Inc.
+ * Copyright 2008,2009,2011,2012,2014 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -57,11 +57,15 @@ namespace gr {
*
* - freq (output):
* Produces a PMT pair with (intern("freq"), double(frequency).
- * When a user double-clicks on the display, the frequency
- * that the cursor is on is used to retune the x-axis scale
- * to recenter onto the clicked frequency. A message
- * containing the new frequency is also produced and can be
+ * When a user double-clicks on the display, the block
+ * produces and emits a message containing the frequency of
+ * where on the x-axis the user clicked. This value can be
* used by other blocks to update their frequency setting.
+ *
+ * To perform click-to-tune behavior, this output 'freq'
+ * port can be redirected to this block's input 'freq' port
+ * to catch the message and update the center frequency of
+ * the display.
*/
class QTGUI_API sink_c : virtual public block
{
diff --git a/gr-qtgui/include/gnuradio/qtgui/sink_f.h b/gr-qtgui/include/gnuradio/qtgui/sink_f.h
index a37117177e..32854ec8ae 100644
--- a/gr-qtgui/include/gnuradio/qtgui/sink_f.h
+++ b/gr-qtgui/include/gnuradio/qtgui/sink_f.h
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2008,2009,2011,2012 Free Software Foundation, Inc.
+ * Copyright 2008,2009,2011,2012,2014 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -57,11 +57,15 @@ namespace gr {
*
* - freq (output):
* Produces a PMT pair with (intern("freq"), double(frequency).
- * When a user double-clicks on the display, the frequency
- * that the cursor is on is used to retune the x-axis scale
- * to recenter onto the clicked frequency. A message
- * containing the new frequency is also produced and can be
+ * When a user double-clicks on the display, the block
+ * produces and emits a message containing the frequency of
+ * where on the x-axis the user clicked. This value can be
* used by other blocks to update their frequency setting.
+ *
+ * To perform click-to-tune behavior, this output 'freq'
+ * port can be redirected to this block's input 'freq' port
+ * to catch the message and update the center frequency of
+ * the display.
*/
class QTGUI_API sink_f : virtual public block
{
@@ -105,6 +109,7 @@ namespace gr {
virtual void set_frequency_range(const double centerfreq,
const double bandwidth) = 0;
virtual void set_fft_power_db(double min, double max) = 0;
+ virtual void enable_rf_freq(bool en) = 0;
//void set_time_domain_axis(double min, double max);
//void set_constellation_axis(double xmin, double xmax,
diff --git a/gr-qtgui/include/gnuradio/qtgui/timedisplayform.h b/gr-qtgui/include/gnuradio/qtgui/timedisplayform.h
index 2a7b188069..7e09e3c428 100644
--- a/gr-qtgui/include/gnuradio/qtgui/timedisplayform.h
+++ b/gr-qtgui/include/gnuradio/qtgui/timedisplayform.h
@@ -91,7 +91,7 @@ private:
bool d_stem;
bool d_semilogx;
bool d_semilogy;
-
+
NPointsMenu *d_nptsmenu;
QAction *d_stemmenu;
QAction *d_semilogxmenu;
@@ -105,7 +105,7 @@ private:
PopupMenu *d_tr_delay_act;
TriggerChannelMenu *d_tr_channel_menu;
PopupMenu *d_tr_tag_key_act;
-
+
gr::qtgui::trigger_mode d_trig_mode;
gr::qtgui::trigger_slope d_trig_slope;
float d_trig_level;
diff --git a/gr-qtgui/include/gnuradio/qtgui/waterfall_sink_c.h b/gr-qtgui/include/gnuradio/qtgui/waterfall_sink_c.h
index 657bbae1cd..bf73db3f1a 100644
--- a/gr-qtgui/include/gnuradio/qtgui/waterfall_sink_c.h
+++ b/gr-qtgui/include/gnuradio/qtgui/waterfall_sink_c.h
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2012 Free Software Foundation, Inc.
+ * Copyright 2012,2014 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -62,11 +62,15 @@ namespace gr {
*
* - freq (output):
* Produces a PMT pair with (intern("freq"), double(frequency).
- * When a user double-clicks on the display, the frequency
- * that the cursor is on is used to retune the x-axis scale
- * to recenter onto the clicked frequency. A message
- * containing the new frequency is also produced and can be
+ * When a user double-clicks on the display, the block
+ * produces and emits a message containing the frequency of
+ * where on the x-axis the user clicked. This value can be
* used by other blocks to update their frequency setting.
+ *
+ * To perform click-to-tune behavior, this output 'freq'
+ * port can be redirected to this block's input 'freq' port
+ * to catch the message and update the center frequency of
+ * the display.
*/
class QTGUI_API waterfall_sink_c : virtual public sync_block
{
diff --git a/gr-qtgui/include/gnuradio/qtgui/waterfall_sink_f.h b/gr-qtgui/include/gnuradio/qtgui/waterfall_sink_f.h
index c8fa9a0509..bbfcc33164 100644
--- a/gr-qtgui/include/gnuradio/qtgui/waterfall_sink_f.h
+++ b/gr-qtgui/include/gnuradio/qtgui/waterfall_sink_f.h
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2012 Free Software Foundation, Inc.
+ * Copyright 2012,2014 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -62,11 +62,15 @@ namespace gr {
*
* - freq (output):
* Produces a PMT pair with (intern("freq"), double(frequency).
- * When a user double-clicks on the display, the frequency
- * that the cursor is on is used to retune the x-axis scale
- * to recenter onto the clicked frequency. A message
- * containing the new frequency is also produced and can be
+ * When a user double-clicks on the display, the block
+ * produces and emits a message containing the frequency of
+ * where on the x-axis the user clicked. This value can be
* used by other blocks to update their frequency setting.
+ *
+ * To perform click-to-tune behavior, this output 'freq'
+ * port can be redirected to this block's input 'freq' port
+ * to catch the message and update the center frequency of
+ * the display.
*/
class QTGUI_API waterfall_sink_f : virtual public sync_block
{
diff --git a/gr-qtgui/lib/CMakeLists.txt b/gr-qtgui/lib/CMakeLists.txt
index 8419f2dcb0..2dc73a9abb 100644
--- a/gr-qtgui/lib/CMakeLists.txt
+++ b/gr-qtgui/lib/CMakeLists.txt
@@ -40,7 +40,7 @@ set(qtgui_moc_hdrs
${qtgui_mod_includedir}/ConstellationDisplayPlot.h
${qtgui_mod_includedir}/HistogramDisplayPlot.h
)
-QT4_WRAP_CPP(qtgui_moc_srcs ${qtgui_moc_hdrs})
+QT4_WRAP_CPP(qtgui_moc_sources ${qtgui_moc_hdrs})
QT4_WRAP_UI(qtgui_ui_hdrs spectrumdisplayform.ui)
#FIXME the sources expect <foo>.ui.h, but the macros generate ui_foo.h
@@ -50,8 +50,8 @@ if(NOT EXISTS ${spectrum_ui_hdr})
file(WRITE ${spectrum_ui_hdr} "#include <ui_spectrumdisplayform.h>\n")
endif(NOT EXISTS ${spectrum_ui_hdr})
-set(qtgui_srcs
- ${qtgui_moc_srcs}
+set(qtgui_sources
+ ${qtgui_moc_sources}
${qtgui_ui_hdrs}
DisplayPlot.cc
FrequencyDisplayPlot.cc
@@ -101,7 +101,7 @@ if(MSVC)
${CMAKE_CURRENT_BINARY_DIR}/gnuradio-qtgui.rc
@ONLY)
- list(APPEND qtgui_srcs
+ list(APPEND qtgui_sources
${CMAKE_CURRENT_BINARY_DIR}/gnuradio-qtgui.rc
)
endif(MSVC)
@@ -160,6 +160,19 @@ if(ENABLE_PYTHON)
endif(ENABLE_PYTHON)
add_definitions(-DQWT_DLL) #setup QWT library linkage
-add_library(gnuradio-qtgui SHARED ${qtgui_srcs})
+add_library(gnuradio-qtgui SHARED ${qtgui_sources})
target_link_libraries(gnuradio-qtgui ${qtgui_libs})
GR_LIBRARY_FOO(gnuradio-qtgui RUNTIME_COMPONENT "qtgui_runtime" DEVEL_COMPONENT "qtgui_devel")
+
+if(ENABLE_STATIC_LIBS)
+ add_library(gnuradio-qtgui_static STATIC ${qtgui_sources})
+
+ if(NOT WIN32)
+ set_target_properties(gnuradio-qtgui_static
+ PROPERTIES OUTPUT_NAME gnuradio-qtgui)
+ endif(NOT WIN32)
+
+ install(TARGETS gnuradio-qtgui_static
+ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT "qtgui_devel" # .lib file
+ )
+endif(ENABLE_STATIC_LIBS)
diff --git a/gr-qtgui/lib/ConstellationDisplayPlot.cc b/gr-qtgui/lib/ConstellationDisplayPlot.cc
index 47e6b0b0de..a3ad6bf035 100644
--- a/gr-qtgui/lib/ConstellationDisplayPlot.cc
+++ b/gr-qtgui/lib/ConstellationDisplayPlot.cc
@@ -114,7 +114,7 @@ ConstellationDisplayPlot::ConstellationDisplayPlot(int nplots, QWidget* parent)
d_plot_curve.push_back(new QwtPlotCurve(QString("Data %1").arg(i)));
d_plot_curve[i]->attach(this);
d_plot_curve[i]->setPen(QPen(colors[i]));
-
+
QwtSymbol *symbol = new QwtSymbol(QwtSymbol::NoSymbol, QBrush(colors[i]),
QPen(colors[i]), QSize(7,7));
@@ -191,7 +191,7 @@ ConstellationDisplayPlot::plotNewData(const std::vector<double*> realDataPoints,
if((numDataPoints > 0)) {
if(numDataPoints != d_numPoints) {
d_numPoints = numDataPoints;
-
+
for(int i = 0; i < d_nplots; i++) {
delete [] d_real_data[i];
delete [] d_imag_data[i];
@@ -226,7 +226,7 @@ ConstellationDisplayPlot::plotNewData(const std::vector<double*> realDataPoints,
}
}
_autoScale(bottom, top);
- }
+ }
replot();
diff --git a/gr-qtgui/lib/DisplayPlot.cc b/gr-qtgui/lib/DisplayPlot.cc
index 6f1f106f25..dcf5461d25 100644
--- a/gr-qtgui/lib/DisplayPlot.cc
+++ b/gr-qtgui/lib/DisplayPlot.cc
@@ -268,7 +268,7 @@ DisplayPlot::setLineWidth(int which, int width)
QPen pen(d_plot_curve[which]->pen());
pen.setWidth(width);
d_plot_curve[which]->setPen(pen);
-
+
// Scale the marker size proportionally
#if QWT_VERSION < 0x060000
QwtSymbol sym = (QwtSymbol)d_plot_curve[which]->symbol();
@@ -361,12 +361,12 @@ DisplayPlot::setMarkerAlpha(int which, int alpha)
// Get the pen color
QPen pen(d_plot_curve[which]->pen());
QColor color = pen.color();
-
+
// Set new alpha and update pen
color.setAlpha(alpha);
pen.setColor(color);
d_plot_curve[which]->setPen(pen);
-
+
// And set the new color for the markers
#if QWT_VERSION < 0x060000
QwtSymbol sym = (QwtSymbol)d_plot_curve[which]->symbol();
@@ -396,7 +396,7 @@ DisplayPlot::getMarkerAlpha(int which) const
void
DisplayPlot::setStop(bool on)
{
- d_stop = on;
+ d_stop = on;
}
void
diff --git a/gr-qtgui/lib/FrequencyDisplayPlot.cc b/gr-qtgui/lib/FrequencyDisplayPlot.cc
index d1d2ef8dbc..19ebac1a82 100644
--- a/gr-qtgui/lib/FrequencyDisplayPlot.cc
+++ b/gr-qtgui/lib/FrequencyDisplayPlot.cc
@@ -133,7 +133,7 @@ FrequencyDisplayPlot::FrequencyDisplayPlot(int nplots, QWidget* parent)
}
// Create min/max plotter curves
- d_min_fft_plot_curve = new QwtPlotCurve("Minimum Power");
+ d_min_fft_plot_curve = new QwtPlotCurve("Min Hold");
d_min_fft_plot_curve->attach(this);
const QColor default_min_fft_color = Qt::magenta;
setMinFFTColor(default_min_fft_color);
@@ -145,7 +145,7 @@ FrequencyDisplayPlot::FrequencyDisplayPlot(int nplots, QWidget* parent)
d_min_fft_plot_curve->setVisible(false);
d_min_fft_plot_curve->setZ(0);
- d_max_fft_plot_curve = new QwtPlotCurve("Maximum Power");
+ d_max_fft_plot_curve = new QwtPlotCurve("Max Hold");
d_max_fft_plot_curve->attach(this);
QColor default_max_fft_color = Qt::darkYellow;
setMaxFFTColor(default_max_fft_color);
diff --git a/gr-qtgui/lib/HistogramDisplayPlot.cc b/gr-qtgui/lib/HistogramDisplayPlot.cc
index ce9ed3c00d..0124cc73f2 100644
--- a/gr-qtgui/lib/HistogramDisplayPlot.cc
+++ b/gr-qtgui/lib/HistogramDisplayPlot.cc
@@ -156,7 +156,7 @@ HistogramDisplayPlot::HistogramDisplayPlot(int nplots, QWidget* parent)
setAxisScaleEngine(QwtPlot::yLeft, new QwtLinearScaleEngine);
setYaxis(-2.0, d_bins);
setAxisTitle(QwtPlot::yLeft, "Count");
-
+
QList<QColor> colors;
colors << QColor(Qt::blue) << QColor(Qt::red) << QColor(Qt::green)
<< QColor(Qt::black) << QColor(Qt::cyan) << QColor(Qt::magenta)
@@ -391,7 +391,7 @@ HistogramDisplayPlot::setMarkerAlpha(int which, int alpha)
QPen pen(d_plot_curve[which]->pen());
QBrush brush(d_plot_curve[which]->brush());
QColor color = brush.color();
-
+
// Set new alpha and update pen
color.setAlpha(alpha);
brush.setColor(color);
@@ -463,7 +463,7 @@ void
HistogramDisplayPlot::setNumBins(int bins)
{
d_bins = bins;
-
+
delete [] d_xdata;
d_xdata = new double[d_bins];
_resetXAxisPoints(d_left, d_right);
diff --git a/gr-qtgui/lib/TimeDomainDisplayPlot.cc b/gr-qtgui/lib/TimeDomainDisplayPlot.cc
index 8be3f904a6..8c0601a5b5 100644
--- a/gr-qtgui/lib/TimeDomainDisplayPlot.cc
+++ b/gr-qtgui/lib/TimeDomainDisplayPlot.cc
@@ -147,7 +147,7 @@ TimeDomainDisplayPlot::TimeDomainDisplayPlot(int nplots, QWidget* parent)
setAxisScaleEngine(QwtPlot::yLeft, new QwtLinearScaleEngine);
setYaxis(-2.0, 2.0);
setAxisTitle(QwtPlot::yLeft, "Amplitude");
-
+
QList<QColor> colors;
colors << QColor(Qt::blue) << QColor(Qt::red) << QColor(Qt::green)
<< QColor(Qt::black) << QColor(Qt::cyan) << QColor(Qt::magenta)
@@ -167,7 +167,7 @@ TimeDomainDisplayPlot::TimeDomainDisplayPlot(int nplots, QWidget* parent)
QwtSymbol *symbol = new QwtSymbol(QwtSymbol::NoSymbol, QBrush(colors[i]),
QPen(colors[i]), QSize(7,7));
-
+
#if QWT_VERSION < 0x060000
d_plot_curve[i]->setRawData(d_xdata, d_ydata[i], d_numPoints);
d_plot_curve[i]->setSymbol(*symbol);
@@ -337,7 +337,7 @@ TimeDomainDisplayPlot::plotNewData(const std::vector<double*> dataPoints,
m->setLabel(QwtText(s.str().c_str()));
m->attach(this);
-
+
if(!(show && d_tag_markers_en[which])) {
m->hide();
}
@@ -373,7 +373,7 @@ TimeDomainDisplayPlot::plotNewData(const std::vector<double*> dataPoints,
}
}
_autoScale(bottom, top);
- }
+ }
replot();
}
diff --git a/gr-qtgui/lib/ber_sink_b_impl.cc b/gr-qtgui/lib/ber_sink_b_impl.cc
index bcbe146e80..61dec2573a 100644
--- a/gr-qtgui/lib/ber_sink_b_impl.cc
+++ b/gr-qtgui/lib/ber_sink_b_impl.cc
@@ -21,11 +21,11 @@
*/
#include "ber_sink_b_impl.h"
+#include <boost/math/special_functions/erf.hpp>
#include <gnuradio/io_signature.h>
#include <gnuradio/math.h>
#include <gnuradio/fft/fft.h>
#include <volk/volk.h>
-//#include <math.h>
#ifdef HAVE_CONFIG_H
#include <config.h>
@@ -90,7 +90,7 @@ namespace gr {
for(size_t i = 0; i < esnos.size(); i++) {
double e = pow(10.0, esnos[i]/10.0);
d_esno_buffers[curves][i] = esnos[i];
- d_ber_buffers[curves][i] = log10(erfc(sqrt(e)));
+ d_ber_buffers[curves][i] = log10(boost::math::erfc(sqrt(e)));
}
diff --git a/gr-qtgui/lib/const_sink_c_impl.cc b/gr-qtgui/lib/const_sink_c_impl.cc
index a703336a61..93986d84c7 100644
--- a/gr-qtgui/lib/const_sink_c_impl.cc
+++ b/gr-qtgui/lib/const_sink_c_impl.cc
@@ -129,6 +129,10 @@ namespace gr {
d_main_gui = new ConstellationDisplayForm(d_nconnections, d_parent);
d_main_gui->setNPoints(d_size);
+
+ if(d_name.size() > 0)
+ set_title(d_name);
+
// initialize update time to 10 times a second
set_update_time(0.1);
}
diff --git a/gr-qtgui/lib/freq_sink_c_impl.cc b/gr-qtgui/lib/freq_sink_c_impl.cc
index a95814eb9a..4b43967f32 100644
--- a/gr-qtgui/lib/freq_sink_c_impl.cc
+++ b/gr-qtgui/lib/freq_sink_c_impl.cc
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2012 Free Software Foundation, Inc.
+ * Copyright 2012,2014 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -157,6 +157,9 @@ namespace gr {
set_fft_size(d_fftsize);
set_frequency_range(d_center_freq, d_bandwidth);
+ if(d_name.size() > 0)
+ set_title(d_name);
+
// initialize update time to 10 times a second
set_update_time(0.1);
}
@@ -359,6 +362,18 @@ namespace gr {
}
void
+ freq_sink_c_impl::clear_max_hold()
+ {
+ d_main_gui->clearMaxHold();
+ }
+
+ void
+ freq_sink_c_impl::clear_min_hold()
+ {
+ d_main_gui->clearMinHold();
+ }
+
+ void
freq_sink_c_impl::reset()
{
d_index = 0;
@@ -455,11 +470,10 @@ namespace gr {
freq_sink_c_impl::check_clicked()
{
if(d_main_gui->checkClicked()) {
- d_center_freq = d_main_gui->getClickedFreq();
- double norm_freq = d_center_freq / d_bandwidth;
+ double freq = d_main_gui->getClickedFreq();
message_port_pub(pmt::mp("freq"),
pmt::cons(pmt::mp("freq"),
- pmt::from_double(norm_freq)));
+ pmt::from_double(freq)));
}
}
@@ -469,8 +483,7 @@ namespace gr {
if(pmt::is_pair(msg)) {
pmt::pmt_t x = pmt::cdr(msg);
if(pmt::is_real(x)) {
- double freq = pmt::to_double(x);
- d_center_freq = freq*d_bandwidth;
+ d_center_freq = pmt::to_double(x);
d_qApplication->postEvent(d_main_gui,
new SetFreqEvent(d_center_freq, d_bandwidth));
}
diff --git a/gr-qtgui/lib/freq_sink_c_impl.h b/gr-qtgui/lib/freq_sink_c_impl.h
index 4beea572a1..e435cc6614 100644
--- a/gr-qtgui/lib/freq_sink_c_impl.h
+++ b/gr-qtgui/lib/freq_sink_c_impl.h
@@ -129,6 +129,8 @@ namespace gr {
void enable_menu(bool en);
void enable_grid(bool en);
void enable_autoscale(bool en);
+ void clear_max_hold();
+ void clear_min_hold();
void reset();
int work(int noutput_items,
diff --git a/gr-qtgui/lib/freq_sink_f_impl.cc b/gr-qtgui/lib/freq_sink_f_impl.cc
index 80a09a1823..ab6167d10a 100644
--- a/gr-qtgui/lib/freq_sink_f_impl.cc
+++ b/gr-qtgui/lib/freq_sink_f_impl.cc
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2012 Free Software Foundation, Inc.
+ * Copyright 2012,2014 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -157,6 +157,9 @@ namespace gr {
set_fft_size(d_fftsize);
set_frequency_range(d_center_freq, d_bandwidth);
+ if(d_name.size() > 0)
+ set_title(d_name);
+
// initialize update time to 10 times a second
set_update_time(0.1);
}
@@ -359,6 +362,18 @@ namespace gr {
}
void
+ freq_sink_f_impl::clear_max_hold()
+ {
+ d_main_gui->clearMaxHold();
+ }
+
+ void
+ freq_sink_f_impl::clear_min_hold()
+ {
+ d_main_gui->clearMinHold();
+ }
+
+ void
freq_sink_f_impl::reset()
{
d_index = 0;
@@ -458,11 +473,10 @@ namespace gr {
freq_sink_f_impl::check_clicked()
{
if(d_main_gui->checkClicked()) {
- d_center_freq = d_main_gui->getClickedFreq();
- double norm_freq = d_center_freq / d_bandwidth;
+ double freq = d_main_gui->getClickedFreq();
message_port_pub(pmt::mp("freq"),
pmt::cons(pmt::mp("freq"),
- pmt::from_double(norm_freq)));
+ pmt::from_double(freq)));
}
}
@@ -472,8 +486,7 @@ namespace gr {
if(pmt::is_pair(msg)) {
pmt::pmt_t x = pmt::cdr(msg);
if(pmt::is_real(x)) {
- double freq = pmt::to_double(x);
- d_center_freq = freq*d_bandwidth;
+ d_center_freq = pmt::to_double(x);
d_qApplication->postEvent(d_main_gui,
new SetFreqEvent(d_center_freq, d_bandwidth));
}
diff --git a/gr-qtgui/lib/freq_sink_f_impl.h b/gr-qtgui/lib/freq_sink_f_impl.h
index 74b95c5aaa..8a821f86c3 100644
--- a/gr-qtgui/lib/freq_sink_f_impl.h
+++ b/gr-qtgui/lib/freq_sink_f_impl.h
@@ -128,6 +128,8 @@ namespace gr {
void enable_menu(bool en);
void enable_grid(bool en);
void enable_autoscale(bool en);
+ void clear_max_hold();
+ void clear_min_hold();
void reset();
int work(int noutput_items,
diff --git a/gr-qtgui/lib/freqdisplayform.cc b/gr-qtgui/lib/freqdisplayform.cc
index 537325f6b9..e9968df0b2 100644
--- a/gr-qtgui/lib/freqdisplayform.cc
+++ b/gr-qtgui/lib/freqdisplayform.cc
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2012 Free Software Foundation, Inc.
+ * Copyright 2012,2014 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -55,6 +55,15 @@ FreqDisplayForm::FreqDisplayForm(int nplots, QWidget* parent)
connect(d_winmenu, SIGNAL(whichTrigger(gr::filter::firdes::win_type)),
this, SLOT(setFFTWindowType(const gr::filter::firdes::win_type)));
+ d_clearmax_act = new QAction("Clear Max", this);
+ d_menu->addAction(d_clearmax_act);
+ connect(d_clearmax_act, SIGNAL(triggered()),
+ this, SLOT(clearMaxHold()));
+ d_clearmin_act = new QAction("Clear Min", this);
+ d_menu->addAction(d_clearmin_act);
+ connect(d_clearmin_act, SIGNAL(triggered()),
+ this, SLOT(clearMinHold()));
+
Reset();
connect(d_display_plot, SIGNAL(plotPointSelected(const QPointF)),
@@ -159,8 +168,6 @@ FreqDisplayForm::setFrequencyRange(const double centerfreq,
d_center_freq = centerfreq;
d_samp_rate = bandwidth;
- std::cerr << "FDISP NEW FREQ: " << centerfreq << std::endl;
-
getPlot()->setFrequencyRange(centerfreq, bandwidth,
d_units, strunits[iunit]);
}
@@ -187,12 +194,22 @@ FreqDisplayForm::autoScale(bool en)
}
void
+FreqDisplayForm::clearMaxHold()
+{
+ getPlot()->clearMaxData();
+}
+
+void
+FreqDisplayForm::clearMinHold()
+{
+ getPlot()->clearMinData();
+}
+
+void
FreqDisplayForm::onPlotPointSelected(const QPointF p)
{
d_clicked = true;
d_clicked_freq = d_units*p.x();
-
- setFrequencyRange(d_clicked_freq, d_samp_rate);
}
bool
diff --git a/gr-qtgui/lib/histogram_sink_f_impl.cc b/gr-qtgui/lib/histogram_sink_f_impl.cc
index dc3e63cb01..bd43f8645c 100644
--- a/gr-qtgui/lib/histogram_sink_f_impl.cc
+++ b/gr-qtgui/lib/histogram_sink_f_impl.cc
@@ -126,6 +126,9 @@ namespace gr {
d_main_gui->setNPoints(d_size);
d_main_gui->setXaxis(d_xmin, d_xmax);
+ if(d_name.size() > 0)
+ set_title(d_name);
+
// initialize update time to 10 times a second
set_update_time(0.1);
}
diff --git a/gr-qtgui/lib/histogram_sink_f_impl.h b/gr-qtgui/lib/histogram_sink_f_impl.h
index 58d43e49d1..a3cb03eab1 100644
--- a/gr-qtgui/lib/histogram_sink_f_impl.h
+++ b/gr-qtgui/lib/histogram_sink_f_impl.h
@@ -30,7 +30,7 @@
namespace gr {
namespace qtgui {
-
+
class QTGUI_API histogram_sink_f_impl : public histogram_sink_f
{
private:
diff --git a/gr-qtgui/lib/plot_raster.cc b/gr-qtgui/lib/plot_raster.cc
index 62eac5e13f..b40513506d 100644
--- a/gr-qtgui/lib/plot_raster.cc
+++ b/gr-qtgui/lib/plot_raster.cc
@@ -64,7 +64,7 @@ public:
data = NULL;
colorMap = new QwtLinearColorMap();
}
-
+
~PrivateData()
{
delete colorMap;
diff --git a/gr-qtgui/lib/sink_c_impl.cc b/gr-qtgui/lib/sink_c_impl.cc
index 01e60a6f17..bcd2c4468c 100644
--- a/gr-qtgui/lib/sink_c_impl.cc
+++ b/gr-qtgui/lib/sink_c_impl.cc
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2008-2012 Free Software Foundation, Inc.
+ * Copyright 2008-2012,2014 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -329,11 +329,10 @@ namespace gr {
sink_c_impl::check_clicked()
{
if(d_main_gui->checkClicked()) {
- d_center_freq = d_main_gui->getClickedFreq();
- double norm_freq = d_center_freq / d_bandwidth;
+ double freq = d_main_gui->getClickedFreq();
message_port_pub(pmt::mp("freq"),
pmt::cons(pmt::mp("freq"),
- pmt::from_double(norm_freq)));
+ pmt::from_double(freq)));
}
}
@@ -343,8 +342,8 @@ namespace gr {
if(pmt::is_pair(msg)) {
pmt::pmt_t x = pmt::cdr(msg);
if(pmt::is_real(x)) {
- double freq = pmt::to_double(x);
- set_frequency_range(freq*d_bandwidth, d_bandwidth);
+ d_center_freq = pmt::to_double(x);
+ set_frequency_range(d_center_freq, d_bandwidth);
}
}
}
diff --git a/gr-qtgui/lib/sink_c_impl.h b/gr-qtgui/lib/sink_c_impl.h
index 0628bc2f83..87ce7ad39e 100644
--- a/gr-qtgui/lib/sink_c_impl.h
+++ b/gr-qtgui/lib/sink_c_impl.h
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2008,2009,2011,2012 Free Software Foundation, Inc.
+ * Copyright 2008,2009,2011,2012,2014 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
diff --git a/gr-qtgui/lib/sink_f_impl.cc b/gr-qtgui/lib/sink_f_impl.cc
index 28ba314df8..67896b71df 100644
--- a/gr-qtgui/lib/sink_f_impl.cc
+++ b/gr-qtgui/lib/sink_f_impl.cc
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2008-2012 Free Software Foundation, Inc.
+ * Copyright 2008-2012,2014 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -76,6 +76,9 @@ namespace gr {
// setup output message port to post frequency when display is
// double-clicked
message_port_register_out(pmt::mp("freq"));
+ message_port_register_in(pmt::mp("freq"));
+ set_msg_handler(pmt::mp("freq"),
+ boost::bind(&sink_f_impl::handle_set_freq, this, _1));
d_main_gui = NULL;
@@ -214,6 +217,12 @@ namespace gr {
d_main_gui->setFrequencyAxis(min, max);
}
+ void
+ sink_f_impl::enable_rf_freq(bool en)
+ {
+ d_main_gui->enableRFFreq(en);
+ }
+
/*
void
sink_f_impl::set_time_domain_axis(double min, double max)
@@ -315,11 +324,10 @@ namespace gr {
sink_f_impl::check_clicked()
{
if(d_main_gui->checkClicked()) {
- d_center_freq = d_main_gui->getClickedFreq();
- double norm_freq = d_center_freq / d_bandwidth;
+ double freq = d_main_gui->getClickedFreq();
message_port_pub(pmt::mp("freq"),
pmt::cons(pmt::mp("freq"),
- pmt::from_double(norm_freq)));
+ pmt::from_double(freq)));
}
}
@@ -329,8 +337,8 @@ namespace gr {
if(pmt::is_pair(msg)) {
pmt::pmt_t x = pmt::cdr(msg);
if(pmt::is_real(x)) {
- double freq = pmt::to_double(x);
- set_frequency_range(freq*d_bandwidth, d_bandwidth);
+ d_center_freq = pmt::to_double(x);
+ set_frequency_range(d_center_freq, d_bandwidth);
}
}
}
diff --git a/gr-qtgui/lib/sink_f_impl.h b/gr-qtgui/lib/sink_f_impl.h
index 5b39d82456..53494b9ccf 100644
--- a/gr-qtgui/lib/sink_f_impl.h
+++ b/gr-qtgui/lib/sink_f_impl.h
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2008,2009,2011,2012 Free Software Foundation, Inc.
+ * Copyright 2008,2009,2011,2012,2014 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -98,6 +98,7 @@ namespace gr {
void set_frequency_range(const double centerfreq,
const double bandwidth);
void set_fft_power_db(double min, double max);
+ void enable_rf_freq(bool en);
//void set_time_domain_axis(double min, double max);
//void set_constellation_axis(double xmin, double xmax,
diff --git a/gr-qtgui/lib/spectrumdisplayform.cc b/gr-qtgui/lib/spectrumdisplayform.cc
index ca9d981786..8c67b7a2bf 100644
--- a/gr-qtgui/lib/spectrumdisplayform.cc
+++ b/gr-qtgui/lib/spectrumdisplayform.cc
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2008-2011 Free Software Foundation, Inc.
+ * Copyright 2008-2011,2014 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
diff --git a/gr-qtgui/lib/timeRasterGlobalData.cc b/gr-qtgui/lib/timeRasterGlobalData.cc
index bd88ead8d3..018b7e5ea6 100644
--- a/gr-qtgui/lib/timeRasterGlobalData.cc
+++ b/gr-qtgui/lib/timeRasterGlobalData.cc
@@ -44,7 +44,7 @@ TimeRasterData::TimeRasterData(const double rows, const double cols)
// (helps when d_cols is fractional and we have to slide).
d_totalitems = static_cast<int>((d_rows+1)*floor(d_cols));
d_data_size = d_totalitems + static_cast<int>(floor(d_cols));
-
+
d_intensityRange = QwtDoubleInterval(0.0, 10.0);
d_data = new double[d_data_size];
@@ -171,7 +171,7 @@ double
TimeRasterData::value(double x, double y) const
{
double returnValue = 0.0;
-
+
#if QWT_VERSION < 0x060000
double top = boundingRect().top();
double bottom = top - boundingRect().height();
diff --git a/gr-qtgui/lib/time_raster_sink_b_impl.cc b/gr-qtgui/lib/time_raster_sink_b_impl.cc
index a1189f4413..ecd8ac319a 100644
--- a/gr-qtgui/lib/time_raster_sink_b_impl.cc
+++ b/gr-qtgui/lib/time_raster_sink_b_impl.cc
@@ -145,6 +145,9 @@ namespace gr {
d_rows, d_cols,
1, d_parent);
+ if(d_name.size() > 0)
+ set_title(d_name);
+
// initialize update time to 10 times a second
set_update_time(0.1);
}
diff --git a/gr-qtgui/lib/time_raster_sink_f_impl.cc b/gr-qtgui/lib/time_raster_sink_f_impl.cc
index c8b865d55d..3a18985b2d 100644
--- a/gr-qtgui/lib/time_raster_sink_f_impl.cc
+++ b/gr-qtgui/lib/time_raster_sink_f_impl.cc
@@ -143,6 +143,9 @@ namespace gr {
d_rows, d_cols,
1, d_parent);
+ if(d_name.size() > 0)
+ set_title(d_name);
+
// initialize update time to 10 times a second
set_update_time(0.1);
}
diff --git a/gr-qtgui/lib/time_sink_c_impl.cc b/gr-qtgui/lib/time_sink_c_impl.cc
index 499529c57d..e053806fd2 100644
--- a/gr-qtgui/lib/time_sink_c_impl.cc
+++ b/gr-qtgui/lib/time_sink_c_impl.cc
@@ -129,6 +129,9 @@ namespace gr {
d_main_gui->setNPoints(d_size);
d_main_gui->setSampleRate(d_samp_rate);
+ if(d_name.size() > 0)
+ set_title(d_name);
+
// initialize update time to 10 times a second
set_update_time(0.1);
}
diff --git a/gr-qtgui/lib/time_sink_c_impl.h b/gr-qtgui/lib/time_sink_c_impl.h
index 6a75789059..c3c5bde5e9 100644
--- a/gr-qtgui/lib/time_sink_c_impl.h
+++ b/gr-qtgui/lib/time_sink_c_impl.h
@@ -30,7 +30,7 @@
namespace gr {
namespace qtgui {
-
+
class QTGUI_API time_sink_c_impl : public time_sink_c
{
private:
@@ -116,7 +116,7 @@ namespace gr {
double line_alpha(int which);
void set_size(int width, int height);
-
+
int nsamps() const;
void enable_menu(bool en);
diff --git a/gr-qtgui/lib/time_sink_f_impl.cc b/gr-qtgui/lib/time_sink_f_impl.cc
index e571654615..8424702bc1 100644
--- a/gr-qtgui/lib/time_sink_f_impl.cc
+++ b/gr-qtgui/lib/time_sink_f_impl.cc
@@ -131,6 +131,9 @@ namespace gr {
d_main_gui->setNPoints(d_size);
d_main_gui->setSampleRate(d_samp_rate);
+ if(d_name.size() > 0)
+ set_title(d_name);
+
// initialize update time to 10 times a second
set_update_time(0.1);
}
diff --git a/gr-qtgui/lib/time_sink_f_impl.h b/gr-qtgui/lib/time_sink_f_impl.h
index 7505642389..32e860a89c 100644
--- a/gr-qtgui/lib/time_sink_f_impl.h
+++ b/gr-qtgui/lib/time_sink_f_impl.h
@@ -30,7 +30,7 @@
namespace gr {
namespace qtgui {
-
+
class QTGUI_API time_sink_f_impl : public time_sink_f
{
private:
diff --git a/gr-qtgui/lib/waterfall_sink_c_impl.cc b/gr-qtgui/lib/waterfall_sink_c_impl.cc
index b4d6b2c52a..8cb3f1a7bf 100644
--- a/gr-qtgui/lib/waterfall_sink_c_impl.cc
+++ b/gr-qtgui/lib/waterfall_sink_c_impl.cc
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2012 Free Software Foundation, Inc.
+ * Copyright 2012,2014 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -156,6 +156,9 @@ namespace gr {
set_fft_size(d_fftsize);
set_frequency_range(d_center_freq, d_bandwidth);
+ if(d_name.size() > 0)
+ set_title(d_name);
+
// initialize update time to 10 times a second
set_update_time(0.1);
}
@@ -429,11 +432,10 @@ namespace gr {
waterfall_sink_c_impl::check_clicked()
{
if(d_main_gui->checkClicked()) {
- d_center_freq = d_main_gui->getClickedFreq();
- double norm_freq = d_center_freq / d_bandwidth;
+ double freq = d_main_gui->getClickedFreq();
message_port_pub(pmt::mp("freq"),
pmt::cons(pmt::mp("freq"),
- pmt::from_double(norm_freq)));
+ pmt::from_double(freq)));
}
}
@@ -443,8 +445,7 @@ namespace gr {
if(pmt::is_pair(msg)) {
pmt::pmt_t x = pmt::cdr(msg);
if(pmt::is_real(x)) {
- double freq = pmt::to_double(x);
- d_center_freq = freq*d_bandwidth;
+ d_center_freq = pmt::to_double(x);
d_qApplication->postEvent(d_main_gui,
new SetFreqEvent(d_center_freq, d_bandwidth));
}
diff --git a/gr-qtgui/lib/waterfall_sink_f_impl.cc b/gr-qtgui/lib/waterfall_sink_f_impl.cc
index 32f16eb7ef..1c1453c1d1 100644
--- a/gr-qtgui/lib/waterfall_sink_f_impl.cc
+++ b/gr-qtgui/lib/waterfall_sink_f_impl.cc
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2012 Free Software Foundation, Inc.
+ * Copyright 2012,2014 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -155,6 +155,9 @@ namespace gr {
set_fft_size(d_fftsize);
set_frequency_range(d_center_freq, d_bandwidth);
+ if(d_name.size() > 0)
+ set_title(d_name);
+
// initialize update time to 10 times a second
set_update_time(0.1);
}
@@ -430,11 +433,10 @@ namespace gr {
waterfall_sink_f_impl::check_clicked()
{
if(d_main_gui->checkClicked()) {
- d_center_freq = d_main_gui->getClickedFreq();
- double norm_freq = d_center_freq / d_bandwidth;
+ double freq = d_main_gui->getClickedFreq();
message_port_pub(pmt::mp("freq"),
pmt::cons(pmt::mp("freq"),
- pmt::from_double(norm_freq)));
+ pmt::from_double(freq)));
}
}
@@ -444,8 +446,7 @@ namespace gr {
if(pmt::is_pair(msg)) {
pmt::pmt_t x = pmt::cdr(msg);
if(pmt::is_real(x)) {
- double freq = pmt::to_double(x);
- d_center_freq = freq*d_bandwidth;
+ d_center_freq = pmt::to_double(x);
d_qApplication->postEvent(d_main_gui,
new SetFreqEvent(d_center_freq, d_bandwidth));
}
diff --git a/gr-qtgui/lib/waterfalldisplayform.cc b/gr-qtgui/lib/waterfalldisplayform.cc
index fa6c2f7b22..51f518f375 100644
--- a/gr-qtgui/lib/waterfalldisplayform.cc
+++ b/gr-qtgui/lib/waterfalldisplayform.cc
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2012 Free Software Foundation, Inc.
+ * Copyright 2012,2014 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -282,8 +282,6 @@ WaterfallDisplayForm::onPlotPointSelected(const QPointF p)
{
d_clicked = true;
d_clicked_freq = d_units*p.x();
-
- setFrequencyRange(d_clicked_freq, d_samp_rate);
}
bool
diff --git a/gr-qtgui/python/qtgui/CMakeLists.txt b/gr-qtgui/python/qtgui/CMakeLists.txt
index 8fcbac68a3..c3d83f6034 100644
--- a/gr-qtgui/python/qtgui/CMakeLists.txt
+++ b/gr-qtgui/python/qtgui/CMakeLists.txt
@@ -36,7 +36,7 @@ if(ENABLE_TESTING)
set(GR_TEST_PYTHON_DIRS
${CMAKE_BINARY_DIR}/gnuradio-runtime/python
)
-
+
include(GrTest)
file(GLOB py_qa_test_files "qa_*.py")
foreach(py_qa_test_file ${py_qa_test_files})
diff --git a/gr-trellis/include/gnuradio/trellis/CMakeLists.txt b/gr-trellis/include/gnuradio/trellis/CMakeLists.txt
index b7ceea179e..5f30cc8e4e 100644
--- a/gr-trellis/include/gnuradio/trellis/CMakeLists.txt
+++ b/gr-trellis/include/gnuradio/trellis/CMakeLists.txt
@@ -47,7 +47,7 @@ macro(expand_h root)
string(REGEX REPLACE "X+" ${sig} name ${root})
list(APPEND expanded_files_h ${CMAKE_CURRENT_BINARY_DIR}/${name}.h)
endforeach(sig)
-
+
#create a command to generate the files
add_custom_command(
OUTPUT ${expanded_files_h}
diff --git a/gr-trellis/include/gnuradio/trellis/siso_f.h b/gr-trellis/include/gnuradio/trellis/siso_f.h
index 60c3349e11..ae212cb4cf 100644
--- a/gr-trellis/include/gnuradio/trellis/siso_f.h
+++ b/gr-trellis/include/gnuradio/trellis/siso_f.h
@@ -47,7 +47,7 @@ namespace gr {
siso_type_t d_SISO_TYPE);
virtual fsm FSM() const = 0;
- virtual int K() const = 0;
+ virtual int K() const = 0;
virtual int S0() const = 0;
virtual int SK() const = 0;
virtual bool POSTI() const = 0;
diff --git a/gr-trellis/include/gnuradio/trellis/siso_type.h b/gr-trellis/include/gnuradio/trellis/siso_type.h
index 9167381164..9d147ce0f8 100644
--- a/gr-trellis/include/gnuradio/trellis/siso_type.h
+++ b/gr-trellis/include/gnuradio/trellis/siso_type.h
@@ -30,7 +30,7 @@ namespace gr {
TRELLIS_MIN_SUM = 200,
TRELLIS_SUM_PRODUCT
} siso_type_t;
-
+
} /* namespace trellis */
} /* namespace gr */
diff --git a/gr-trellis/lib/CMakeLists.txt b/gr-trellis/lib/CMakeLists.txt
index 2fe7d3218c..67a339d029 100644
--- a/gr-trellis/lib/CMakeLists.txt
+++ b/gr-trellis/lib/CMakeLists.txt
@@ -68,7 +68,7 @@ macro(expand_cc root)
list(APPEND expanded_files_cc ${CMAKE_CURRENT_BINARY_DIR}/${name}.cc)
list(APPEND expanded_files_h ${CMAKE_CURRENT_BINARY_DIR}/${name}.h)
endforeach(sig)
-
+
#create a command to generate the source files
add_custom_command(
OUTPUT ${expanded_files_cc}
@@ -86,15 +86,15 @@ macro(expand_cc root)
${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
${root} ${root}.h.t ${ARGN}
)
-
+
#make source files depends on headers to force generation
set_source_files_properties(${expanded_files_cc}
PROPERTIES OBJECT_DEPENDS "${expanded_files_h}"
)
-
+
#install rules for the generated cc files
- list(APPEND generated_sources ${expanded_files_cc})
- list(APPEND generated_headers ${expanded_files_h})
+ list(APPEND generated_sources ${expanded_files_cc})
+ list(APPEND generated_headers ${expanded_files_h})
endmacro(expand_cc)
########################################################################
@@ -154,3 +154,21 @@ GR_LIBRARY_FOO(gnuradio-trellis RUNTIME_COMPONENT "trellis_runtime" DEVEL_COMPON
add_dependencies(gnuradio-trellis
trellis_generated_includes trellis_generated_swigs
gnuradio-runtime gnuradio-digital)
+
+if(ENABLE_STATIC_LIBS)
+ add_library(gnuradio-trellis_static STATIC ${trellis_sources})
+
+ add_dependencies(gnuradio-trellis_static
+ trellis_generated_includes trellis_generated_swigs
+ gnuradio-runtime_static gnuradio-digital_static
+ )
+
+ if(NOT WIN32)
+ set_target_properties(gnuradio-trellis_static
+ PROPERTIES OUTPUT_NAME gnuradio-trellis)
+ endif(NOT WIN32)
+
+ install(TARGETS gnuradio-trellis_static
+ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT "trellis_devel" # .lib file
+ )
+endif(ENABLE_STATIC_LIBS)
diff --git a/gr-trellis/lib/metrics_X_impl.h.t b/gr-trellis/lib/metrics_X_impl.h.t
index 0cd7f0ba5b..2b4481fdb1 100644
--- a/gr-trellis/lib/metrics_X_impl.h.t
+++ b/gr-trellis/lib/metrics_X_impl.h.t
@@ -42,7 +42,7 @@ namespace gr {
@IMPL_NAME@(int O, int D, const std::vector<@I_TYPE@> &TABLE,
digital::trellis_metric_type_t TYPE);
~@IMPL_NAME@();
-
+
int O() const { return d_O; }
int D() const { return d_D; }
digital::trellis_metric_type_t TYPE() const { return d_TYPE; }
diff --git a/gr-trellis/lib/pccc_encoder_XX_impl.h.t b/gr-trellis/lib/pccc_encoder_XX_impl.h.t
index f7d6967584..5561b716d3 100644
--- a/gr-trellis/lib/pccc_encoder_XX_impl.h.t
+++ b/gr-trellis/lib/pccc_encoder_XX_impl.h.t
@@ -41,13 +41,13 @@ namespace gr {
int d_blocklength;
std::vector<int> d_buffer;
- public:
+ public:
@IMPL_NAME@(const fsm &FSM1, int ST1,
const fsm &FSM2, int ST2,
const interleaver &INTERLEAVER,
int blocklength);
~@IMPL_NAME@();
-
+
fsm FSM1() const { return d_FSM1; }
int ST1() const { return d_ST1; }
fsm FSM2() const { return d_FSM2; }
diff --git a/gr-trellis/python/trellis/__init__.py b/gr-trellis/python/trellis/__init__.py
index f2540e835f..6c6d80ecdf 100644
--- a/gr-trellis/python/trellis/__init__.py
+++ b/gr-trellis/python/trellis/__init__.py
@@ -1,22 +1,22 @@
# Copyright 2012 Free Software Foundation, Inc.
-#
+#
# This file is part of GNU Radio
-#
+#
# GNU Radio is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
-#
+#
# GNU Radio is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-#
+#
# You should have received a copy of the GNU General Public License
# along with GNU Radio; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street,
# Boston, MA 02110-1301, USA.
-#
+#
'''
Blocks and utilities for trellis coding and related.
diff --git a/gr-trellis/swig/trellis_swig.i b/gr-trellis/swig/trellis_swig.i
index 6a0ab3a46d..8c71a5e93c 100644
--- a/gr-trellis/swig/trellis_swig.i
+++ b/gr-trellis/swig/trellis_swig.i
@@ -1,18 +1,18 @@
/*
* Copyright 2012 Free Software Foundation, Inc.
- *
+ *
* This file is part of GNU Radio
- *
+ *
* GNU Radio is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
* any later version.
- *
+ *
* GNU Radio is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with GNU Radio; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street,
diff --git a/gr-uhd/apps/hf_explorer/README b/gr-uhd/apps/hf_explorer/README
index 942b84f5f6..39b6b66cd0 100644
--- a/gr-uhd/apps/hf_explorer/README
+++ b/gr-uhd/apps/hf_explorer/README
@@ -18,7 +18,7 @@ AM now switches in a synchronous PLL detector with the carriers at
tooltips, etc. The target AM carrier needs to be closely tuned in, it
will have a hollow sound until it is locked. The filter in AM is
preset to 2500/12500 (7.5kHz +/- 5kHz) and is handy for removing
-adjacent channel interference.
+adjacent channel interference.
There is code for Web based control of frequency and volume - so
I can tune the radio with a handheld device. Disabled by default - it
diff --git a/gr-uhd/apps/uhd_fft b/gr-uhd/apps/uhd_fft
index 9edd75288f..0e80de6bd8 100755
--- a/gr-uhd/apps/uhd_fft
+++ b/gr-uhd/apps/uhd_fft
@@ -120,7 +120,7 @@ class app_top_block(stdgui2.std_top_block):
fft_rate=options.fft_rate)
def fftsink_callback(x, y):
self.set_freq(x)
-
+
self.scope.set_callback(fftsink_callback)
self.frame.SetMinSize((800, 420))
diff --git a/gr-uhd/apps/uhd_rx_cfile b/gr-uhd/apps/uhd_rx_cfile
index 7d8d5dd88c..442dd46b62 100644
--- a/gr-uhd/apps/uhd_rx_cfile
+++ b/gr-uhd/apps/uhd_rx_cfile
@@ -122,7 +122,7 @@ class rx_cfile_block(gr.top_block):
mboard_serial = "no serial"
else:
mboard_serial = info["mboard_serial"]
-
+
rx_id = info["rx_id"].split(" ")[0]
if info["rx_serial"] == "":
rx_serial = "no serial"
diff --git a/gr-uhd/apps/uhd_siggen_base.py b/gr-uhd/apps/uhd_siggen_base.py
index 0245c007b7..503f49b481 100644
--- a/gr-uhd/apps/uhd_siggen_base.py
+++ b/gr-uhd/apps/uhd_siggen_base.py
@@ -156,7 +156,7 @@ class top_block(gr.top_block, pubsub):
def _set_tx_amplitude(self, ampl):
"""
Sets the transmit amplitude sent to the USRP
-
+
Args:
ampl: the amplitude or None for automatic
"""
diff --git a/gr-uhd/examples/python/freq_hopping.py b/gr-uhd/examples/python/freq_hopping.py
index 3b4c426976..903b0b23d4 100755
--- a/gr-uhd/examples/python/freq_hopping.py
+++ b/gr-uhd/examples/python/freq_hopping.py
@@ -89,7 +89,7 @@ class FrequencyHopperSrc(gr.hier_block2):
numpy.random.shuffle(self.hop_sequence)
self.hop_sequence = [self.hop_sequence[x % n_channels] for x in xrange(n_bursts)]
if verbose:
- print "Hop Frequencies | Hop Pattern"
+ print "Hop Frequencies | Hop Pattern"
print "=================|================================"
for f in self.hop_sequence:
print "{:6.3f} MHz | ".format(f/1e6),
diff --git a/gr-uhd/examples/python/usrp_spectrum_sense.py b/gr-uhd/examples/python/usrp_spectrum_sense.py
index 3ad0f332a5..ba45a2e80e 100755
--- a/gr-uhd/examples/python/usrp_spectrum_sense.py
+++ b/gr-uhd/examples/python/usrp_spectrum_sense.py
@@ -68,12 +68,12 @@ class tune(gr.feval_dd):
# message on stderr. Not exactly helpful ;)
new_freq = self.tb.set_next_freq()
-
+
# wait until msgq is empty before continuing
while(self.tb.msgq.full_p()):
#print "msgq full, holding.."
time.sleep(0.1)
-
+
return new_freq
except Exception, e:
@@ -165,19 +165,19 @@ class my_top_block(gr.top_block):
# Set the antenna
if(options.antenna):
self.u.set_antenna(options.antenna, 0)
-
+
self.u.set_samp_rate(options.samp_rate)
self.usrp_rate = usrp_rate = self.u.get_samp_rate()
-
+
self.lo_offset = options.lo_offset
if options.fft_size is None:
self.fft_size = int(self.usrp_rate/self.channel_bandwidth)
else:
self.fft_size = options.fft_size
-
+
self.squelch_threshold = options.squelch_threshold
-
+
s2v = blocks.stream_to_vector(gr.sizeof_gr_complex, self.fft_size)
mywindow = filter.window.blackmanharris(self.fft_size)
@@ -196,7 +196,7 @@ class my_top_block(gr.top_block):
# This allows us to discard the bins on both ends of the spectrum.
self.freq_step = self.nearest_freq((0.75 * self.usrp_rate), self.channel_bandwidth)
- self.min_center_freq = self.min_freq + (self.freq_step/2)
+ self.min_center_freq = self.min_freq + (self.freq_step/2)
nsteps = math.ceil((self.max_freq - self.min_freq) / self.freq_step)
self.max_center_freq = self.min_center_freq + (nsteps * self.freq_step)
@@ -244,7 +244,7 @@ class my_top_block(gr.top_block):
target_freq: frequency in Hz
@rypte: bool
"""
-
+
r = self.u.set_center_freq(uhd.tune_request(target_freq, rf_freq=(target_freq + self.lo_offset),rf_freq_policy=uhd.tune_request.POLICY_MANUAL))
if r:
return True
@@ -253,13 +253,13 @@ class my_top_block(gr.top_block):
def set_gain(self, gain):
self.u.set_gain(gain)
-
+
def nearest_freq(self, freq, channel_bandwidth):
freq = round(freq / channel_bandwidth, 0) * channel_bandwidth
return freq
def main_loop(tb):
-
+
def bin_freq(i_bin, center_freq):
#hz_per_bin = tb.usrp_rate / tb.fft_size
freq = center_freq - (tb.usrp_rate / 2) + (tb.channel_bandwidth * i_bin)
@@ -267,7 +267,7 @@ def main_loop(tb):
#freq = nearest_freq(freq, tb.channel_bandwidth)
#print "freq rounded:",freq
return freq
-
+
bin_start = int(tb.fft_size * ((1 - 0.75) / 2))
bin_stop = int(tb.fft_size - bin_start)
diff --git a/gr-uhd/examples/python/usrp_wfm_rcv_sca.py b/gr-uhd/examples/python/usrp_wfm_rcv_sca.py
index 5cbbcd1d8a..9069a745f9 100755
--- a/gr-uhd/examples/python/usrp_wfm_rcv_sca.py
+++ b/gr-uhd/examples/python/usrp_wfm_rcv_sca.py
@@ -132,7 +132,7 @@ class wfm_rx_sca_block (stdgui2.std_top_block):
60) # stopband attenuation
rrate = usrp_rate / dev_rate
self.chan_filt = filter.pfb.arb_resampler_ccf(rrate, chan_coeffs, nfilts)
-
+
#Create demodulator block for Main FM Channel
max_dev = 75e3
fm_demod_gain = demod_rate/(2*math.pi*max_dev)
diff --git a/gr-uhd/include/gnuradio/uhd/usrp_sink.h b/gr-uhd/include/gnuradio/uhd/usrp_sink.h
index 35bb2e4384..d3e732cc30 100644
--- a/gr-uhd/include/gnuradio/uhd/usrp_sink.h
+++ b/gr-uhd/include/gnuradio/uhd/usrp_sink.h
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2010-2013 Free Software Foundation, Inc.
+ * Copyright 2010-2014 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -528,6 +528,8 @@ namespace gr {
/*!
* Get access to the underlying uhd device object.
+ *
+ * NOTE: This function is only available in C++.
* \return the multi usrp device object
*/
virtual ::uhd::usrp::multi_usrp::sptr get_device(void) = 0;
diff --git a/gr-uhd/include/gnuradio/uhd/usrp_source.h b/gr-uhd/include/gnuradio/uhd/usrp_source.h
index f330ee0901..2e165cf771 100644
--- a/gr-uhd/include/gnuradio/uhd/usrp_source.h
+++ b/gr-uhd/include/gnuradio/uhd/usrp_source.h
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2010-2013 Free Software Foundation, Inc.
+ * Copyright 2010-2014 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -535,6 +535,8 @@ namespace gr {
/*!
* Get access to the underlying uhd device object.
+ *
+ * NOTE: This function is only available in C++.
* \return the multi usrp device object
*/
virtual ::uhd::usrp::multi_usrp::sptr get_device(void) = 0;
diff --git a/gr-uhd/swig/uhd_swig.i b/gr-uhd/swig/uhd_swig.i
index 4eaef9112d..a4b1528439 100644
--- a/gr-uhd/swig/uhd_swig.i
+++ b/gr-uhd/swig/uhd_swig.i
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2010-2013 Free Software Foundation, Inc.
+ * Copyright 2010-2014 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -40,6 +40,12 @@
%include "uhd_swig_doc.i"
////////////////////////////////////////////////////////////////////////
+// SWIG should not see the uhd::usrp::multi_usrp class
+////////////////////////////////////////////////////////////////////////
+%ignore gr::uhd::usrp_sink::get_device;
+%ignore gr::uhd::usrp_source::get_device;
+
+////////////////////////////////////////////////////////////////////////
// block headers
////////////////////////////////////////////////////////////////////////
%{
diff --git a/gr-utils/python/modtool/gr-newmod/CMakeLists.txt b/gr-utils/python/modtool/gr-newmod/CMakeLists.txt
index 50cba851ae..677144a984 100644
--- a/gr-utils/python/modtool/gr-newmod/CMakeLists.txt
+++ b/gr-utils/python/modtool/gr-newmod/CMakeLists.txt
@@ -155,6 +155,6 @@ add_subdirectory(docs)
########################################################################
# Install cmake search helper for this library
########################################################################
-install(FILES cmake/Modules/howtoConfig.cmake
+install(FILES cmake/Modules/howtoConfig.cmake
DESTINATION lib/cmake/howto
)
diff --git a/gr-utils/python/modtool/gr-newmod/docs/README.howto b/gr-utils/python/modtool/gr-newmod/docs/README.howto
index a0a6c0f19d..b29ce00579 100644
--- a/gr-utils/python/modtool/gr-newmod/docs/README.howto
+++ b/gr-utils/python/modtool/gr-newmod/docs/README.howto
@@ -6,6 +6,6 @@ is in 'howto', which is imported as:
See the Doxygen documentation for details about the blocks available
in this package. A quick listing of the details can be found in Python
-after importing by using:
+after importing by using:
help(howto)
diff --git a/gr-utils/python/utils/gr_read_file_metadata b/gr-utils/python/utils/gr_read_file_metadata
index 4373cd054b..429b38310f 100644
--- a/gr-utils/python/utils/gr_read_file_metadata
+++ b/gr-utils/python/utils/gr_read_file_metadata
@@ -61,7 +61,7 @@ def main(filename, detached=False):
print "\nExtra Header:"
extra_info = parse_file_metadata.parse_extra_dict(extra, info, True)
-
+
nheaders += 1
nread += parse_file_metadata.HEADER_LENGTH + info["extra_len"]
if(not detached):
diff --git a/gr-utils/python/utils/grcc b/gr-utils/python/utils/grcc
index e17120a65c..8fb44c2c79 100755
--- a/gr-utils/python/utils/grcc
+++ b/gr-utils/python/utils/grcc
@@ -51,7 +51,7 @@ class grcc:
def exec_program(self):
progname = self.fg.get_option('id')
os.system("{0}/{1}.py".format(self.out_dir, progname))
-
+
if __name__ == "__main__":
usage="%prog: [options] filename"
description = "Compiles a GRC file (.grc) into a GNU Radio Python program. The program is stored in ~/.grc_gnuradio by default, but this location can be changed with the -d option."
diff --git a/gr-video-sdl/include/gnuradio/video_sdl/sink_s.h b/gr-video-sdl/include/gnuradio/video_sdl/sink_s.h
index bc5b6eea13..6f4701bcc1 100644
--- a/gr-video-sdl/include/gnuradio/video_sdl/sink_s.h
+++ b/gr-video-sdl/include/gnuradio/video_sdl/sink_s.h
@@ -28,7 +28,7 @@
namespace gr {
namespace video_sdl {
-
+
/*!
* \brief video sink using SDL
*
diff --git a/gr-video-sdl/include/gnuradio/video_sdl/sink_uc.h b/gr-video-sdl/include/gnuradio/video_sdl/sink_uc.h
index 222eb117e0..ba295f89e3 100644
--- a/gr-video-sdl/include/gnuradio/video_sdl/sink_uc.h
+++ b/gr-video-sdl/include/gnuradio/video_sdl/sink_uc.h
@@ -28,7 +28,7 @@
namespace gr {
namespace video_sdl {
-
+
/*!
* \brief video sink using SDL
*
diff --git a/gr-video-sdl/lib/CMakeLists.txt b/gr-video-sdl/lib/CMakeLists.txt
index f87ee3f007..8c992f98ef 100644
--- a/gr-video-sdl/lib/CMakeLists.txt
+++ b/gr-video-sdl/lib/CMakeLists.txt
@@ -67,5 +67,19 @@ ENDIF(MSVC)
add_library(gnuradio-video-sdl SHARED ${video_sdl_sources})
target_link_libraries(gnuradio-video-sdl ${video_sdl_libs})
GR_LIBRARY_FOO(gnuradio-video-sdl RUNTIME_COMPONENT "video_sdl_runtime" DEVEL_COMPONENT "video_sdl_devel")
-add_dependencies(gnuradio-video-sdl
- gnuradio-runtime)
+add_dependencies(gnuradio-video-sdl gnuradio-runtime)
+
+if(ENABLE_STATIC_LIBS)
+ add_library(gnuradio-video-sdl_static STATIC ${video_sdl_sources})
+
+ add_dependencies(gnuradio-video-sdl_static gnuradio-runtime_static)
+
+ if(NOT WIN32)
+ set_target_properties(gnuradio-video-sdl_static
+ PROPERTIES OUTPUT_NAME gnuradio-video-sdl)
+ endif(NOT WIN32)
+
+ install(TARGETS gnuradio-video-sdl_static
+ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT "video_sdl_devel" # .lib file
+ )
+endif(ENABLE_STATIC_LIBS)
diff --git a/gr-video-sdl/python/video_sdl/__init__.py b/gr-video-sdl/python/video_sdl/__init__.py
index 787e84ff08..4bad11831c 100644
--- a/gr-video-sdl/python/video_sdl/__init__.py
+++ b/gr-video-sdl/python/video_sdl/__init__.py
@@ -1,22 +1,22 @@
# Copyright 2012 Free Software Foundation, Inc.
-#
+#
# This file is part of GNU Radio
-#
+#
# GNU Radio is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
-#
+#
# GNU Radio is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-#
+#
# You should have received a copy of the GNU General Public License
# along with GNU Radio; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street,
# Boston, MA 02110-1301, USA.
-#
+#
'''
Blocks and utilities for Video SDL module
diff --git a/gr-vocoder/include/gnuradio/vocoder/alaw_decode_bs.h b/gr-vocoder/include/gnuradio/vocoder/alaw_decode_bs.h
index 431859762c..d8345e034b 100644
--- a/gr-vocoder/include/gnuradio/vocoder/alaw_decode_bs.h
+++ b/gr-vocoder/include/gnuradio/vocoder/alaw_decode_bs.h
@@ -38,7 +38,7 @@ namespace gr {
public:
// gr::vocoder::alaw_decode_bs::sptr
typedef boost::shared_ptr<alaw_decode_bs> sptr;
-
+
/*!
* \brief Make alaw decoder block.
*/
diff --git a/gr-vocoder/include/gnuradio/vocoder/alaw_encode_sb.h b/gr-vocoder/include/gnuradio/vocoder/alaw_encode_sb.h
index c81018ee5f..09f4221f93 100644
--- a/gr-vocoder/include/gnuradio/vocoder/alaw_encode_sb.h
+++ b/gr-vocoder/include/gnuradio/vocoder/alaw_encode_sb.h
@@ -38,7 +38,7 @@ namespace gr {
public:
// gr::vocoder::alaw_encode_sb::sptr
typedef boost::shared_ptr<alaw_encode_sb> sptr;
-
+
/*!
* \brief Make alaw encoder block.
*/
diff --git a/gr-vocoder/include/gnuradio/vocoder/codec2.h b/gr-vocoder/include/gnuradio/vocoder/codec2.h
index ca09e4dfc0..a3c2225208 100644
--- a/gr-vocoder/include/gnuradio/vocoder/codec2.h
+++ b/gr-vocoder/include/gnuradio/vocoder/codec2.h
@@ -43,11 +43,11 @@ namespace gr {
MODE_1300 = CODEC2_MODE_1300,
MODE_1200 = CODEC2_MODE_1200,
};
-
+
private:
};
-
+
} /* namespace vocoder */
} /* namespace gr */
diff --git a/gr-vocoder/include/gnuradio/vocoder/g721_decode_bs.h b/gr-vocoder/include/gnuradio/vocoder/g721_decode_bs.h
index 46444d569a..e4629b4ba2 100644
--- a/gr-vocoder/include/gnuradio/vocoder/g721_decode_bs.h
+++ b/gr-vocoder/include/gnuradio/vocoder/g721_decode_bs.h
@@ -38,7 +38,7 @@ namespace gr {
public:
// gr::vocoder::g721_decode_bs::sptr
typedef boost::shared_ptr<g721_decode_bs> sptr;
-
+
/*!
* \brief Make G721 decoder block.
*/
diff --git a/gr-vocoder/include/gnuradio/vocoder/g721_encode_sb.h b/gr-vocoder/include/gnuradio/vocoder/g721_encode_sb.h
index 2ae717d4b7..e5afc2dece 100644
--- a/gr-vocoder/include/gnuradio/vocoder/g721_encode_sb.h
+++ b/gr-vocoder/include/gnuradio/vocoder/g721_encode_sb.h
@@ -38,7 +38,7 @@ namespace gr {
public:
// gr::vocoder::g721_encode_sb::sptr
typedef boost::shared_ptr<g721_encode_sb> sptr;
-
+
/*!
* \brief Make G721 encoder block.
*/
diff --git a/gr-vocoder/include/gnuradio/vocoder/g723_24_decode_bs.h b/gr-vocoder/include/gnuradio/vocoder/g723_24_decode_bs.h
index 74acd57a40..1f4a686d57 100644
--- a/gr-vocoder/include/gnuradio/vocoder/g723_24_decode_bs.h
+++ b/gr-vocoder/include/gnuradio/vocoder/g723_24_decode_bs.h
@@ -38,7 +38,7 @@ namespace gr {
public:
// gr::vocoder::g723_24_decode_bs::sptr
typedef boost::shared_ptr<g723_24_decode_bs> sptr;
-
+
/*!
* \brief Make G722_24 decoder block.
*/
diff --git a/gr-vocoder/include/gnuradio/vocoder/g723_24_encode_sb.h b/gr-vocoder/include/gnuradio/vocoder/g723_24_encode_sb.h
index 9a08eafed3..0c49749220 100644
--- a/gr-vocoder/include/gnuradio/vocoder/g723_24_encode_sb.h
+++ b/gr-vocoder/include/gnuradio/vocoder/g723_24_encode_sb.h
@@ -38,7 +38,7 @@ namespace gr {
public:
// gr::vocoder::g723_24_encode_sb::sptr
typedef boost::shared_ptr<g723_24_encode_sb> sptr;
-
+
/*!
* \brief Make G722_24 encoder block.
*/
diff --git a/gr-vocoder/include/gnuradio/vocoder/g723_40_decode_bs.h b/gr-vocoder/include/gnuradio/vocoder/g723_40_decode_bs.h
index b1d9f6fe3c..123d04d76b 100644
--- a/gr-vocoder/include/gnuradio/vocoder/g723_40_decode_bs.h
+++ b/gr-vocoder/include/gnuradio/vocoder/g723_40_decode_bs.h
@@ -38,7 +38,7 @@ namespace gr {
public:
// gr::vocoder::g723_40_decode_bs::sptr
typedef boost::shared_ptr<g723_40_decode_bs> sptr;
-
+
/*!
* \brief Make G722_40 decoder block.
*/
diff --git a/gr-vocoder/include/gnuradio/vocoder/g723_40_encode_sb.h b/gr-vocoder/include/gnuradio/vocoder/g723_40_encode_sb.h
index 05ddfed552..037ed8e4af 100644
--- a/gr-vocoder/include/gnuradio/vocoder/g723_40_encode_sb.h
+++ b/gr-vocoder/include/gnuradio/vocoder/g723_40_encode_sb.h
@@ -38,7 +38,7 @@ namespace gr {
public:
// gr::vocoder::g723_40_encode_sb::sptr
typedef boost::shared_ptr<g723_40_encode_sb> sptr;
-
+
/*!
* \brief Make G722_40 encoder block.
*/
diff --git a/gr-vocoder/include/gnuradio/vocoder/ulaw_decode_bs.h b/gr-vocoder/include/gnuradio/vocoder/ulaw_decode_bs.h
index 83c328c326..68f3789216 100644
--- a/gr-vocoder/include/gnuradio/vocoder/ulaw_decode_bs.h
+++ b/gr-vocoder/include/gnuradio/vocoder/ulaw_decode_bs.h
@@ -38,7 +38,7 @@ namespace gr {
public:
// gr::vocoder::ulaw_decode_bs::sptr
typedef boost::shared_ptr<ulaw_decode_bs> sptr;
-
+
/*!
* \brief Make ulaw decoder block.
*/
diff --git a/gr-vocoder/include/gnuradio/vocoder/ulaw_encode_sb.h b/gr-vocoder/include/gnuradio/vocoder/ulaw_encode_sb.h
index fe1dba79b3..ba50f8750a 100644
--- a/gr-vocoder/include/gnuradio/vocoder/ulaw_encode_sb.h
+++ b/gr-vocoder/include/gnuradio/vocoder/ulaw_encode_sb.h
@@ -38,7 +38,7 @@ namespace gr {
public:
// gr::vocoder::ulaw_encode_sb::sptr
typedef boost::shared_ptr<ulaw_encode_sb> sptr;
-
+
/*!
* \brief Make ulaw encoder block.
*/
diff --git a/gr-vocoder/lib/CMakeLists.txt b/gr-vocoder/lib/CMakeLists.txt
index e11b143c51..61c973b699 100644
--- a/gr-vocoder/lib/CMakeLists.txt
+++ b/gr-vocoder/lib/CMakeLists.txt
@@ -161,3 +161,16 @@ endif(GR_USE_SYSTEM_LIBGSM)
add_library(gnuradio-vocoder SHARED ${gr_vocoder_sources})
target_link_libraries(gnuradio-vocoder ${vocoder_libs})
GR_LIBRARY_FOO(gnuradio-vocoder RUNTIME_COMPONENT "vocoder_runtime" DEVEL_COMPONENT "vocoder_devel")
+
+if(ENABLE_STATIC_LIBS)
+ add_library(gnuradio-vocoder_static STATIC ${gr_vocoder_sources})
+
+ if(NOT WIN32)
+ set_target_properties(gnuradio-vocoder_static
+ PROPERTIES OUTPUT_NAME gnuradio-vocoder)
+ endif(NOT WIN32)
+
+ install(TARGETS gnuradio-vocoder_static
+ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT "vocoder_devel" # .lib file
+ )
+endif(ENABLE_STATIC_LIBS)
diff --git a/gr-vocoder/lib/alaw_decode_bs_impl.h b/gr-vocoder/lib/alaw_decode_bs_impl.h
index 37fb6b28c3..cf515bc6f9 100644
--- a/gr-vocoder/lib/alaw_decode_bs_impl.h
+++ b/gr-vocoder/lib/alaw_decode_bs_impl.h
@@ -40,6 +40,6 @@ namespace gr {
};
} /* namespace vocoder */
-} /* namespace gr */
+} /* namespace gr */
#endif /* INCLUDED_VOCODER_ALAW_DECODE_BS_IMPL_H */
diff --git a/gr-vocoder/lib/alaw_encode_sb_impl.h b/gr-vocoder/lib/alaw_encode_sb_impl.h
index 0de1e2e6fd..6afa958591 100644
--- a/gr-vocoder/lib/alaw_encode_sb_impl.h
+++ b/gr-vocoder/lib/alaw_encode_sb_impl.h
@@ -40,6 +40,6 @@ namespace gr {
};
} /* namespace vocoder */
-} /* namespace gr */
+} /* namespace gr */
#endif /* INCLUDED_VOCODER_ALAW_ENCODE_SB_IMPL_H */
diff --git a/gr-vocoder/lib/codec2/fdmdv.c b/gr-vocoder/lib/codec2/fdmdv.c
index 6af1cf4c6d..8855f76ae5 100644
--- a/gr-vocoder/lib/codec2/fdmdv.c
+++ b/gr-vocoder/lib/codec2/fdmdv.c
@@ -25,6 +25,10 @@
along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
+#ifdef _MSC_VER
+#define round(number) number < 0.0 ? ceil(number - 0.5) : floor(number + 0.5)
+#endif
+
/*---------------------------------------------------------------------------*\
INCLUDES
diff --git a/gr-vocoder/lib/cvsd_decode_bs_impl.cc b/gr-vocoder/lib/cvsd_decode_bs_impl.cc
index 57379b2162..b6b42cef60 100644
--- a/gr-vocoder/lib/cvsd_decode_bs_impl.cc
+++ b/gr-vocoder/lib/cvsd_decode_bs_impl.cc
@@ -189,4 +189,4 @@ namespace gr {
}
} /* namespace vocoder */
-} /* namespace gr */
+} /* namespace gr */
diff --git a/gr-vocoder/lib/cvsd_decode_bs_impl.h b/gr-vocoder/lib/cvsd_decode_bs_impl.h
index a9a7cede44..867dfff99b 100644
--- a/gr-vocoder/lib/cvsd_decode_bs_impl.h
+++ b/gr-vocoder/lib/cvsd_decode_bs_impl.h
@@ -87,6 +87,6 @@ namespace gr {
};
} /* namespace vocoder */
-} /* namespace gr */
+} /* namespace gr */
#endif /* INCLUDED_VOCODER_CVSD_DECODE_BS_IMPL_H */
diff --git a/gr-vocoder/lib/cvsd_encode_sb_impl.cc b/gr-vocoder/lib/cvsd_encode_sb_impl.cc
index b567f7868c..3c8d69c1d2 100644
--- a/gr-vocoder/lib/cvsd_encode_sb_impl.cc
+++ b/gr-vocoder/lib/cvsd_encode_sb_impl.cc
@@ -189,4 +189,4 @@ namespace gr {
}
} /* namespace vocoder */
-} /* namespace gr */
+} /* namespace gr */
diff --git a/gr-vocoder/lib/cvsd_encode_sb_impl.h b/gr-vocoder/lib/cvsd_encode_sb_impl.h
index 78bbd3eeb3..546b029d19 100644
--- a/gr-vocoder/lib/cvsd_encode_sb_impl.h
+++ b/gr-vocoder/lib/cvsd_encode_sb_impl.h
@@ -87,6 +87,6 @@ namespace gr {
};
} /* namespace vocoder */
-} /* namespace gr */
+} /* namespace gr */
#endif /* INCLUDED_VOCODER_CVSD_ENCODE_SB_IMPL_H */
diff --git a/gr-vocoder/lib/g721_decode_bs_impl.cc b/gr-vocoder/lib/g721_decode_bs_impl.cc
index db23ffa677..74e43e122c 100644
--- a/gr-vocoder/lib/g721_decode_bs_impl.cc
+++ b/gr-vocoder/lib/g721_decode_bs_impl.cc
@@ -65,4 +65,4 @@ namespace gr {
}
} /* namespace vocoder */
-} /* namespace gr */
+} /* namespace gr */
diff --git a/gr-vocoder/lib/g721_decode_bs_impl.h b/gr-vocoder/lib/g721_decode_bs_impl.h
index f5354e1364..40a1475252 100644
--- a/gr-vocoder/lib/g721_decode_bs_impl.h
+++ b/gr-vocoder/lib/g721_decode_bs_impl.h
@@ -47,6 +47,6 @@ namespace gr {
};
} /* namespace vocoder */
-} /* namespace gr */
+} /* namespace gr */
#endif /* INCLUDED_VOCODER_G721_DECODE_BS_IMPL_H */
diff --git a/gr-vocoder/lib/g721_encode_sb_impl.cc b/gr-vocoder/lib/g721_encode_sb_impl.cc
index 9293c46a83..73243f814f 100644
--- a/gr-vocoder/lib/g721_encode_sb_impl.cc
+++ b/gr-vocoder/lib/g721_encode_sb_impl.cc
@@ -65,4 +65,4 @@ namespace gr {
}
} /* namespace vocoder */
-} /* namespace gr */
+} /* namespace gr */
diff --git a/gr-vocoder/lib/g721_encode_sb_impl.h b/gr-vocoder/lib/g721_encode_sb_impl.h
index 5fc3388ef9..73fb0eea45 100644
--- a/gr-vocoder/lib/g721_encode_sb_impl.h
+++ b/gr-vocoder/lib/g721_encode_sb_impl.h
@@ -47,6 +47,6 @@ namespace gr {
};
} /* namespace vocoder */
-} /* namespace gr */
+} /* namespace gr */
#endif /* INCLUDED_VOCODER_G721_ENCODE_SB_IMPL_H */
diff --git a/gr-vocoder/lib/g723_24_encode_sb_impl.h b/gr-vocoder/lib/g723_24_encode_sb_impl.h
index 9bad56009e..9b18a0e93f 100644
--- a/gr-vocoder/lib/g723_24_encode_sb_impl.h
+++ b/gr-vocoder/lib/g723_24_encode_sb_impl.h
@@ -47,6 +47,6 @@ namespace gr {
};
} /* namespace vocoder */
-} /* namespace gr */
+} /* namespace gr */
#endif /* INCLUDED_VOCODER_G723_24_ENCODE_SB_IMPL_H */
diff --git a/gr-vocoder/lib/g723_40_decode_bs_impl.cc b/gr-vocoder/lib/g723_40_decode_bs_impl.cc
index 4302583200..78bc99d925 100644
--- a/gr-vocoder/lib/g723_40_decode_bs_impl.cc
+++ b/gr-vocoder/lib/g723_40_decode_bs_impl.cc
@@ -65,4 +65,4 @@ namespace gr {
}
} /* namespace vocoder */
-} /* namespace gr */
+} /* namespace gr */
diff --git a/gr-vocoder/lib/g723_40_decode_bs_impl.h b/gr-vocoder/lib/g723_40_decode_bs_impl.h
index 4efd8c5905..81a08727a4 100644
--- a/gr-vocoder/lib/g723_40_decode_bs_impl.h
+++ b/gr-vocoder/lib/g723_40_decode_bs_impl.h
@@ -47,6 +47,6 @@ namespace gr {
};
} /* namespace vocoder */
-} /* namespace gr */
+} /* namespace gr */
#endif /* INCLUDED_VOCODER_G723_40_DECODE_BS_IMPL_H */
diff --git a/gr-vocoder/lib/g723_40_encode_sb_impl.h b/gr-vocoder/lib/g723_40_encode_sb_impl.h
index f2160b7097..326ed7def8 100644
--- a/gr-vocoder/lib/g723_40_encode_sb_impl.h
+++ b/gr-vocoder/lib/g723_40_encode_sb_impl.h
@@ -47,6 +47,6 @@ namespace gr {
};
} /* namespace vocoder */
-} /* namespace gr */
+} /* namespace gr */
#endif /* INCLUDED_VOCODER_G723_40_ENCODE_SB_IMPL_H */
diff --git a/gr-vocoder/lib/gsm_fr_decode_ps_impl.cc b/gr-vocoder/lib/gsm_fr_decode_ps_impl.cc
index e318a60668..97fbc1b9b0 100644
--- a/gr-vocoder/lib/gsm_fr_decode_ps_impl.cc
+++ b/gr-vocoder/lib/gsm_fr_decode_ps_impl.cc
@@ -74,4 +74,4 @@ namespace gr {
}
} /* namespace vocoder */
-} /* namespace gr */
+} /* namespace gr */
diff --git a/gr-vocoder/lib/gsm_fr_decode_ps_impl.h b/gr-vocoder/lib/gsm_fr_decode_ps_impl.h
index 878d40c92a..3e60b21293 100644
--- a/gr-vocoder/lib/gsm_fr_decode_ps_impl.h
+++ b/gr-vocoder/lib/gsm_fr_decode_ps_impl.h
@@ -47,6 +47,6 @@ namespace gr {
};
} /* namespace vocoder */
-} /* namespace gr */
+} /* namespace gr */
#endif /* INCLUDED_VOCODER_GSM_FR_DECODE_PS_IMPL_H */
diff --git a/gr-vocoder/lib/gsm_fr_encode_sp_impl.h b/gr-vocoder/lib/gsm_fr_encode_sp_impl.h
index c4629dd984..4a859d7b30 100644
--- a/gr-vocoder/lib/gsm_fr_encode_sp_impl.h
+++ b/gr-vocoder/lib/gsm_fr_encode_sp_impl.h
@@ -47,6 +47,6 @@ namespace gr {
};
} /* namespace vocoder */
-} /* namespace gr */
+} /* namespace gr */
#endif /* INCLUDED_VOCODER_GSM_FR_ENCODE_SP_IMPL_H */
diff --git a/gr-vocoder/lib/ulaw_decode_bs_impl.h b/gr-vocoder/lib/ulaw_decode_bs_impl.h
index 9e5d238b49..20390466c7 100644
--- a/gr-vocoder/lib/ulaw_decode_bs_impl.h
+++ b/gr-vocoder/lib/ulaw_decode_bs_impl.h
@@ -40,6 +40,6 @@ namespace gr {
};
} /* namespace vocoder */
-} /* namespace gr */
+} /* namespace gr */
#endif /* INCLUDED_VOCODER_ULAW_DECODE_BS_IMPL_H */
diff --git a/gr-vocoder/lib/ulaw_encode_sb_impl.h b/gr-vocoder/lib/ulaw_encode_sb_impl.h
index 48227a86da..c9d3eb2345 100644
--- a/gr-vocoder/lib/ulaw_encode_sb_impl.h
+++ b/gr-vocoder/lib/ulaw_encode_sb_impl.h
@@ -40,6 +40,6 @@ namespace gr {
};
} /* namespace vocoder */
-} /* namespace gr */
+} /* namespace gr */
#endif /* INCLUDED_VOCODER_ULAW_ENCODE_SB_IMPL_H */
diff --git a/gr-vocoder/python/vocoder/qa_alaw_vocoder.py b/gr-vocoder/python/vocoder/qa_alaw_vocoder.py
index 3a49908e5a..4a2b4c3c8b 100755
--- a/gr-vocoder/python/vocoder/qa_alaw_vocoder.py
+++ b/gr-vocoder/python/vocoder/qa_alaw_vocoder.py
@@ -41,7 +41,7 @@ class test_alaw_vocoder (gr_unittest.TestCase):
self.tb.run()
actual_result = snk.data()
self.assertEqual(data, actual_result)
-
+
if __name__ == '__main__':
gr_unittest.run(test_alaw_vocoder, "test_alaw_vocoder.xml")
diff --git a/gr-wavelet/include/gnuradio/wavelet/squash_ff.h b/gr-wavelet/include/gnuradio/wavelet/squash_ff.h
index 5f3f0a0ad5..fd5dfb10c6 100644
--- a/gr-wavelet/include/gnuradio/wavelet/squash_ff.h
+++ b/gr-wavelet/include/gnuradio/wavelet/squash_ff.h
@@ -26,7 +26,7 @@
#include <gnuradio/wavelet/api.h>
#include <gnuradio/sync_block.h>
-namespace gr {
+namespace gr {
namespace wavelet {
/*!
@@ -34,10 +34,10 @@ namespace gr {
* spectral points, using gsl interpolation
* \ingroup misc
*/
- class WAVELET_API squash_ff : virtual public sync_block
+ class WAVELET_API squash_ff : virtual public sync_block
{
public:
-
+
// gr::wavelet::squash_ff::sptr
typedef boost::shared_ptr<squash_ff> sptr;
diff --git a/gr-wavelet/include/gnuradio/wavelet/wavelet_ff.h b/gr-wavelet/include/gnuradio/wavelet/wavelet_ff.h
index 3cdf105ac3..3012b26711 100644
--- a/gr-wavelet/include/gnuradio/wavelet/wavelet_ff.h
+++ b/gr-wavelet/include/gnuradio/wavelet/wavelet_ff.h
@@ -26,7 +26,7 @@
#include <gnuradio/wavelet/api.h>
#include <gnuradio/sync_block.h>
-namespace gr {
+namespace gr {
namespace wavelet {
/*!
@@ -49,7 +49,7 @@ namespace gr {
int order = 20,
bool forward = true);
};
-
+
} /* namespace wavelet */
} /* namespace gr */
diff --git a/gr-wavelet/include/gnuradio/wavelet/wvps_ff.h b/gr-wavelet/include/gnuradio/wavelet/wvps_ff.h
index 2daa000cfb..042201279e 100644
--- a/gr-wavelet/include/gnuradio/wavelet/wvps_ff.h
+++ b/gr-wavelet/include/gnuradio/wavelet/wvps_ff.h
@@ -28,7 +28,7 @@
class wavelet_wvps_ff;
-namespace gr {
+namespace gr {
namespace wavelet {
/*!
diff --git a/gr-wavelet/lib/CMakeLists.txt b/gr-wavelet/lib/CMakeLists.txt
index 1fab820dd7..99c32aac19 100644
--- a/gr-wavelet/lib/CMakeLists.txt
+++ b/gr-wavelet/lib/CMakeLists.txt
@@ -91,3 +91,19 @@ GR_LIBRARY_FOO(gnuradio-wavelet RUNTIME_COMPONENT "wavelet_runtime" DEVEL_COMPON
add_dependencies(gnuradio-wavelet
wavelet_generated_includes wavelet_generated_swigs
gnuradio-runtime)
+
+if(ENABLE_STATIC_LIBS)
+ add_library(gnuradio-wavelet_static STATIC ${gr_wavelet_sources})
+
+ add_dependencies(gnuradio-wavelet_static wavelet_generated_includes
+ gnuradio-runtime_static)
+
+ if(NOT WIN32)
+ set_target_properties(gnuradio-wavelet_static
+ PROPERTIES OUTPUT_NAME gnuradio-wavelet)
+ endif(NOT WIN32)
+
+ install(TARGETS gnuradio-wavelet_static
+ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT "wavelet_devel" # .lib file
+ )
+endif(ENABLE_STATIC_LIBS)
diff --git a/gr-wavelet/lib/squash_ff_impl.cc b/gr-wavelet/lib/squash_ff_impl.cc
index 47f8c616d5..97c0cd240f 100644
--- a/gr-wavelet/lib/squash_ff_impl.cc
+++ b/gr-wavelet/lib/squash_ff_impl.cc
@@ -31,7 +31,7 @@
// expect input vector of igrid.size y-values,
// produce output vector of ogrid.size y-values
-namespace gr {
+namespace gr {
namespace wavelet {
squash_ff::sptr squash_ff::make(const std::vector<float> &igrid,
@@ -55,7 +55,7 @@ namespace gr {
d_igrid[i] = igrid[i];
for (unsigned int i = 0; i < d_onum; i++)
d_ogrid[i] = ogrid[i];
-
+
d_accel = gsl_interp_accel_alloc();
d_spline = gsl_spline_alloc(gsl_interp_cspline, d_inum); // FIXME check w/ Frank
}
@@ -76,17 +76,17 @@ namespace gr {
{
const float *in = (const float *) input_items[0];
float *out = (float *) output_items[0];
-
+
for (int count = 0; count < noutput_items; count++) {
-
+
for (unsigned int i = 0; i < d_inum; i++)
d_iwork[i] = in[i];
-
+
gsl_spline_init(d_spline, d_igrid, d_iwork, d_inum);
-
+
for (unsigned int i = 0; i < d_onum; i++)
out[i] = gsl_spline_eval(d_spline, d_ogrid[i], d_accel);
-
+
in += d_inum;
out += d_onum;
}
diff --git a/gr-wavelet/lib/squash_ff_impl.h b/gr-wavelet/lib/squash_ff_impl.h
index b9ab994558..933ee5288c 100644
--- a/gr-wavelet/lib/squash_ff_impl.h
+++ b/gr-wavelet/lib/squash_ff_impl.h
@@ -31,7 +31,7 @@
namespace gr {
namespace wavelet {
-
+
class WAVELET_API squash_ff_impl : public squash_ff
{
size_t d_inum;
diff --git a/gr-wavelet/lib/wavelet_ff_impl.cc b/gr-wavelet/lib/wavelet_ff_impl.cc
index 6b313574b3..f05b1e3ce2 100644
--- a/gr-wavelet/lib/wavelet_ff_impl.cc
+++ b/gr-wavelet/lib/wavelet_ff_impl.cc
@@ -43,8 +43,8 @@ namespace gr {
return gnuradio::get_initial_sptr(new wavelet_ff_impl(size, order, forward));
}
- wavelet_ff_impl::wavelet_ff_impl(int size,
- int order,
+ wavelet_ff_impl::wavelet_ff_impl(int size,
+ int order,
bool forward)
: sync_block("wavelet_ff",
io_signature::make(1, 1, size * sizeof(float)),
@@ -78,11 +78,11 @@ namespace gr {
{
const float *in = (const float *) input_items[0];
float *out = (float *) output_items[0];
-
+
for (int count = 0; count < noutput_items; count++) {
for (int i = 0; i < d_size; i++)
d_temp[i] = in[i];
-
+
if (d_forward)
gsl_wavelet_transform_forward(d_wavelet,
d_temp,
@@ -95,14 +95,14 @@ namespace gr {
1,
d_size,
d_workspace);
-
+
for (int i = 0; i < d_size; i++)
out[i] = d_temp[i];
-
+
in += d_size;
out += d_size;
}
-
+
return noutput_items;
}
diff --git a/gr-wavelet/lib/wvps_ff_impl.cc b/gr-wavelet/lib/wvps_ff_impl.cc
index 3dd6bf4ba9..40dcfe2a9d 100644
--- a/gr-wavelet/lib/wvps_ff_impl.cc
+++ b/gr-wavelet/lib/wvps_ff_impl.cc
@@ -61,41 +61,41 @@ namespace gr {
{
const float *in = (const float *) input_items[0];
float *out = (float *) output_items[0];
-
+
for (int count = 0; count < noutput_items; count++) {
-
+
// any power?
-
+
if (in[0] == 0.0) {
for (int i = 0; i < d_olen; i++)
out[i] = 0.0;
-
+
} else {
-
+
// get power normalization from 0-th wavelet coefficient
-
+
float scl = 1.0/(in[0]*in[0]);
int k = 1;
-
+
// sum powers over sequences of bins,
// sequence lengths in increasing powers of 2
-
+
for (int e = 0; e < d_olen; e++) {
int m = 01<<e;
float sum = 0.0;
-
+
for (int l = 0; l < m; l++)
sum += (in[k+l]*in[k+l]);
-
+
out[e] = scl*sum;
k += m;
}
}
-
+
in += d_ilen;
out += d_olen;
}
-
+
return noutput_items;
}
diff --git a/gr-wxgui/grc/panel.py b/gr-wxgui/grc/panel.py
index 9bcb464701..8ca426e098 100644
--- a/gr-wxgui/grc/panel.py
+++ b/gr-wxgui/grc/panel.py
@@ -33,7 +33,7 @@ class Panel(wx.Panel):
def Add(self, win):
"""
Add a window to the wx vbox.
-
+
Args:
win: the wx window
"""
@@ -42,7 +42,7 @@ class Panel(wx.Panel):
def GridAdd(self, win, row, col, row_span=1, col_span=1):
"""
Add a window to the wx grid at the given position.
-
+
Args:
win: the wx window
row: the row specification (integer >= 0)
diff --git a/gr-wxgui/grc/top_block_gui.py b/gr-wxgui/grc/top_block_gui.py
index a0d9f94628..3a51450bc7 100644
--- a/gr-wxgui/grc/top_block_gui.py
+++ b/gr-wxgui/grc/top_block_gui.py
@@ -31,7 +31,7 @@ class top_block_gui(gr.top_block):
"""
Initialize the gr top block.
Create the wx gui elements.
-
+
Args:
title: the main window title
size: the main window size tuple in pixels
diff --git a/gr-wxgui/include/gnuradio/wxgui/oscope_guts.h b/gr-wxgui/include/gnuradio/wxgui/oscope_guts.h
index c1a521acf2..2870d219f6 100644
--- a/gr-wxgui/include/gnuradio/wxgui/oscope_guts.h
+++ b/gr-wxgui/include/gnuradio/wxgui/oscope_guts.h
@@ -30,7 +30,7 @@
namespace gr {
namespace wxgui {
-
+
/*!
* \brief guts of oscilloscope trigger and buffer module
*
@@ -45,7 +45,7 @@ namespace gr {
* data and 50% post-trigger data.
*/
- class WXGUI_API oscope_guts
+ class WXGUI_API oscope_guts
{
public:
static const int MAX_CHANNELS = 8;
diff --git a/gr-wxgui/lib/CMakeLists.txt b/gr-wxgui/lib/CMakeLists.txt
index c33a7b9a33..02b2e94dce 100644
--- a/gr-wxgui/lib/CMakeLists.txt
+++ b/gr-wxgui/lib/CMakeLists.txt
@@ -75,3 +75,16 @@ target_link_libraries(gnuradio-wxgui ${wxgui_libs})
GR_LIBRARY_FOO(gnuradio-wxgui
RUNTIME_COMPONENT "wxgui_runtime"
DEVEL_COMPONENT "wxgui_devel")
+
+if(ENABLE_STATIC_LIBS)
+ add_library(gnuradio-wxgui_static STATIC ${gr_wxgui_sources})
+
+ if(NOT WIN32)
+ set_target_properties(gnuradio-wxgui_static
+ PROPERTIES OUTPUT_NAME gnuradio-wxgui)
+ endif(NOT WIN32)
+
+ install(TARGETS gnuradio-wxgui_static
+ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT "wxgui_devel" # .lib file
+ )
+endif(ENABLE_STATIC_LIBS)
diff --git a/gr-wxgui/lib/oscope_guts.cc b/gr-wxgui/lib/oscope_guts.cc
index d406932dae..3e826ff386 100644
--- a/gr-wxgui/lib/oscope_guts.cc
+++ b/gr-wxgui/lib/oscope_guts.cc
@@ -34,7 +34,7 @@
namespace gr {
namespace wxgui {
-
+
/*
* Bad performance if it's large, and flaky triggering if it's too small
*/
diff --git a/gr-wxgui/lib/oscope_sink_x.cc b/gr-wxgui/lib/oscope_sink_x.cc
index c97495fe53..ac865318ec 100644
--- a/gr-wxgui/lib/oscope_sink_x.cc
+++ b/gr-wxgui/lib/oscope_sink_x.cc
@@ -30,7 +30,7 @@
namespace gr {
namespace wxgui {
-
+
oscope_sink_x::oscope_sink_x(const std::string name,
gr::io_signature::sptr input_sig,
double sampling_rate)
diff --git a/gr-wxgui/python/wxgui/common.py b/gr-wxgui/python/wxgui/common.py
index 48a62a28ab..d466bdd9d5 100644
--- a/gr-wxgui/python/wxgui/common.py
+++ b/gr-wxgui/python/wxgui/common.py
@@ -65,10 +65,10 @@ class wxgui_hb(object):
"""
Create a function that will cache the visibility flag,
and only call the handler when that flag changes.
-
+
Args:
handler: the function to call on a change
-
+
Returns:
a function of 1 argument
"""
@@ -89,7 +89,7 @@ class wxgui_hb(object):
Bind a handler to a window when its visibility changes.
Specifically, call the handler when the window visibility changes.
This condition is checked on every update ui event.
-
+
Args:
win: the wx window
handler: a function of 1 param
@@ -133,7 +133,7 @@ def _register_access_method(destination, controller, key):
def register_access_methods(destination, controller):
"""
Register setter and getter functions in the destination object for all keys in the controller.
-
+
Args:
destination: the object to get new setter and getter methods
controller: the pubsub controller
@@ -173,10 +173,10 @@ import math
def get_exp(num):
"""
Get the exponent of the number in base 10.
-
+
Args:
num: the floating point number
-
+
Returns:
the exponent as an integer
"""
@@ -186,10 +186,10 @@ def get_exp(num):
def get_clean_num(num):
"""
Get the closest clean number match to num with bases 1, 2, 5.
-
+
Args:
num: the number
-
+
Returns:
the closest number
"""
@@ -202,10 +202,10 @@ def get_clean_num(num):
def get_clean_incr(num):
"""
Get the next higher clean number with bases 1, 2, 5.
-
+
Args:
num: the number
-
+
Returns:
the next higher number
"""
@@ -224,10 +224,10 @@ def get_clean_incr(num):
def get_clean_decr(num):
"""
Get the next lower clean number with bases 1, 2, 5.
-
+
Args:
num: the number
-
+
Returns:
the next lower number
"""
@@ -246,10 +246,10 @@ def get_clean_decr(num):
def get_min_max(samples):
"""
Get the minimum and maximum bounds for an array of samples.
-
+
Args:
samples: the array of real values
-
+
Returns:
a tuple of min, max
"""
@@ -264,10 +264,10 @@ def get_min_max(samples):
def get_min_max_fft(fft_samps):
"""
Get the minimum and maximum bounds for an array of fft samples.
-
+
Args:
samples: the array of real values
-
+
Returns:
a tuple of min, max
"""
diff --git a/gr-wxgui/python/wxgui/fft_window.py b/gr-wxgui/python/wxgui/fft_window.py
index 80ecf526b2..86023e3f88 100644
--- a/gr-wxgui/python/wxgui/fft_window.py
+++ b/gr-wxgui/python/wxgui/fft_window.py
@@ -61,7 +61,7 @@ class control_panel(wx.Panel):
def __init__(self, parent):
"""
Create a new control panel.
-
+
Args:
parent: the wx parent window
"""
@@ -327,7 +327,7 @@ class fft_window(wx.Panel, pubsub.pubsub):
If real, keep take only the positive bins.
Plot the samples onto the grid as channel 1.
If peak hold is enabled, plot peak vals as channel 2.
-
+
Args:
msg: the fft array as a character array
"""
diff --git a/gr-wxgui/python/wxgui/fftsink_gl.py b/gr-wxgui/python/wxgui/fftsink_gl.py
index 272a2456ce..a0b245c98a 100644
--- a/gr-wxgui/python/wxgui/fftsink_gl.py
+++ b/gr-wxgui/python/wxgui/fftsink_gl.py
@@ -130,7 +130,7 @@ class _fft_sink_base(gr.hier_block2, common.wxgui_hb):
setattr(self.win, 'set_peak_hold', getattr(self, 'set_peak_hold')) #BACKWARDS
#connect
self.wxgui_connect(self, fft, sink)
-
+
def set_callback(self,callb):
self.win.set_callback(callb)
diff --git a/gr-wxgui/python/wxgui/fftsink_nongl.py b/gr-wxgui/python/wxgui/fftsink_nongl.py
index f567a22256..be69e41578 100644
--- a/gr-wxgui/python/wxgui/fftsink_nongl.py
+++ b/gr-wxgui/python/wxgui/fftsink_nongl.py
@@ -170,7 +170,7 @@ class fft_sink_c(gr.hier_block2, fft_sink_base):
sample_rate=sample_rate, fft_size=fft_size,
fft_rate=fft_rate,
average=average, avg_alpha=avg_alpha, title=title,
- peak_hold=peak_hold, use_persistence=use_persistence,
+ peak_hold=peak_hold, use_persistence=use_persistence,
persist_alpha=persist_alpha)
self.s2p = blocks.stream_to_vector(gr.sizeof_gr_complex, self.fft_size)
diff --git a/gr-wxgui/python/wxgui/forms/__init__.py b/gr-wxgui/python/wxgui/forms/__init__.py
index 67d3b4a88a..058fa2ec28 100644
--- a/gr-wxgui/python/wxgui/forms/__init__.py
+++ b/gr-wxgui/python/wxgui/forms/__init__.py
@@ -48,7 +48,7 @@ import wx
class static_box_sizer(wx.StaticBoxSizer):
"""
A box sizer with label and border.
-
+
Args:
parent: the parent widget
sizer: add this widget to sizer if provided (optional)
diff --git a/gr-wxgui/python/wxgui/forms/forms.py b/gr-wxgui/python/wxgui/forms/forms.py
index 80822ae174..db55472210 100644
--- a/gr-wxgui/python/wxgui/forms/forms.py
+++ b/gr-wxgui/python/wxgui/forms/forms.py
@@ -436,7 +436,7 @@ class toggle_button(button):
"""
Create a dual-state button.
This button will alternate between True and False when clicked.
-
+
Args:
parent: the parent widget
sizer: add this widget to sizer if provided (optional)
diff --git a/gr-wxgui/python/wxgui/histo_window.py b/gr-wxgui/python/wxgui/histo_window.py
index f830dc83bd..424ee7bbdb 100644
--- a/gr-wxgui/python/wxgui/histo_window.py
+++ b/gr-wxgui/python/wxgui/histo_window.py
@@ -48,7 +48,7 @@ class control_panel(wx.Panel):
def __init__(self, parent):
"""
Create a new control panel.
-
+
Args:
parent: the wx parent window
"""
@@ -137,7 +137,7 @@ class histo_window(wx.Panel, pubsub.pubsub):
def handle_msg(self, msg):
"""
Handle the message from the fft sink message queue.
-
+
Args:
msg: the frame as a character array
"""
diff --git a/gr-wxgui/python/wxgui/number_window.py b/gr-wxgui/python/wxgui/number_window.py
index 751047db94..2e54f8460f 100644
--- a/gr-wxgui/python/wxgui/number_window.py
+++ b/gr-wxgui/python/wxgui/number_window.py
@@ -54,7 +54,7 @@ class control_panel(wx.Panel):
def __init__(self, parent):
"""
Create a new control panel.
-
+
Args:
parent: the wx parent window
"""
@@ -178,7 +178,7 @@ class number_window(wx.Panel, pubsub.pubsub):
"""
Show or hide the gauges.
If this is real, never show the imaginary gauge.
-
+
Args:
show_gauge: true to show
"""
@@ -191,7 +191,7 @@ class number_window(wx.Panel, pubsub.pubsub):
Convert the string based message into a float or complex.
If more than one number was read, only take the last number.
Perform peak hold operations, set the gauges and display.
-
+
Args:
event: event.data is the number sample as a character array
"""
diff --git a/gr-wxgui/python/wxgui/plotter/common.py b/gr-wxgui/python/wxgui/plotter/common.py
index 9af636245d..c296b1fa79 100644
--- a/gr-wxgui/python/wxgui/plotter/common.py
+++ b/gr-wxgui/python/wxgui/plotter/common.py
@@ -73,7 +73,7 @@ def get_si_components(num):
def sci_format(num):
"""
Format a floating point number into scientific notation.
-
+
Args:
num: the number to format
@@ -87,11 +87,11 @@ def sci_format(num):
def eng_format(num, units=''):
"""
Format a floating point number into engineering notation.
-
+
Args:
num: the number to format
units: the units to append
-
+
Returns:
a label string
"""
diff --git a/gr-wxgui/python/wxgui/plotter/grid_plotter_base.py b/gr-wxgui/python/wxgui/plotter/grid_plotter_base.py
index e1ac311deb..bc48ad72f5 100644
--- a/gr-wxgui/python/wxgui/plotter/grid_plotter_base.py
+++ b/gr-wxgui/python/wxgui/plotter/grid_plotter_base.py
@@ -78,7 +78,7 @@ class grid_plotter_base(plotter_base):
def set_point_label_coordinate(self, coor):
"""
Set the point label coordinate.
-
+
Args:
coor: the coordinate x, y tuple or None
"""
@@ -87,7 +87,7 @@ class grid_plotter_base(plotter_base):
self._point_label_cache.changed(True)
self.update()
self.unlock()
-
+
def call_freq_callback(self, coor):
try:
x, y = self._point_label_coordinate
@@ -102,7 +102,7 @@ class grid_plotter_base(plotter_base):
x_val = x_win_scalar*(self.x_max-self.x_min) + self.x_min
y_val = y_win_scalar*(self.y_max-self.y_min) + self.y_min
self._call_callback(x_val, y_val)
-
+
def enable_grid_aspect_ratio(self, enable=None):
"""
Enable/disable the grid aspect ratio.
@@ -371,7 +371,7 @@ class grid_plotter_base(plotter_base):
def enable_grid_lines(self, enable=None):
"""
Enable/disable the grid lines.
-
+
Args:
enable: true to enable
diff --git a/gr-wxgui/python/wxgui/plotter/waterfall_plotter.py b/gr-wxgui/python/wxgui/plotter/waterfall_plotter.py
index 02ec67ee4c..a5601e25bc 100644
--- a/gr-wxgui/python/wxgui/plotter/waterfall_plotter.py
+++ b/gr-wxgui/python/wxgui/plotter/waterfall_plotter.py
@@ -184,10 +184,10 @@ class waterfall_plotter(grid_plotter_base):
def _call_callback(self, x_val, y_val):
if self.callback != None:
self.callback(x_val,y_val)
-
+
def set_callback(self,callback):
self.callback = callback
-
+
def _draw_legend(self):
"""
Draw the color scale legend.
diff --git a/gr-wxgui/python/wxgui/scope_window.py b/gr-wxgui/python/wxgui/scope_window.py
index 5d367d9c45..71e2b8e285 100644
--- a/gr-wxgui/python/wxgui/scope_window.py
+++ b/gr-wxgui/python/wxgui/scope_window.py
@@ -85,7 +85,7 @@ class control_panel(wx.Panel):
def __init__(self, parent):
"""
Create a new control panel.
-
+
Args:
parent: the wx parent window
"""
diff --git a/gr-wxgui/python/wxgui/waterfall_window.py b/gr-wxgui/python/wxgui/waterfall_window.py
index 9f91d17eb4..272af10ffc 100644
--- a/gr-wxgui/python/wxgui/waterfall_window.py
+++ b/gr-wxgui/python/wxgui/waterfall_window.py
@@ -61,7 +61,7 @@ class control_panel(wx.Panel):
def __init__(self, parent):
"""
Create a new control panel.
-
+
Args:
parent: the wx parent window
"""
@@ -243,7 +243,7 @@ class waterfall_window(wx.Panel, pubsub.pubsub):
def set_callback(self,callb):
self.plotter.set_callback(callb)
-
+
def autoscale(self, *args):
"""
Autoscale the waterfall plot to the last frame.
@@ -262,7 +262,7 @@ class waterfall_window(wx.Panel, pubsub.pubsub):
If complex, reorder the fft samples so the negative bins come first.
If real, keep take only the positive bins.
Send the data to the plotter.
-
+
Args:
msg: the fft array as a character array
"""
diff --git a/gr-wxgui/python/wxgui/waterfallsink_gl.py b/gr-wxgui/python/wxgui/waterfallsink_gl.py
index ead97df1e7..c763d591b2 100644
--- a/gr-wxgui/python/wxgui/waterfallsink_gl.py
+++ b/gr-wxgui/python/wxgui/waterfallsink_gl.py
@@ -118,7 +118,7 @@ class _waterfall_sink_base(gr.hier_block2, common.wxgui_hb):
def set_callback(self,callb):
self.win.set_callback(callb)
-
+
class waterfall_sink_f(_waterfall_sink_base):
_fft_chain = logpwrfft.logpwrfft_f
_item_size = gr.sizeof_float
diff --git a/gr-zeromq/lib/CMakeLists.txt b/gr-zeromq/lib/CMakeLists.txt
index cc62c79f35..07ac36bc9c 100644
--- a/gr-zeromq/lib/CMakeLists.txt
+++ b/gr-zeromq/lib/CMakeLists.txt
@@ -69,3 +69,16 @@ list(APPEND zeromq_libs
add_library(gnuradio-zeromq SHARED ${zeromq_sources})
target_link_libraries(gnuradio-zeromq ${zeromq_libs})
GR_LIBRARY_FOO(gnuradio-zeromq RUNTIME_COMPONENT "zeromq_runtime" DEVEL_COMPONENT "zeromq_devel")
+
+if(ENABLE_STATIC_LIBS)
+ add_library(gnuradio-zeromq_static STATIC ${zeromq_sources})
+
+ if(NOT WIN32)
+ set_target_properties(gnuradio-zeromq_static
+ PROPERTIES OUTPUT_NAME gnuradio-zeromq)
+ endif(NOT WIN32)
+
+ install(TARGETS gnuradio-zeromq_static
+ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT "zeromq_devel" # .lib file
+ )
+endif(ENABLE_STATIC_LIBS)
diff --git a/grc/base/Connection.py b/grc/base/Connection.py
index 252b7deac1..b35ca91050 100644
--- a/grc/base/Connection.py
+++ b/grc/base/Connection.py
@@ -25,13 +25,13 @@ class Connection(Element):
def __init__(self, flow_graph, porta, portb):
"""
Make a new connection given the parent and 2 ports.
-
+
Args:
flow_graph: the parent of this element
porta: a port (any direction)
portb: a port (any direction)
@throws Error cannot make connection
-
+
Returns:
a new connection
"""
@@ -55,10 +55,10 @@ class Connection(Element):
self._source = source
self._sink = sink
if source.get_type() == 'bus':
-
+
sources = source.get_associated_ports();
sinks = sink.get_associated_ports();
-
+
for i in range(len(sources)):
try:
flow_graph.connect(sources[i], sinks[i]);
@@ -89,7 +89,7 @@ class Connection(Element):
def get_enabled(self):
"""
Get the enabled state of this connection.
-
+
Returns:
true if source and sink blocks are enabled
"""
@@ -108,7 +108,7 @@ class Connection(Element):
def export_data(self):
"""
Export this connection's info.
-
+
Returns:
a nested data odict
"""
diff --git a/grc/base/Element.py b/grc/base/Element.py
index be73ab264f..9c697b6393 100644
--- a/grc/base/Element.py
+++ b/grc/base/Element.py
@@ -36,7 +36,7 @@ class Element(object):
def is_valid(self):
"""
Is this element valid?
-
+
Returns:
true when the element is enabled and has no error messages
"""
@@ -45,7 +45,7 @@ class Element(object):
def add_error_message(self, msg):
"""
Add an error message to the list of errors.
-
+
Args:
msg: the error message string
"""
@@ -56,7 +56,7 @@ class Element(object):
Get the list of error messages from this element and all of its children.
Do not include the error messages from disabled children.
Cleverly indent the children error messages for printing purposes.
-
+
Returns:
a list of error message strings
"""
diff --git a/grc/base/FlowGraph.py b/grc/base/FlowGraph.py
index 3c249ff71b..519d399aa8 100644
--- a/grc/base/FlowGraph.py
+++ b/grc/base/FlowGraph.py
@@ -26,10 +26,10 @@ class FlowGraph(Element):
def __init__(self, platform):
"""
Make a flow graph from the arguments.
-
+
Args:
platform: a platforms with blocks and contrcutors
-
+
Returns:
the flow graph object
"""
@@ -41,10 +41,10 @@ class FlowGraph(Element):
def _get_unique_id(self, base_id=''):
"""
Get a unique id starting with the base id.
-
+
Args:
base_id: the id starts with this and appends a count
-
+
Returns:
a unique id
"""
@@ -58,7 +58,7 @@ class FlowGraph(Element):
def __str__(self): return 'FlowGraph - %s(%s)'%(self.get_option('title'), self.get_option('id'))
def rewrite(self):
def refactor_bus_structure():
-
+
for block in self.get_blocks():
for direc in ['source', 'sink']:
if direc == 'source':
@@ -69,11 +69,11 @@ class FlowGraph(Element):
get_p = block.get_sinks;
get_p_gui = block.get_sinks_gui
bus_structure = block.form_bus_structure('sink');
-
+
if 'bus' in map(lambda a: a.get_type(), get_p_gui()):
-
-
-
+
+
+
if len(get_p_gui()) > len(bus_structure):
times = range(len(bus_structure), len(get_p_gui()));
for i in times:
@@ -84,17 +84,17 @@ class FlowGraph(Element):
n = {'name':'bus','type':'bus'};
if True in map(lambda a: isinstance(a.get_nports(), int), get_p()):
n['nports'] = str(1);
-
- times = range(len(get_p_gui()), len(bus_structure));
-
+
+ times = range(len(get_p_gui()), len(bus_structure));
+
for i in times:
n['key'] = str(len(get_p()));
n = odict(n);
port = block.get_parent().get_parent().Port(block=block, n=n, dir=direc);
get_p().append(port);
-
-
-
+
+
+
for child in self.get_children(): child.rewrite()
refactor_bus_structure();
@@ -102,10 +102,10 @@ class FlowGraph(Element):
"""
Get the option for a given key.
The option comes from the special options block.
-
+
Args:
key: the param key for the options block
-
+
Returns:
the value held by that param
"""
@@ -132,7 +132,7 @@ class FlowGraph(Element):
"""
Get a list of all the elements.
Always ensure that the options block is in the list (only once).
-
+
Returns:
the element list
"""
@@ -146,7 +146,7 @@ class FlowGraph(Element):
def get_enabled_blocks(self):
"""
Get a list of all blocks that are enabled.
-
+
Returns:
a list of blocks
"""
@@ -155,7 +155,7 @@ class FlowGraph(Element):
def get_enabled_connections(self):
"""
Get a list of all connections that are enabled.
-
+
Returns:
a list of connections
"""
@@ -165,10 +165,10 @@ class FlowGraph(Element):
"""
Get a new block of the specified key.
Add the block to the list of elements.
-
+
Args:
key: the block key
-
+
Returns:
the new block or None if not found
"""
@@ -184,12 +184,12 @@ class FlowGraph(Element):
def connect(self, porta, portb):
"""
Create a connection between porta and portb.
-
+
Args:
porta: a port
portb: another port
@throw Exception bad connection
-
+
Returns:
the new connection
"""
@@ -223,7 +223,7 @@ class FlowGraph(Element):
def evaluate(self, expr):
"""
Evaluate the expression.
-
+
Args:
expr: the string expression
@throw NotImplementedError
@@ -237,7 +237,7 @@ class FlowGraph(Element):
"""
Export this flow graph to nested data.
Export all block and connection data.
-
+
Returns:
a nested data odict
"""
@@ -253,7 +253,7 @@ class FlowGraph(Element):
Import blocks and connections into this flow graph.
Clear this flowgraph of all previous blocks and connections.
Any blocks or connections in error will be ignored.
-
+
Args:
n: the nested data odict
"""
diff --git a/grc/base/Param.py b/grc/base/Param.py
index 33ba7c3dbb..94be8b0fe0 100644
--- a/grc/base/Param.py
+++ b/grc/base/Param.py
@@ -63,7 +63,7 @@ class Param(Element):
def __init__(self, block, n):
"""
Make a new param from nested data.
-
+
Args:
block: the parent element
n: the nested odict
@@ -162,7 +162,7 @@ class Param(Element):
Get the repr (nice string format) for this param.
Just return the value (special case enum).
Derived classes can handle complex formatting.
-
+
Returns:
the string representation
"""
@@ -189,7 +189,7 @@ class Param(Element):
def export_data(self):
"""
Export this param's key/value.
-
+
Returns:
a nested data odict
"""
diff --git a/grc/base/ParseXML.py b/grc/base/ParseXML.py
index abb6576ac2..70af65192d 100644
--- a/grc/base/ParseXML.py
+++ b/grc/base/ParseXML.py
@@ -35,7 +35,7 @@ class XMLSyntaxError(Exception):
def validate_dtd(xml_file, dtd_file=None):
"""
Validate an xml file against its dtd.
-
+
Args:
xml_file: the xml file
dtd_file: the optional dtd file
@@ -63,10 +63,10 @@ def validate_dtd(xml_file, dtd_file=None):
def from_file(xml_file):
"""
Create nested data from an xml file using the from xml helper.
-
+
Args:
xml_file: the xml file path
-
+
Returns:
the nested data
"""
@@ -77,10 +77,10 @@ def from_file(xml_file):
def _from_file(xml):
"""
Recursivly parse the xml tree into nested data format.
-
+
Args:
xml: the xml tree
-
+
Returns:
the nested data
"""
@@ -102,7 +102,7 @@ def _from_file(xml):
def to_file(nested_data, xml_file):
"""
Write an xml file and use the to xml helper method to load it.
-
+
Args:
nested_data: the nested data
xml_file: the xml file path
@@ -114,10 +114,10 @@ def to_file(nested_data, xml_file):
def _to_file(nested_data):
"""
Recursivly parse the nested data into xml tree format.
-
+
Args:
nested_data: the nested data
-
+
Returns:
the xml tree filled with child nodes
"""
diff --git a/grc/base/Platform.py b/grc/base/Platform.py
index 187a50c01c..d322a16e83 100644
--- a/grc/base/Platform.py
+++ b/grc/base/Platform.py
@@ -35,7 +35,7 @@ class Platform(_Element):
license='', website=None, colors=None):
"""
Make a platform from the arguments.
-
+
Args:
name: the platform name
version: the version string
@@ -47,7 +47,7 @@ class Platform(_Element):
colors: a list of title, color_spec tuples
license: a multi-line license (first line is copyright)
website: the website url for this platform
-
+
Returns:
a platform object
"""
@@ -125,10 +125,10 @@ class Platform(_Element):
"""
Parse a saved flow graph file.
Ensure that the file exists, and passes the dtd check.
-
+
Args:
flow_graph_file: the flow graph file
-
+
Returns:
nested data
@throws exception if the validation fails
@@ -143,7 +143,7 @@ class Platform(_Element):
Load a block tree with categories and blocks.
Step 1: Load all blocks from the xml specification.
Step 2: Load blocks with builtin category specifications.
-
+
Args:
block_tree: the block tree object
"""
diff --git a/grc/base/Port.py b/grc/base/Port.py
index b7de5301f1..edc309bf05 100644
--- a/grc/base/Port.py
+++ b/grc/base/Port.py
@@ -24,7 +24,7 @@ class Port(Element):
def __init__(self, block, n, dir):
"""
Make a new port from nested data.
-
+
Args:
block: the parent element
n: the nested odict
@@ -66,7 +66,7 @@ class Port(Element):
number = ''
if self.get_type() == 'bus':
busses = filter(lambda a: a._dir == self._dir, self.get_parent().get_ports_gui());
-
+
number = str(busses.index(self)) + '#' + str(len(self.get_associated_ports()));
return self._name + number
@@ -78,7 +78,7 @@ class Port(Element):
def get_connections(self):
"""
Get all connections that use this port.
-
+
Returns:
a list of connection objects
"""
@@ -89,7 +89,7 @@ class Port(Element):
def get_enabled_connections(self):
"""
Get all enabled connections that use this port.
-
+
Returns:
a list of connection objects
"""
@@ -107,7 +107,7 @@ class Port(Element):
get_p = self.get_parent().get_sinks;
bus_structure = self.get_parent().current_bus_structure['sink'];
direc = 'sink'
-
+
ports = [i for i in get_p() if not i.get_type() == 'bus'];
if bus_structure:
busses = [i for i in get_p() if i.get_type() == 'bus'];
diff --git a/grc/base/odict.py b/grc/base/odict.py
index 0c03d753f6..70ab67d053 100644
--- a/grc/base/odict.py
+++ b/grc/base/odict.py
@@ -50,7 +50,7 @@ class odict(DictMixin):
"""
Insert the new key, value entry after the entry given by the position key.
If the positional key is None, insert at the end.
-
+
Args:
pos_key: the positional key
key: the key for the new entry
@@ -65,7 +65,7 @@ class odict(DictMixin):
"""
Insert the new key, value entry before the entry given by the position key.
If the positional key is None, insert at the begining.
-
+
Args:
pos_key: the positional key
key: the key for the new entry
@@ -79,10 +79,10 @@ class odict(DictMixin):
def find(self, key):
"""
Get the value for this key if exists.
-
+
Args:
key: the key to search for
-
+
Returns:
the value or None
"""
@@ -92,10 +92,10 @@ class odict(DictMixin):
def findall(self, key):
"""
Get a list of values for this key.
-
+
Args:
key: the key to search for
-
+
Returns:
a list of values or empty list
"""
diff --git a/grc/blocks/bus_sink.xml b/grc/blocks/bus_sink.xml
index 273b4c517a..029820dc2c 100644
--- a/grc/blocks/bus_sink.xml
+++ b/grc/blocks/bus_sink.xml
@@ -8,13 +8,13 @@
<name>Bus Sink</name>
<key>bus_sink</key>
<make>$yesno.yesno</make>
-
+
<param>
<name>On/Off</name>
<key>yesno</key>
<type>enum</type>
<option>
- <name>On</name>
+ <name>On</name>
<key>on</key>
<opt>yesno:True</opt>
</option>
@@ -23,5 +23,5 @@
<key>off</key>
<opt>yesno:False</opt>
</option>
- </param>
+ </param>
</block>
diff --git a/grc/blocks/bus_source.xml b/grc/blocks/bus_source.xml
index 15e4a9f31b..e5b5c2b9bf 100644
--- a/grc/blocks/bus_source.xml
+++ b/grc/blocks/bus_source.xml
@@ -8,13 +8,13 @@
<name>Bus Source</name>
<key>bus_source</key>
<make>$yesno.yesno</make>
-
+
<param>
<name>On/Off</name>
<key>yesno</key>
<type>enum</type>
<option>
- <name>On</name>
+ <name>On</name>
<key>on</key>
<opt>yesno:True</opt>
</option>
@@ -23,5 +23,5 @@
<key>off</key>
<opt>yesno:False</opt>
</option>
- </param>
+ </param>
</block>
diff --git a/grc/blocks/bus_structure_sink.xml b/grc/blocks/bus_structure_sink.xml
index df16657282..3adac92810 100644
--- a/grc/blocks/bus_structure_sink.xml
+++ b/grc/blocks/bus_structure_sink.xml
@@ -8,11 +8,11 @@
<name>Bus Sink Structure</name>
<key>bus_structure_sink</key>
<make>None</make>
-
+
<param>
<name>Structure</name>
<key>struct</key>
<value></value>
<type>raw</type>
- </param>
+ </param>
</block>
diff --git a/grc/blocks/bus_structure_source.xml b/grc/blocks/bus_structure_source.xml
index 27652ca3b3..34e7c049a2 100644
--- a/grc/blocks/bus_structure_source.xml
+++ b/grc/blocks/bus_structure_source.xml
@@ -8,11 +8,11 @@
<name>Bus Source Structure</name>
<key>bus_structure_source</key>
<make>None</make>
-
+
<param>
<name>Structure</name>
<key>struct</key>
<value></value>
<type>raw</type>
- </param>
+ </param>
</block>
diff --git a/grc/blocks/pad_source.xml b/grc/blocks/pad_source.xml
index b6faebfc68..745e48c080 100644
--- a/grc/blocks/pad_source.xml
+++ b/grc/blocks/pad_source.xml
@@ -62,7 +62,7 @@ None;self.message_port_register_hier_out($label)
<value>1</value>
<type>int</type>
</param>
-
+
<param>
<name>Num Streams</name>
<key>num_streams</key>
diff --git a/grc/grc_gnuradio/blks2/error_rate.py b/grc/grc_gnuradio/blks2/error_rate.py
index 77347ef9e3..9bf387030a 100644
--- a/grc/grc_gnuradio/blks2/error_rate.py
+++ b/grc/grc_gnuradio/blks2/error_rate.py
@@ -63,7 +63,7 @@ class error_rate(gr.hier_block2):
def __init__(self, type='BER', win_size=default_win_size, bits_per_symbol=2):
"""
Error rate constructor.
-
+
Args:
type: a string 'BER' or 'SER'
win_size: the number of samples to calculate over
diff --git a/grc/grc_gnuradio/blks2/packet.py b/grc/grc_gnuradio/blks2/packet.py
index dde3ec722f..25ed3e4dce 100644
--- a/grc/grc_gnuradio/blks2/packet.py
+++ b/grc/grc_gnuradio/blks2/packet.py
@@ -71,7 +71,7 @@ class packet_encoder(gr.hier_block2):
def __init__(self, samples_per_symbol, bits_per_symbol, preamble='', access_code='', pad_for_usrp=True):
"""
packet_mod constructor.
-
+
Args:
samples_per_symbol: number of samples per symbol
bits_per_symbol: number of bits per symbol
@@ -110,7 +110,7 @@ class packet_encoder(gr.hier_block2):
def send_pkt(self, payload):
"""
Wrap the payload in a packet and push onto the message queue.
-
+
Args:
payload: string, data to send
"""
@@ -153,7 +153,7 @@ class packet_decoder(gr.hier_block2):
def __init__(self, access_code='', threshold=-1, callback=None):
"""
packet_demod constructor.
-
+
Args:
access_code: AKA sync vector
threshold: detect access_code with up to threshold bits wrong (0 -> use default)
diff --git a/grc/grc_gnuradio/blks2/selector.py b/grc/grc_gnuradio/blks2/selector.py
index 7ae664823b..24e3844658 100644
--- a/grc/grc_gnuradio/blks2/selector.py
+++ b/grc/grc_gnuradio/blks2/selector.py
@@ -27,7 +27,7 @@ class selector(gr.hier_block2):
def __init__(self, item_size, num_inputs, num_outputs, input_index, output_index):
"""
Selector constructor.
-
+
Args:
item_size: the size of the gr data stream in bytes
num_inputs: the number of inputs (integer)
@@ -58,7 +58,7 @@ class selector(gr.hier_block2):
def _indexes_valid(self):
"""
Are the input and output indexes within range of the number of inputs and outputs?
-
+
Returns:
true if input index and output index are in range
"""
@@ -90,7 +90,7 @@ class selector(gr.hier_block2):
def set_input_index(self, input_index):
"""
Change the block to the new input index if the index changed.
-
+
Args:
input_index: the new input index
"""
@@ -104,7 +104,7 @@ class selector(gr.hier_block2):
def set_output_index(self, output_index):
"""
Change the block to the new output index if the index changed.
-
+
Args:
output_index: the new output index
"""
@@ -121,7 +121,7 @@ class valve(selector):
def __init__(self, item_size, open):
"""
Constructor for valve.
-
+
Args:
item_size: the size of the gr data stream in bytes
open: true if initial valve state is open
@@ -133,7 +133,7 @@ class valve(selector):
def set_open(self, open):
"""
Callback to set open state.
-
+
Args:
open: true to set valve state to open
"""
diff --git a/grc/grc_gnuradio/blks2/tcp.py b/grc/grc_gnuradio/blks2/tcp.py
index 8613c02a17..aee90fad2c 100644
--- a/grc/grc_gnuradio/blks2/tcp.py
+++ b/grc/grc_gnuradio/blks2/tcp.py
@@ -28,12 +28,12 @@ def _get_sock_fd(addr, port, server):
Get the file descriptor for the socket.
As a client, block on connect, dup the socket descriptor.
As a server, block on accept, dup the client descriptor.
-
+
Args:
addr: the ip address string
port: the tcp port number
server: true for server mode, false for client mode
-
+
Returns:
the file descriptor number
"""
diff --git a/grc/gui/ActionHandler.py b/grc/gui/ActionHandler.py
index 6ad2d5576f..2c1c9942d7 100644
--- a/grc/gui/ActionHandler.py
+++ b/grc/gui/ActionHandler.py
@@ -49,7 +49,7 @@ class ActionHandler:
ActionHandler constructor.
Create the main window, setup the message handler, import the preferences,
and connect all of the action handlers. Finally, enter the gtk main loop and block.
-
+
Args:
file_paths: a list of flow graph file passed from command line
platform: platform module
@@ -81,7 +81,7 @@ class ActionHandler:
* some keys are ignored by the accelerators like the direction keys,
* some keys are not registered to any accelerators but are still used.
When not in focus, gtk and the accelerators handle the the key press.
-
+
Returns:
false to let gtk handle the key action
"""
@@ -95,7 +95,7 @@ class ActionHandler:
Handle the delete event from the main window.
Generated by pressing X to close, alt+f4, or right click+close.
This method in turns calls the state handler to quit.
-
+
Returns:
true
"""
@@ -175,14 +175,14 @@ class ActionHandler:
self.get_page().get_state_cache().save_new_state(self.get_flow_graph().export_data())
self.get_page().set_saved(False)
##################################################
- # Create heir block
+ # Create heir block
##################################################
elif action == Actions.BLOCK_CREATE_HIER:
# keeping track of coordinates for pasting later
coords = self.get_flow_graph().get_selected_blocks()[0].get_coordinate()
x,y = coords
- x_min = x
+ x_min = x
y_min = y
pads = [];
@@ -201,9 +201,9 @@ class ActionHandler:
# If a block parameter exists that is a parameter, create a parameter for it
if param.get_value() == flow_param.get_id():
params.append(param.get_value())
-
-
- # keep track of x,y mins for pasting later
+
+
+ # keep track of x,y mins for pasting later
(x,y) = block.get_coordinate()
if x < x_min:
x_min = x
@@ -215,8 +215,8 @@ class ActionHandler:
# Get id of connected blocks
source_id = connection.get_source().get_parent().get_id()
sink_id = connection.get_sink().get_parent().get_id()
-
- # If connected block is not in the list of selected blocks create a pad for it
+
+ # If connected block is not in the list of selected blocks create a pad for it
if self.get_flow_graph().get_block(source_id) not in self.get_flow_graph().get_selected_blocks():
pads.append({'key': connection.get_sink().get_key(), 'coord': connection.get_source().get_coordinate(), 'block_id' : block.get_id(), 'direction': 'source'})
@@ -242,7 +242,7 @@ class ActionHandler:
# Remove the default samp_rate variable block that is created
remove_me = self.get_flow_graph().get_block("samp_rate")
- self.get_flow_graph().remove_element(remove_me)
+ self.get_flow_graph().remove_element(remove_me)
# Add the param blocks along the top of the window
@@ -298,9 +298,9 @@ class ActionHandler:
# Connect the pad to the proper sinks
new_connection = self.get_flow_graph().connect(pad_source,sink)
- # update the new heir block flow graph
+ # update the new heir block flow graph
self.get_flow_graph().update()
-
+
##################################################
# Move/Rotate/Delete/Create
@@ -503,7 +503,7 @@ class ActionHandler:
self.get_flow_graph()._old_selected_port = None
self.get_flow_graph()._new_selected_port = None
Actions.ELEMENT_CREATE()
-
+
elif action == Actions.BUSSIFY_SINKS:
n = {'name':'bus', 'type':'bus'}
for b in self.get_flow_graph().get_selected_blocks():
@@ -571,7 +571,7 @@ class ExecFlowGraphThread(Thread):
def __init__ (self, action_handler):
"""
ExecFlowGraphThread constructor.
-
+
Args:
action_handler: an instance of an ActionHandler
"""
diff --git a/grc/gui/Actions.py b/grc/gui/Actions.py
index 3aa9e61472..a9ab41230d 100644
--- a/grc/gui/Actions.py
+++ b/grc/gui/Actions.py
@@ -33,10 +33,10 @@ def handle_key_press(event):
"""
Call the action associated with the key press event.
Both the key value and the mask must have a match.
-
+
Args:
event: a gtk key press event
-
+
Returns:
true if handled
"""
diff --git a/grc/gui/Block.py b/grc/gui/Block.py
index b2b391246e..49c0361eb9 100644
--- a/grc/gui/Block.py
+++ b/grc/gui/Block.py
@@ -69,7 +69,7 @@ class Block(Element):
def get_coordinate(self):
"""
Get the coordinate from the position param.
-
+
Returns:
the coordinate tuple (x, y) or (0, 0) if failure
"""
@@ -93,7 +93,7 @@ class Block(Element):
def set_coordinate(self, coor):
"""
Set the coordinate into the position param.
-
+
Args:
coor: the coordinate tuple (x, y)
"""
@@ -102,7 +102,7 @@ class Block(Element):
def get_rotation(self):
"""
Get the rotation from the position param.
-
+
Returns:
the rotation in degrees or 0 if failure
"""
@@ -116,7 +116,7 @@ class Block(Element):
def set_rotation(self, rot):
"""
Set the rotation into the position param.
-
+
Args:
rot: the rotation in degrees
"""
@@ -177,7 +177,7 @@ class Block(Element):
self.H = max(*(
[self.label_height+2*BLOCK_LABEL_PADDING] + [2*PORT_BORDER_SEPARATION + \
sum([port.H + PORT_SEPARATION for port in ports]) - PORT_SEPARATION
- for ports in (self.get_sources_gui(), self.get_sinks_gui())] +
+ for ports in (self.get_sources_gui(), self.get_sinks_gui())] +
[4*PORT_BORDER_SEPARATION + \
sum([(port.H) + PORT_SEPARATION for port in ports]) - PORT_SEPARATION
for ports in ([i for i in self.get_sources_gui() if i.get_type() == 'bus'], [i for i in self.get_sinks_gui() if i.get_type() == 'bus'])]
@@ -186,7 +186,7 @@ class Block(Element):
def draw(self, gc, window):
"""
Draw the signal block with label and inputs/outputs.
-
+
Args:
gc: the graphics context
window: the gtk window to draw on
@@ -210,11 +210,11 @@ class Block(Element):
def what_is_selected(self, coor, coor_m=None):
"""
Get the element that is selected.
-
+
Args:
coor: the (x,y) tuple
coor_m: the (x_m, y_m) tuple
-
+
Returns:
this block, a port, or None
"""
diff --git a/grc/gui/Connection.py b/grc/gui/Connection.py
index 3410e3a93b..5f95c99a0b 100644
--- a/grc/gui/Connection.py
+++ b/grc/gui/Connection.py
@@ -39,7 +39,7 @@ class Connection(Element):
"""
Get the 0,0 coordinate.
Coordinates are irrelevant in connection.
-
+
Returns:
0, 0
"""
@@ -49,7 +49,7 @@ class Connection(Element):
"""
Get the 0 degree rotation.
Rotations are irrelevant in connection.
-
+
Returns:
0
"""
@@ -128,7 +128,7 @@ class Connection(Element):
def draw(self, gc, window):
"""
Draw the connection.
-
+
Args:
gc: the graphics context
window: the gtk window to draw on
diff --git a/grc/gui/Dialogs.py b/grc/gui/Dialogs.py
index 0ffba8e0e8..17562bfe87 100644
--- a/grc/gui/Dialogs.py
+++ b/grc/gui/Dialogs.py
@@ -29,7 +29,7 @@ class TextDisplay(gtk.TextView):
def __init__(self, text=''):
"""
TextDisplay constructor.
-
+
Args:
text: the text to display (string)
"""
@@ -106,16 +106,16 @@ class TextDisplay(gtk.TextView):
def MessageDialogHelper(type, buttons, title=None, markup=None):
"""
Create a modal message dialog and run it.
-
+
Args:
type: the type of message: gtk.MESSAGE_INFO, gtk.MESSAGE_WARNING, gtk.MESSAGE_QUESTION or gtk.MESSAGE_ERROR
buttons: the predefined set of buttons to use:
gtk.BUTTONS_NONE, gtk.BUTTONS_OK, gtk.BUTTONS_CLOSE, gtk.BUTTONS_CANCEL, gtk.BUTTONS_YES_NO, gtk.BUTTONS_OK_CANCEL
-
+
Args:
tittle: the title of the window (string)
markup: the message text with pango markup
-
+
Returns:
the gtk response from run()
"""
diff --git a/grc/gui/DrawingArea.py b/grc/gui/DrawingArea.py
index 05e69e7bc6..448948e7f4 100644
--- a/grc/gui/DrawingArea.py
+++ b/grc/gui/DrawingArea.py
@@ -32,7 +32,7 @@ class DrawingArea(gtk.DrawingArea):
"""
DrawingArea contructor.
Connect event handlers.
-
+
Args:
main_window: the main_window containing all flow graphs
"""
diff --git a/grc/gui/Element.py b/grc/gui/Element.py
index 915bdfb915..c43f0eb35c 100644
--- a/grc/gui/Element.py
+++ b/grc/gui/Element.py
@@ -40,10 +40,10 @@ class Element(object):
"""
Is this element horizontal?
If rotation is None, use this element's rotation.
-
+
Args:
rotation: the optional rotation
-
+
Returns:
true if rotation is horizontal
"""
@@ -54,10 +54,10 @@ class Element(object):
"""
Is this element vertical?
If rotation is None, use this element's rotation.
-
+
Args:
rotation: the optional rotation
-
+
Returns:
true if rotation is vertical
"""
@@ -82,7 +82,7 @@ class Element(object):
def draw(self, gc, window, border_color, bg_color):
"""
Draw in the given window.
-
+
Args:
gc: the graphics context
window: the gtk window to draw on
@@ -104,7 +104,7 @@ class Element(object):
def rotate(self, rotation):
"""
Rotate all of the areas by 90 degrees.
-
+
Args:
rotation: multiple of 90 degrees
"""
@@ -118,7 +118,7 @@ class Element(object):
def set_coordinate(self, coor):
"""
Set the reference coordinate.
-
+
Args:
coor: the coordinate tuple (x,y)
"""
@@ -127,7 +127,7 @@ class Element(object):
def get_parent(self):
"""
Get the parent of this element.
-
+
Returns:
the parent
"""
@@ -136,7 +136,7 @@ class Element(object):
def set_highlighted(self, highlighted):
"""
Set the highlight status.
-
+
Args:
highlighted: true to enable highlighting
"""
@@ -145,7 +145,7 @@ class Element(object):
def is_highlighted(self):
"""
Get the highlight status.
-
+
Returns:
true if highlighted
"""
@@ -153,7 +153,7 @@ class Element(object):
def get_coordinate(self):
"""Get the coordinate.
-
+
Returns:
the coordinate tuple (x,y)
"""
@@ -162,7 +162,7 @@ class Element(object):
def move(self, delta_coor):
"""
Move the element by adding the delta_coor to the current coordinate.
-
+
Args:
delta_coor: (delta_x,delta_y) tuple
"""
@@ -178,7 +178,7 @@ class Element(object):
A positive width is to the right of the coordinate.
A positive height is above the coordinate.
The area is associated with a rotation.
-
+
Args:
rel_coor: (x,y) offset from this element's coordinate
area: (width,height) tuple
@@ -191,7 +191,7 @@ class Element(object):
A line is defined by 2 relative coordinates.
Lines must be horizontal or vertical.
The line is associated with a rotation.
-
+
Args:
rel_coor1: relative (x1,y1) tuple
rel_coor2: relative (x2,y2) tuple
@@ -206,11 +206,11 @@ class Element(object):
Both coordinates specified:
Is this element within the rectangular region defined by both coordinates?
ie: do any area corners or line endpoints fall within the region?
-
+
Args:
coor: the selection coordinate, tuple x, y
coor_m: an additional selection coordinate.
-
+
Returns:
self if one of the areas/lines encompasses coor, else None.
"""
@@ -247,7 +247,7 @@ class Element(object):
def get_rotation(self):
"""
Get the rotation in degrees.
-
+
Returns:
the rotation
"""
@@ -256,7 +256,7 @@ class Element(object):
def set_rotation(self, rotation):
"""
Set the rotation in degrees.
-
+
Args:
rotation: the rotation"""
if rotation not in POSSIBLE_ROTATIONS:
diff --git a/grc/gui/FileDialogs.py b/grc/gui/FileDialogs.py
index e8e859dc60..daea7e450f 100644
--- a/grc/gui/FileDialogs.py
+++ b/grc/gui/FileDialogs.py
@@ -79,7 +79,7 @@ class FileDialogHelper(gtk.FileChooserDialog):
FileDialogHelper contructor.
Create a save or open dialog with cancel and ok buttons.
Use standard settings: no multiple selection, local files only, and the * filter.
-
+
Args:
action: gtk.FILE_CHOOSER_ACTION_OPEN or gtk.FILE_CHOOSER_ACTION_SAVE
title: the title of the dialog (string)
@@ -96,7 +96,7 @@ class FileDialog(FileDialogHelper):
def __init__(self, current_file_path=''):
"""
FileDialog constructor.
-
+
Args:
current_file_path: the current directory or path to the open flow graph
"""
@@ -119,7 +119,7 @@ class FileDialog(FileDialogHelper):
def add_and_set_filter(self, filter):
"""
Add the gtk file filter to the list of filters and set it as the default file filter.
-
+
Args:
filter: a gtk file filter.
"""
@@ -132,7 +132,7 @@ class FileDialog(FileDialogHelper):
If this is a save dialog and the file name is missing the extension, append the file extension.
If the file name with the extension already exists, show a overwrite dialog.
If this is an open dialog, return a list of filenames.
-
+
Returns:
the complete file path
"""
@@ -172,7 +172,7 @@ class FileDialog(FileDialogHelper):
def run(self):
"""
Get the filename and destroy the dialog.
-
+
Returns:
the filename or None if a close/cancel occured.
"""
diff --git a/grc/gui/FlowGraph.py b/grc/gui/FlowGraph.py
index 1103aa1639..2b3d08628a 100644
--- a/grc/gui/FlowGraph.py
+++ b/grc/gui/FlowGraph.py
@@ -87,7 +87,7 @@ class FlowGraph(Element):
def add_new_block(self, key, coor=None):
"""
Add a block of the given key to this flow graph.
-
+
Args:
key: the block key
coor: an optional coordinate or None for random
@@ -114,7 +114,7 @@ class FlowGraph(Element):
def copy_to_clipboard(self):
"""
Copy the selected blocks and connections into the clipboard.
-
+
Returns:
the clipboard
"""
@@ -142,7 +142,7 @@ class FlowGraph(Element):
def paste_from_clipboard(self, clipboard):
"""
Paste the blocks and connections from the clipboard.
-
+
Args:
clipboard: the nested data of blocks, connections
"""
@@ -192,10 +192,10 @@ class FlowGraph(Element):
def type_controller_modify_selected(self, direction):
"""
Change the registered type controller for the selected signal blocks.
-
+
Args:
direction: +1 or -1
-
+
Returns:
true for change
"""
@@ -204,10 +204,10 @@ class FlowGraph(Element):
def port_controller_modify_selected(self, direction):
"""
Change port controller for the selected signal blocks.
-
+
Args:
direction: +1 or -1
-
+
Returns:
true for changed
"""
@@ -216,10 +216,10 @@ class FlowGraph(Element):
def enable_selected(self, enable):
"""
Enable/disable the selected blocks.
-
+
Args:
enable: true to enable
-
+
Returns:
true if changed
"""
@@ -233,7 +233,7 @@ class FlowGraph(Element):
def move_selected(self, delta_coordinate):
"""
Move the element and by the change in coordinates.
-
+
Args:
delta_coordinate: the change in coordinates
"""
@@ -244,10 +244,10 @@ class FlowGraph(Element):
def rotate_selected(self, rotation):
"""
Rotate the selected blocks by multiples of 90 degrees.
-
+
Args:
rotation: the rotation in degrees
-
+
Returns:
true if changed, otherwise false.
"""
@@ -274,7 +274,7 @@ class FlowGraph(Element):
def remove_selected(self):
"""
Remove selected elements
-
+
Returns:
true if changed.
"""
@@ -362,11 +362,11 @@ class FlowGraph(Element):
Iterate though the elements backwards since top elements are at the end of the list.
If an element is selected, place it at the end of the list so that is is drawn last,
and hence on top. Update the selected port information.
-
+
Args:
coor: the coordinate of the mouse click
coor_m: the coordinate for multi select
-
+
Returns:
the selected blocks and connections or an empty list
"""
@@ -401,7 +401,7 @@ class FlowGraph(Element):
def get_selected_connections(self):
"""
Get a group of selected connections.
-
+
Returns:
sub set of connections in this flow graph
"""
@@ -413,7 +413,7 @@ class FlowGraph(Element):
def get_selected_blocks(self):
"""
Get a group of selected blocks.
-
+
Returns:
sub set of blocks in this flow graph
"""
@@ -425,7 +425,7 @@ class FlowGraph(Element):
def get_selected_block(self):
"""
Get the selected block when a block or port is selected.
-
+
Returns:
a block or None
"""
@@ -434,7 +434,7 @@ class FlowGraph(Element):
def get_selected_elements(self):
"""
Get the group of selected elements.
-
+
Returns:
sub set of elements in this flow graph
"""
@@ -443,7 +443,7 @@ class FlowGraph(Element):
def get_selected_element(self):
"""
Get the selected element.
-
+
Returns:
a block, port, or connection or None
"""
diff --git a/grc/gui/MainWindow.py b/grc/gui/MainWindow.py
index f309d34a2e..a2853bdd38 100644
--- a/grc/gui/MainWindow.py
+++ b/grc/gui/MainWindow.py
@@ -121,7 +121,7 @@ class MainWindow(gtk.Window):
Handle the delete event from the main window.
Generated by pressing X to close, alt+f4, or right click+close.
This method in turns calls the state handler to quit.
-
+
Returns:
true
"""
@@ -133,7 +133,7 @@ class MainWindow(gtk.Window):
Handle a page change. When the user clicks on a new tab,
reload the flow graph to update the vars window and
call handle states (select nothing) to update the buttons.
-
+
Args:
notebook: the notebook
page: new page
@@ -150,7 +150,7 @@ class MainWindow(gtk.Window):
def add_report_line(self, line):
"""
Place line at the end of the text buffer, then scroll its window all the way down.
-
+
Args:
line: the new text
"""
@@ -164,7 +164,7 @@ class MainWindow(gtk.Window):
"""
Create a new notebook page.
Set the tab to be selected.
-
+
Args:
file_path: optional file to load into the flow graph
show: true if the page should be shown after loading
@@ -202,7 +202,7 @@ class MainWindow(gtk.Window):
def close_pages(self):
"""
Close all the pages in this notebook.
-
+
Returns:
true if all closed
"""
@@ -227,7 +227,7 @@ class MainWindow(gtk.Window):
Close the current page.
If the notebook becomes empty, and ensure is true,
call new page upon exit to ensure that at least one page exists.
-
+
Args:
ensure: boolean
"""
@@ -257,7 +257,7 @@ class MainWindow(gtk.Window):
Set the title of the main window.
Set the titles on the page tabs.
Show/hide the reports window.
-
+
Args:
title: the window title
"""
@@ -285,7 +285,7 @@ class MainWindow(gtk.Window):
def get_page(self):
"""
Get the selected page.
-
+
Returns:
the selected page
"""
@@ -294,7 +294,7 @@ class MainWindow(gtk.Window):
def get_flow_graph(self):
"""
Get the selected flow graph.
-
+
Returns:
the selected flow graph
"""
@@ -316,7 +316,7 @@ class MainWindow(gtk.Window):
def _set_page(self, page):
"""
Set the current page.
-
+
Args:
page: the page widget
"""
@@ -326,7 +326,7 @@ class MainWindow(gtk.Window):
def _save_changes(self):
"""
Save changes to flow graph?
-
+
Returns:
true if yes
"""
@@ -338,7 +338,7 @@ class MainWindow(gtk.Window):
def _get_files(self):
"""
Get the file names for all the pages, in order.
-
+
Returns:
list of file paths
"""
@@ -347,7 +347,7 @@ class MainWindow(gtk.Window):
def _get_pages(self):
"""
Get a list of all pages in the notebook.
-
+
Returns:
list of pages
"""
diff --git a/grc/gui/Messages.py b/grc/gui/Messages.py
index 2bf488bb58..3fa78f85d4 100644
--- a/grc/gui/Messages.py
+++ b/grc/gui/Messages.py
@@ -26,7 +26,7 @@ MESSENGERS_LIST = list()
def register_messenger(messenger):
"""
Append the given messenger to the list of messengers.
-
+
Args:
messenger: a method thats takes a string
"""
@@ -35,7 +35,7 @@ def register_messenger(messenger):
def send(message):
"""
Give the message to each of the messengers.
-
+
Args:
message: a message string
"""
diff --git a/grc/gui/NotebookPage.py b/grc/gui/NotebookPage.py
index 10c5dde00d..481aca4eea 100644
--- a/grc/gui/NotebookPage.py
+++ b/grc/gui/NotebookPage.py
@@ -36,7 +36,7 @@ class NotebookPage(gtk.HBox):
def __init__(self, main_window, flow_graph, file_path=''):
"""
Page constructor.
-
+
Args:
main_window: main window
file_path: path to a flow graph file
@@ -91,7 +91,7 @@ class NotebookPage(gtk.HBox):
def get_generator(self):
"""
Get the generator object for this flow graph.
-
+
Returns:
generator
"""
@@ -104,7 +104,7 @@ class NotebookPage(gtk.HBox):
"""
The button was clicked.
Make the current page selected, then close.
-
+
Args:
the: button
"""
@@ -114,7 +114,7 @@ class NotebookPage(gtk.HBox):
def set_markup(self, markup):
"""
Set the markup in this label.
-
+
Args:
markup: the new markup text
"""
@@ -123,7 +123,7 @@ class NotebookPage(gtk.HBox):
def get_tab(self):
"""
Get the gtk widget for this page's tab.
-
+
Returns:
gtk widget
"""
@@ -132,7 +132,7 @@ class NotebookPage(gtk.HBox):
def get_proc(self):
"""
Get the subprocess for the flow graph.
-
+
Returns:
the subprocess object
"""
@@ -141,7 +141,7 @@ class NotebookPage(gtk.HBox):
def set_proc(self, process):
"""
Set the subprocess object.
-
+
Args:
process: the new subprocess
"""
@@ -150,7 +150,7 @@ class NotebookPage(gtk.HBox):
def get_flow_graph(self):
"""
Get the flow graph.
-
+
Returns:
the flow graph
"""
@@ -160,7 +160,7 @@ class NotebookPage(gtk.HBox):
"""
Get the read-only state of the file.
Always false for empty path.
-
+
Returns:
true for read-only
"""
@@ -171,7 +171,7 @@ class NotebookPage(gtk.HBox):
def get_file_path(self):
"""
Get the file path for the flow graph.
-
+
Returns:
the file path or ''
"""
@@ -180,7 +180,7 @@ class NotebookPage(gtk.HBox):
def set_file_path(self, file_path=''):
"""
Set the file path, '' for no file path.
-
+
Args:
file_path: file path string
"""
@@ -190,7 +190,7 @@ class NotebookPage(gtk.HBox):
def get_saved(self):
"""
Get the saved status for the flow graph.
-
+
Returns:
true if saved
"""
@@ -199,7 +199,7 @@ class NotebookPage(gtk.HBox):
def set_saved(self, saved=True):
"""
Set the saved status.
-
+
Args:
saved: boolean status
"""
@@ -208,7 +208,7 @@ class NotebookPage(gtk.HBox):
def get_state_cache(self):
"""
Get the state cache for the flow graph.
-
+
Returns:
the state cache
"""
diff --git a/grc/gui/Param.py b/grc/gui/Param.py
index 2ca20fab2a..499af2e2ed 100644
--- a/grc/gui/Param.py
+++ b/grc/gui/Param.py
@@ -227,7 +227,7 @@ class Param(Element):
An enum requires and combo parameter.
A non-enum with options gets a combined entry/combo parameter.
All others get a standard entry parameter.
-
+
Returns:
gtk input class
"""
@@ -245,7 +245,7 @@ class Param(Element):
def get_markup(self):
"""
Get the markup for this param.
-
+
Returns:
a pango markup string
"""
diff --git a/grc/gui/Port.py b/grc/gui/Port.py
index e542797ea6..8b4edfa430 100644
--- a/grc/gui/Port.py
+++ b/grc/gui/Port.py
@@ -88,7 +88,7 @@ class Port(Element):
self._connector_length = CONNECTOR_EXTENSION_MINIMAL + CONNECTOR_EXTENSION_INCREMENT*index
def modify_height(self, start_height):
type_dict = {'bus':(lambda a: a * 3)};
-
+
if self.get_type() in type_dict:
return type_dict[self.get_type()](start_height);
else:
@@ -119,7 +119,7 @@ class Port(Element):
def draw(self, gc, window):
"""
Draw the socket with a label.
-
+
Args:
gc: the graphics context
window: the gtk window to draw on
@@ -139,7 +139,7 @@ class Port(Element):
def get_connector_coordinate(self):
"""
Get the coordinate where connections may attach to.
-
+
Returns:
the connector coordinate (x, y) tuple
"""
@@ -152,7 +152,7 @@ class Port(Element):
Get the direction that the socket points: 0,90,180,270.
This is the rotation degree if the socket is an output or
the rotation degree + 180 if the socket is an input.
-
+
Returns:
the direction in degrees
"""
@@ -163,7 +163,7 @@ class Port(Element):
"""
Get the length of the connector.
The connector length increases as the port index changes.
-
+
Returns:
the length in pixels
"""
@@ -172,7 +172,7 @@ class Port(Element):
def get_rotation(self):
"""
Get the parent's rotation rather than self.
-
+
Returns:
the parent's rotation
"""
@@ -181,7 +181,7 @@ class Port(Element):
def move(self, delta_coor):
"""
Move the parent rather than self.
-
+
Args:
delta_corr: the (delta_x, delta_y) tuple
"""
@@ -190,7 +190,7 @@ class Port(Element):
def rotate(self, direction):
"""
Rotate the parent rather than self.
-
+
Args:
direction: degrees to rotate
"""
@@ -199,7 +199,7 @@ class Port(Element):
def get_coordinate(self):
"""
Get the parent's coordinate rather than self.
-
+
Returns:
the parents coordinate
"""
@@ -208,7 +208,7 @@ class Port(Element):
def set_highlighted(self, highlight):
"""
Set the parent highlight rather than self.
-
+
Args:
highlight: true to enable highlighting
"""
@@ -217,7 +217,7 @@ class Port(Element):
def is_highlighted(self):
"""
Get the parent's is highlight rather than self.
-
+
Returns:
the parent's highlighting status
"""
diff --git a/grc/gui/PropsDialog.py b/grc/gui/PropsDialog.py
index 05e997b3e3..d7ba8c51c9 100644
--- a/grc/gui/PropsDialog.py
+++ b/grc/gui/PropsDialog.py
@@ -34,10 +34,10 @@ def get_title_label(title):
"""
Get a title label for the params window.
The title will be bold, underlined, and left justified.
-
+
Args:
title: the text of the title
-
+
Returns:
a gtk object
"""
@@ -56,7 +56,7 @@ class PropsDialog(gtk.Dialog):
def __init__(self, block):
"""
Properties dialog constructor.
-
+
Args:
block: a block instance
"""
@@ -118,7 +118,7 @@ class PropsDialog(gtk.Dialog):
To the props dialog, the hide setting of 'none' and 'part' are identical.
Therefore, the props dialog only cares if the hide setting is/not 'all'.
Make a hash that uniquely represents the params' state.
-
+
Returns:
true if changed
"""
@@ -179,7 +179,7 @@ class PropsDialog(gtk.Dialog):
"""
Handle key presses from the keyboard.
Call the ok response when enter is pressed.
-
+
Returns:
false to forward the keypress
"""
@@ -191,7 +191,7 @@ class PropsDialog(gtk.Dialog):
def run(self):
"""
Run the dialog and get its response.
-
+
Returns:
true if the response was accept
"""
diff --git a/grc/gui/StateCache.py b/grc/gui/StateCache.py
index 558f507716..3cdb5f30ce 100644
--- a/grc/gui/StateCache.py
+++ b/grc/gui/StateCache.py
@@ -30,7 +30,7 @@ class StateCache(object):
def __init__(self, initial_state):
"""
StateCache constructor.
-
+
Args:
initial_state: the intial state (nested data)
"""
@@ -45,7 +45,7 @@ class StateCache(object):
"""
Save a new state.
Place the new state at the next index and add one to the number of previous states.
-
+
Args:
state: the new state
"""
@@ -59,7 +59,7 @@ class StateCache(object):
def get_current_state(self):
"""
Get the state at the current index.
-
+
Returns:
the current state (nested data)
"""
@@ -69,7 +69,7 @@ class StateCache(object):
def get_prev_state(self):
"""
Get the previous state and decrement the current index.
-
+
Returns:
the previous state or None
"""
@@ -83,7 +83,7 @@ class StateCache(object):
def get_next_state(self):
"""
Get the nest state and increment the current index.
-
+
Returns:
the next state or None
"""
diff --git a/grc/gui/Utils.py b/grc/gui/Utils.py
index cc1f8ceb12..ebd5aefca7 100644
--- a/grc/gui/Utils.py
+++ b/grc/gui/Utils.py
@@ -29,7 +29,7 @@ def rotate_pixmap(gc, src_pixmap, dst_pixmap, angle=gtk.gdk.PIXBUF_ROTATE_COUNTE
Load the destination pixmap with a rotated version of the source pixmap.
The source pixmap will be loaded into a pixbuf, rotated, and drawn to the destination pixmap.
The pixbuf is a client-side drawable, where a pixmap is a server-side drawable.
-
+
Args:
gc: the graphics context
src_pixmap: the source pixmap
@@ -49,11 +49,11 @@ def rotate_pixmap(gc, src_pixmap, dst_pixmap, angle=gtk.gdk.PIXBUF_ROTATE_COUNTE
def get_rotated_coordinate(coor, rotation):
"""
Rotate the coordinate by the given rotation.
-
+
Args:
coor: the coordinate x, y tuple
rotation: the angle in degrees
-
+
Returns:
the rotated coordinates
"""
@@ -74,11 +74,11 @@ def get_rotated_coordinate(coor, rotation):
def get_angle_from_coordinates((x1,y1), (x2,y2)):
"""
Given two points, calculate the vector direction from point1 to point2, directions are multiples of 90 degrees.
-
+
Args:
(x1,y1): the coordinate of point 1
(x2,y2): the coordinate of point 2
-
+
Returns:
the direction in degrees
"""
@@ -93,10 +93,10 @@ def parse_template(tmpl_str, **kwargs):
"""
Parse the template string with the given args.
Pass in the xml encode method for pango escape chars.
-
+
Args:
tmpl_str: the template as a string
-
+
Returns:
a string of the parsed template
"""
diff --git a/grc/python/Block.py b/grc/python/Block.py
index 21f4bad6cb..9556e8f061 100644
--- a/grc/python/Block.py
+++ b/grc/python/Block.py
@@ -35,11 +35,11 @@ class Block(_Block, _GUIBlock):
def __init__(self, flow_graph, n):
"""
Make a new block from nested data.
-
+
Args:
flow: graph the parent element
n: the nested odict
-
+
Returns:
block a new block
"""
@@ -66,14 +66,14 @@ class Block(_Block, _GUIBlock):
bus_structure = self._bus_structure_source;
else:
bus_structure = self._bus_structure_sink;
-
+
bus_structure = self.resolve_dependencies(bus_structure);
-
+
if not bus_structure: return ''
try:
clean_bus_structure = self.get_parent().evaluate(bus_structure)
return clean_bus_structure
-
+
except: return ''
def throttle(self): return bool(self._throttle)
@@ -133,10 +133,10 @@ class Block(_Block, _GUIBlock):
def port_controller_modify(self, direction):
"""
Change the port controller.
-
+
Args:
direction: +1 or -1
-
+
Returns:
true for change
"""
@@ -170,7 +170,7 @@ class Block(_Block, _GUIBlock):
Split each import statement at newlines.
Combine all import statments into a list.
Filter empty imports.
-
+
Returns:
a list of import statements
"""
@@ -183,7 +183,7 @@ class Block(_Block, _GUIBlock):
def get_callbacks(self):
"""
Get a list of function callbacks for this block.
-
+
Returns:
a list of strings
"""
diff --git a/grc/python/FlowGraph.py b/grc/python/FlowGraph.py
index 6d95db86e7..daec2d4310 100644
--- a/grc/python/FlowGraph.py
+++ b/grc/python/FlowGraph.py
@@ -41,12 +41,12 @@ class FlowGraph(_FlowGraph, _GUIFlowGraph):
def _eval(self, code, namespace, namespace_hash):
"""
Evaluate the code with the given namespace.
-
+
Args:
code: a string with python code
namespace: a dict representing the namespace
namespace_hash: a unique hash for the namespace
-
+
Returns:
the resultant object
"""
@@ -61,10 +61,10 @@ class FlowGraph(_FlowGraph, _GUIFlowGraph):
def get_io_signaturev(self, direction):
"""
Get a list of io signatures for this flow graph.
-
+
Args:
direction: a string of 'in' or 'out'
-
+
Returns:
a list of dicts with: type, label, vlen, size
"""
@@ -90,7 +90,7 @@ class FlowGraph(_FlowGraph, _GUIFlowGraph):
def get_pad_sources(self):
"""
Get a list of pad source blocks sorted by id order.
-
+
Returns:
a list of pad source blocks in this flow graph
"""
@@ -100,7 +100,7 @@ class FlowGraph(_FlowGraph, _GUIFlowGraph):
def get_pad_sinks(self):
"""
Get a list of pad sink blocks sorted by id order.
-
+
Returns:
a list of pad sink blocks in this flow graph
"""
@@ -135,7 +135,7 @@ class FlowGraph(_FlowGraph, _GUIFlowGraph):
def get_imports(self):
"""
Get a set of all import statments in this flow graph namespace.
-
+
Returns:
a set of import statements
"""
@@ -147,7 +147,7 @@ class FlowGraph(_FlowGraph, _GUIFlowGraph):
"""
Get a list of all variables in this flow graph namespace.
Exclude paramterized variables.
-
+
Returns:
a sorted list of variable blocks in order of dependency (indep -> dep)
"""
@@ -157,7 +157,7 @@ class FlowGraph(_FlowGraph, _GUIFlowGraph):
def get_parameters(self):
"""
Get a list of all paramterized variables in this flow graph namespace.
-
+
Returns:
a list of paramterized variables
"""
@@ -174,15 +174,15 @@ class FlowGraph(_FlowGraph, _GUIFlowGraph):
def get_bussink(self):
bussink = filter(lambda b: _bussink_searcher.search(b.get_key()), self.get_enabled_blocks())
-
+
for i in bussink:
for j in i.get_params():
if j.get_name() == 'On/Off' and j.get_value() == 'on':
return True;
-
+
return False
-
-
+
+
def get_bussrc(self):
bussrc = filter(lambda b: _bussrc_searcher.search(b.get_key()), self.get_enabled_blocks())
@@ -191,19 +191,19 @@ class FlowGraph(_FlowGraph, _GUIFlowGraph):
for j in i.get_params():
if j.get_name() == 'On/Off' and j.get_value() == 'on':
return True;
-
+
return False
def get_bus_structure_sink(self):
bussink = filter(lambda b: _bus_struct_sink_searcher.search(b.get_key()), self.get_enabled_blocks())
-
+
return bussink
def get_bus_structure_src(self):
bussrc = filter(lambda b: _bus_struct_src_searcher.search(b.get_key()), self.get_enabled_blocks())
-
+
return bussrc
-
+
def rewrite(self):
"""
@@ -211,19 +211,19 @@ class FlowGraph(_FlowGraph, _GUIFlowGraph):
"""
def reconnect_bus_blocks():
for block in self.get_blocks():
-
+
if 'bus' in map(lambda a: a.get_type(), block.get_sources_gui()):
-
-
+
+
for i in range(len(block.get_sources_gui())):
if len(block.get_sources_gui()[i].get_connections()) > 0:
source = block.get_sources_gui()[i]
sink = []
-
+
for j in range(len(source.get_connections())):
sink.append(source.get_connections()[j].get_sink());
-
-
+
+
for elt in source.get_connections():
self.remove_element(elt);
for j in sink:
@@ -235,11 +235,11 @@ class FlowGraph(_FlowGraph, _GUIFlowGraph):
def evaluate(self, expr):
"""
Evaluate the expression.
-
+
Args:
expr: the string expression
@throw Exception bad expression
-
+
Returns:
the evaluated data
"""
diff --git a/grc/python/Generator.py b/grc/python/Generator.py
index 45958ba19b..eb24b75732 100644
--- a/grc/python/Generator.py
+++ b/grc/python/Generator.py
@@ -147,7 +147,7 @@ Add a Misc->Throttle block to your flow graph to avoid CPU congestion.''')
'flow_graph': self._flow_graph,
'variables': variables,
'parameters': parameters,
- 'monitors': monitors,
+ 'monitors': monitors,
'blocks': blocks,
'connections': connections,
'messages': messages,
diff --git a/grc/python/Param.py b/grc/python/Param.py
index 3d9e52e25f..827355d8d6 100644
--- a/grc/python/Param.py
+++ b/grc/python/Param.py
@@ -66,7 +66,7 @@ class Param(_Param, _GUIParam):
def __repr__(self):
"""
Get the repr (nice string format) for this param.
-
+
Returns:
the string representation
"""
@@ -125,7 +125,7 @@ class Param(_Param, _GUIParam):
def get_color(self):
"""
Get the color that represents this param's type.
-
+
Returns:
a hex color code.
"""
@@ -160,7 +160,7 @@ class Param(_Param, _GUIParam):
If the parameter controls a port type, vlen, or nports, return part.
If the parameter is an empty grid position, return part.
These parameters are redundant to display in the flow graph view.
-
+
Returns:
hide the hide property string
"""
@@ -198,7 +198,7 @@ class Param(_Param, _GUIParam):
def evaluate(self):
"""
Evaluate the value.
-
+
Returns:
evaluated type
"""
@@ -407,7 +407,7 @@ class Param(_Param, _GUIParam):
Convert the value to code.
For string and list types, check the init flag, call evaluate().
This ensures that evaluate() was called to set the xxxify_flags.
-
+
Returns:
a string representing the code
"""
@@ -426,10 +426,10 @@ class Param(_Param, _GUIParam):
def get_all_params(self, type):
"""
Get all the params from the flowgraph that have the given type.
-
+
Args:
type: the specified type
-
+
Returns:
a list of params
"""
diff --git a/grc/python/Port.py b/grc/python/Port.py
index b82995cf6f..68e851f8c9 100644
--- a/grc/python/Port.py
+++ b/grc/python/Port.py
@@ -84,7 +84,7 @@ class Port(_Port, _GUIPort):
def __init__(self, block, n, dir):
"""
Make a new port from nested data.
-
+
Args:
block: the parent element
n: the nested odict
@@ -167,7 +167,7 @@ class Port(_Port, _GUIPort):
"""
Get the vector length.
If the evaluation of vlen cannot be cast to an integer, return 1.
-
+
Returns:
the vector length or 1
"""
@@ -180,7 +180,7 @@ class Port(_Port, _GUIPort):
Get the number of ports.
If already blank, return a blank
If the evaluation of nports cannot be cast to a positive integer, return 1.
-
+
Returns:
the number of ports or 1
"""
@@ -198,7 +198,7 @@ class Port(_Port, _GUIPort):
"""
Get the color that represents this port's type.
Codes differ for ports where the vec length is 1 or greater than 1.
-
+
Returns:
a hex color code.
"""
diff --git a/grc/python/expr_utils.py b/grc/python/expr_utils.py
index 85f420f04c..9e0b2a4a0a 100644
--- a/grc/python/expr_utils.py
+++ b/grc/python/expr_utils.py
@@ -54,10 +54,10 @@ def expr_split(expr):
Split up an expression by non alphanumeric characters, including underscore.
Leave strings in-tact.
#TODO ignore escaped quotes, use raw strings.
-
+
Args:
expr: an expression string
-
+
Returns:
a list of string tokens that form expr
"""
@@ -82,11 +82,11 @@ def expr_split(expr):
def expr_replace(expr, replace_dict):
"""
Search for vars in the expression and add the prepend.
-
+
Args:
expr: an expression string
replace_dict: a dict of find:replace
-
+
Returns:
a new expression with the prepend
"""
@@ -99,11 +99,11 @@ def expr_replace(expr, replace_dict):
def get_variable_dependencies(expr, vars):
"""
Return a set of variables used in this expression.
-
+
Args:
expr: an expression string
vars: a list of variable names
-
+
Returns:
a subset of vars used in the expression
"""
@@ -113,10 +113,10 @@ def get_variable_dependencies(expr, vars):
def get_graph(exprs):
"""
Get a graph representing the variable dependencies
-
+
Args:
exprs: a mapping of variable name to expression
-
+
Returns:
a graph of variable deps
"""
@@ -132,10 +132,10 @@ def get_graph(exprs):
def sort_variables(exprs):
"""
Get a list of variables in order of dependencies.
-
+
Args:
exprs: a mapping of variable name to expression
-
+
Returns:
a list of variable names
@throws Exception circular dependencies
@@ -156,12 +156,12 @@ def sort_variables(exprs):
def sort_objects(objects, get_id, get_expr):
"""
Sort a list of objects according to their expressions.
-
+
Args:
objects: the list of objects to sort
get_id: the function to extract an id from the object
get_expr: the function to extract an expression from the object
-
+
Returns:
a list of sorted objects
"""
diff --git a/grc/python/extract_docs.py b/grc/python/extract_docs.py
index b3b87e64ca..47b2820a1f 100644
--- a/grc/python/extract_docs.py
+++ b/grc/python/extract_docs.py
@@ -23,10 +23,10 @@ def _extract(key):
"""
Extract the documentation from the python __doc__ strings.
If multiple modules match, combine the docs.
-
+
Args:
key: the block key
-
+
Returns:
a string with documentation
"""
@@ -58,10 +58,10 @@ _docs_cache = dict()
def extract(key):
"""
Call the private extract and cache the result.
-
+
Args:
key: the block key
-
+
Returns:
a string with documentation
"""
diff --git a/volk/CMakeLists.txt b/volk/CMakeLists.txt
index cb548f55d2..66789e42dd 100644
--- a/volk/CMakeLists.txt
+++ b/volk/CMakeLists.txt
@@ -79,7 +79,12 @@ if(NOT Boost_FOUND)
message(FATAL_ERROR "VOLK Requires boost to build")
endif()
-find_package(ORC)
+option(ENABLE_ORC "Enable Orc" True)
+if(ENABLE_ORC)
+ find_package(ORC)
+else(ENABLE_ORC)
+ message(STATUS "Disabling use of ORC")
+endif(ENABLE_ORC)
########################################################################
# Setup the package config file
diff --git a/volk/gen/archs.xml b/volk/gen/archs.xml
index 647598832e..e570fe5d2c 100644
--- a/volk/gen/archs.xml
+++ b/volk/gen/archs.xml
@@ -60,7 +60,7 @@
<param>5</param>
</check>
<flag compiler="gnu">-msse4.2</flag>
- <flag compiler="clang">-msse4.2</flag>
+ <flag compiler="clang">-msse4.2</flag>
<alignment>16</alignment>
</arch>
diff --git a/volk/kernels/volk/volk_32f_invsqrt_32f.h b/volk/kernels/volk/volk_32f_invsqrt_32f.h
index c1d28c1ab2..055370661a 100644
--- a/volk/kernels/volk/volk_32f_invsqrt_32f.h
+++ b/volk/kernels/volk/volk_32f_invsqrt_32f.h
@@ -20,7 +20,7 @@ static inline float Q_rsqrt( float number )
u.i = 0x5f3759df - ( u.i >> 1 ); // what the fuck?
u.f = u.f * ( threehalfs - ( x2 * u.f * u.f ) ); // 1st iteration
//u.f = u.f * ( threehalfs - ( x2 * u.f * u.f ) ); // 2nd iteration, this can be removed
-
+
return u.f;
}
@@ -47,7 +47,7 @@ static inline void volk_32f_invsqrt_32f_a_avx(float* cVector, const float* aVect
aPtr += 8;
cPtr += 8;
}
-
+
number = eighthPoints * 8;
for(;number < num_points; number++)
*cPtr++ = Q_rsqrt(*aPtr++);
@@ -130,7 +130,7 @@ static inline void volk_32f_invsqrt_32f_u_avx(float* cVector, const float* aVect
aPtr += 8;
cPtr += 8;
}
-
+
number = eighthPoints * 8;
for(;number < num_points; number++)
*cPtr++ = Q_rsqrt(*aPtr++);
diff --git a/volk/kernels/volk/volk_32f_x3_sum_of_poly_32f.h b/volk/kernels/volk/volk_32f_x3_sum_of_poly_32f.h
index b6c39477c6..fdef68209e 100644
--- a/volk/kernels/volk/volk_32f_x3_sum_of_poly_32f.h
+++ b/volk/kernels/volk/volk_32f_x3_sum_of_poly_32f.h
@@ -103,7 +103,7 @@ static inline void volk_32f_x3_sum_of_poly_32f_a_sse3(float* target, float* src0
#ifdef LV_HAVE_AVX
#include<immintrin.h>
-static inline void volk_32f_x3_sum_of_poly_32f_a_avx(float* target, float* src0, float* center_point_array, float* cutoff, unsigned int num_points)
+static inline void volk_32f_x3_sum_of_poly_32f_a_avx(float* target, float* src0, float* center_point_array, float* cutoff, unsigned int num_points)
{
const unsigned int eighth_points = num_points / 8;
float fst = 0.0;
@@ -166,7 +166,7 @@ static inline void volk_32f_x3_sum_of_poly_32f_a_avx(float* target, float* src0,
center_point_array[3] * frth);
}
- *target += ((float)(num_points)) * center_point_array[4];
+ *target += ((float)(num_points)) * center_point_array[4];
}
#endif // LV_HAVE_AVX
@@ -225,7 +225,7 @@ static inline void volk_32f_x3_sum_of_poly_32f_generic(float* target, float* src
#ifdef LV_HAVE_AVX
#include<immintrin.h>
-static inline void volk_32f_x3_sum_of_poly_32f_u_avx(float* target, float* src0, float* center_point_array, float* cutoff, unsigned int num_points)
+static inline void volk_32f_x3_sum_of_poly_32f_u_avx(float* target, float* src0, float* center_point_array, float* cutoff, unsigned int num_points)
{
const unsigned int eighth_points = num_points / 8;
float fst = 0.0;
@@ -288,7 +288,7 @@ static inline void volk_32f_x3_sum_of_poly_32f_u_avx(float* target, float* src0,
center_point_array[3] * frth);
}
- *target += ((float)(num_points)) * center_point_array[4];
+ *target += ((float)(num_points)) * center_point_array[4];
}
#endif // LV_HAVE_AVX
diff --git a/volk/kernels/volk/volk_32fc_32f_dot_prod_32fc.h b/volk/kernels/volk/volk_32fc_32f_dot_prod_32fc.h
index f567ede516..44535da6d8 100644
--- a/volk/kernels/volk/volk_32fc_32f_dot_prod_32fc.h
+++ b/volk/kernels/volk/volk_32fc_32f_dot_prod_32fc.h
@@ -71,8 +71,8 @@ static inline void volk_32fc_32f_dot_prod_32fc_a_avx( lv_32fc_t* result, const l
// TODO: it may be possible to rearrange swizzling to better pipeline data
b0Val = _mm256_permute2f128_ps(x0loVal, x0hiVal, 0x20); // t0|t0|t1|t1|t2|t2|t3|t3
b1Val = _mm256_permute2f128_ps(x0loVal, x0hiVal, 0x31); // t4|t4|t5|t5|t6|t6|t7|t7
- b2Val = _mm256_permute2f128_ps(x1loVal, x1hiVal, 0x20);
- b3Val = _mm256_permute2f128_ps(x1loVal, x1hiVal, 0x31);
+ b2Val = _mm256_permute2f128_ps(x1loVal, x1hiVal, 0x20);
+ b3Val = _mm256_permute2f128_ps(x1loVal, x1hiVal, 0x31);
c0Val = _mm256_mul_ps(a0Val, b0Val);
c1Val = _mm256_mul_ps(a1Val, b1Val);
@@ -239,8 +239,8 @@ static inline void volk_32fc_32f_dot_prod_32fc_u_avx( lv_32fc_t* result, const l
// TODO: it may be possible to rearrange swizzling to better pipeline data
b0Val = _mm256_permute2f128_ps(x0loVal, x0hiVal, 0x20); // t0|t0|t1|t1|t2|t2|t3|t3
b1Val = _mm256_permute2f128_ps(x0loVal, x0hiVal, 0x31); // t4|t4|t5|t5|t6|t6|t7|t7
- b2Val = _mm256_permute2f128_ps(x1loVal, x1hiVal, 0x20);
- b3Val = _mm256_permute2f128_ps(x1loVal, x1hiVal, 0x31);
+ b2Val = _mm256_permute2f128_ps(x1loVal, x1hiVal, 0x20);
+ b3Val = _mm256_permute2f128_ps(x1loVal, x1hiVal, 0x31);
c0Val = _mm256_mul_ps(a0Val, b0Val);
c1Val = _mm256_mul_ps(a1Val, b1Val);
diff --git a/volk/kernels/volk/volk_32fc_32f_multiply_32fc.h b/volk/kernels/volk/volk_32fc_32f_multiply_32fc.h
index a7e81bdd7f..a12d078c68 100644
--- a/volk/kernels/volk/volk_32fc_32f_multiply_32fc.h
+++ b/volk/kernels/volk/volk_32fc_32f_multiply_32fc.h
@@ -24,14 +24,14 @@ static inline void volk_32fc_32f_multiply_32fc_a_avx(lv_32fc_t* cVector, const l
__m256 aVal1, aVal2, bVal, bVal1, bVal2, cVal1, cVal2;
- __m256i permute_mask = _mm256_set_epi32(3, 3, 2, 2, 1, 1, 0, 0);
+ __m256i permute_mask = _mm256_set_epi32(3, 3, 2, 2, 1, 1, 0, 0);
for(;number < eighthPoints; number++){
aVal1 = _mm256_load_ps((float *)aPtr);
aPtr += 4;
- aVal2 = _mm256_load_ps((float *)aPtr);
+ aVal2 = _mm256_load_ps((float *)aPtr);
aPtr += 4;
bVal = _mm256_load_ps(bPtr); // b0|b1|b2|b3|b4|b5|b6|b7
diff --git a/volk/kernels/volk/volk_32fc_s32fc_rotatorpuppet_32fc.h b/volk/kernels/volk/volk_32fc_s32fc_rotatorpuppet_32fc.h
index 3a1f8e471b..c7b46e7e99 100644
--- a/volk/kernels/volk/volk_32fc_s32fc_rotatorpuppet_32fc.h
+++ b/volk/kernels/volk/volk_32fc_s32fc_rotatorpuppet_32fc.h
@@ -17,10 +17,10 @@
\param phase initial phase offset
\param num_points The number of values in inVector to be rotated and stored into cVector
*/
-static inline void volk_32fc_s32fc_rotatorpuppet_32fc_generic(lv_32fc_t* outVector, const lv_32fc_t* inVector, const lv_32fc_t phase_inc, unsigned int num_points){
+static inline void volk_32fc_s32fc_rotatorpuppet_32fc_generic(lv_32fc_t* outVector, const lv_32fc_t* inVector, const lv_32fc_t phase_inc, unsigned int num_points){
lv_32fc_t phase[1] = {lv_cmake(.3, 0.95393)};
volk_32fc_s32fc_x2_rotator_32fc_generic(outVector, inVector, phase_inc, phase, num_points);
-
+
}
#endif /* LV_HAVE_GENERIC */
@@ -29,10 +29,10 @@ static inline void volk_32fc_s32fc_rotatorpuppet_32fc_generic(lv_32fc_t* outVect
#ifdef LV_HAVE_SSE4_1
#include <smmintrin.h>
-static inline void volk_32fc_s32fc_rotatorpuppet_32fc_a_sse4_1(lv_32fc_t* outVector, const lv_32fc_t* inVector, const lv_32fc_t phase_inc, unsigned int num_points){
+static inline void volk_32fc_s32fc_rotatorpuppet_32fc_a_sse4_1(lv_32fc_t* outVector, const lv_32fc_t* inVector, const lv_32fc_t phase_inc, unsigned int num_points){
lv_32fc_t phase[1] = {lv_cmake(.3, .95393)};
volk_32fc_s32fc_x2_rotator_32fc_a_sse4_1(outVector, inVector, phase_inc, phase, num_points);
-
+
}
#endif /* LV_HAVE_SSE4_1 */
@@ -40,10 +40,10 @@ static inline void volk_32fc_s32fc_rotatorpuppet_32fc_a_sse4_1(lv_32fc_t* outVec
#ifdef LV_HAVE_SSE4_1
#include <smmintrin.h>
-static inline void volk_32fc_s32fc_rotatorpuppet_32fc_u_sse4_1(lv_32fc_t* outVector, const lv_32fc_t* inVector, const lv_32fc_t phase_inc, unsigned int num_points){
+static inline void volk_32fc_s32fc_rotatorpuppet_32fc_u_sse4_1(lv_32fc_t* outVector, const lv_32fc_t* inVector, const lv_32fc_t phase_inc, unsigned int num_points){
lv_32fc_t phase[1] = {lv_cmake(.3, .95393)};
volk_32fc_s32fc_x2_rotator_32fc_u_sse4_1(outVector, inVector, phase_inc, phase, num_points);
-
+
}
#endif /* LV_HAVE_SSE4_1 */
@@ -60,7 +60,7 @@ static inline void volk_32fc_s32fc_rotatorpuppet_32fc_u_sse4_1(lv_32fc_t* outVec
\param phase initial phase offset
\param num_points The number of values in inVector to be rotated and stored into cVector
*/
-static inline void volk_32fc_s32fc_rotatorpuppet_32fc_a_avx(lv_32fc_t* outVector, const lv_32fc_t* inVector, const lv_32fc_t phase_inc, unsigned int num_points){
+static inline void volk_32fc_s32fc_rotatorpuppet_32fc_a_avx(lv_32fc_t* outVector, const lv_32fc_t* inVector, const lv_32fc_t phase_inc, unsigned int num_points){
lv_32fc_t phase[1] = {lv_cmake(.3, .95393)};
volk_32fc_s32fc_x2_rotator_32fc_a_avx(outVector, inVector, phase_inc, phase, num_points);
}
@@ -71,11 +71,11 @@ static inline void volk_32fc_s32fc_rotatorpuppet_32fc_a_avx(lv_32fc_t* outVector
#ifdef LV_HAVE_AVX
#include <immintrin.h>
-static inline void volk_32fc_s32fc_rotatorpuppet_32fc_u_avx(lv_32fc_t* outVector, const lv_32fc_t* inVector, const lv_32fc_t phase_inc, unsigned int num_points){
+static inline void volk_32fc_s32fc_rotatorpuppet_32fc_u_avx(lv_32fc_t* outVector, const lv_32fc_t* inVector, const lv_32fc_t phase_inc, unsigned int num_points){
lv_32fc_t phase[1] = {lv_cmake(.3, .95393)};
volk_32fc_s32fc_x2_rotator_32fc_u_avx(outVector, inVector, phase_inc, phase, num_points);
}
-
+
#endif /* LV_HAVE_AVX */
#endif /* INCLUDED_volk_32fc_s32fc_rotatorpuppet_32fc_a_H */
diff --git a/volk/kernels/volk/volk_32fc_s32fc_x2_rotator_32fc.h b/volk/kernels/volk/volk_32fc_s32fc_x2_rotator_32fc.h
index 72bb3c04b9..0ed9d67cb5 100644
--- a/volk/kernels/volk/volk_32fc_s32fc_x2_rotator_32fc.h
+++ b/volk/kernels/volk/volk_32fc_s32fc_x2_rotator_32fc.h
@@ -18,9 +18,9 @@
\param phase initial phase offset
\param num_points The number of values in inVector to be rotated and stored into cVector
*/
-static inline void volk_32fc_s32fc_x2_rotator_32fc_generic(lv_32fc_t* outVector, const lv_32fc_t* inVector, const lv_32fc_t phase_inc, lv_32fc_t* phase, unsigned int num_points){
- unsigned int i = 0;
- int j = 0;
+static inline void volk_32fc_s32fc_x2_rotator_32fc_generic(lv_32fc_t* outVector, const lv_32fc_t* inVector, const lv_32fc_t phase_inc, lv_32fc_t* phase, unsigned int num_points){
+ unsigned int i = 0;
+ int j = 0;
for(i = 0; i < (unsigned int)(num_points/ROTATOR_RELOAD); ++i) {
for(j = 0; j < ROTATOR_RELOAD; ++j) {
*outVector++ = *inVector++ * (*phase);
@@ -36,7 +36,7 @@ static inline void volk_32fc_s32fc_x2_rotator_32fc_generic(lv_32fc_t* outVector,
*outVector++ = *inVector++ * (*phase);
(*phase) *= phase_inc;
}
-
+
}
#endif /* LV_HAVE_GENERIC */
@@ -50,7 +50,7 @@ static inline void volk_32fc_s32fc_x2_rotator_32fc_a_sse4_1(lv_32fc_t* outVector
const lv_32fc_t* aPtr = inVector;
lv_32fc_t incr = 1;
lv_32fc_t phase_Ptr[2] = {(*phase), (*phase)};
-
+
unsigned int i, j = 0;
for(i = 0; i < 2; ++i) {
@@ -62,36 +62,36 @@ static inline void volk_32fc_s32fc_x2_rotator_32fc_a_sse4_1(lv_32fc_t* outVector
printf("%f, %f\n", lv_creal(phase_Ptr[1]), lv_cimag(phase_Ptr[1]));
printf("incr: %f, %f\n", lv_creal(incr), lv_cimag(incr));*/
__m128 aVal, phase_Val, inc_Val, yl, yh, tmp1, tmp2, z, ylp, yhp, tmp1p, tmp2p;
-
+
phase_Val = _mm_loadu_ps((float*)phase_Ptr);
inc_Val = _mm_set_ps(lv_cimag(incr), lv_creal(incr),lv_cimag(incr), lv_creal(incr));
-
+
const unsigned int halfPoints = num_points / 2;
-
+
for(i = 0; i < (unsigned int)(halfPoints/ROTATOR_RELOAD); i++) {
for(j = 0; j < ROTATOR_RELOAD; ++j) {
-
+
aVal = _mm_load_ps((float*)aPtr);
-
+
yl = _mm_moveldup_ps(phase_Val);
yh = _mm_movehdup_ps(phase_Val);
ylp = _mm_moveldup_ps(inc_Val);
yhp = _mm_movehdup_ps(inc_Val);
-
+
tmp1 = _mm_mul_ps(aVal, yl);
tmp1p = _mm_mul_ps(phase_Val, ylp);
-
+
aVal = _mm_shuffle_ps(aVal, aVal, 0xB1);
phase_Val = _mm_shuffle_ps(phase_Val, phase_Val, 0xB1);
tmp2 = _mm_mul_ps(aVal, yh);
tmp2p = _mm_mul_ps(phase_Val, yhp);
-
+
z = _mm_addsub_ps(tmp1, tmp2);
phase_Val = _mm_addsub_ps(tmp1p, tmp2p);
-
+
_mm_store_ps((float*)cPtr, z);
-
+
aPtr += 2;
cPtr += 2;
}
@@ -103,26 +103,26 @@ static inline void volk_32fc_s32fc_x2_rotator_32fc_a_sse4_1(lv_32fc_t* outVector
}
for(i = 0; i < halfPoints%ROTATOR_RELOAD; ++i) {
aVal = _mm_load_ps((float*)aPtr);
-
+
yl = _mm_moveldup_ps(phase_Val);
yh = _mm_movehdup_ps(phase_Val);
ylp = _mm_moveldup_ps(inc_Val);
yhp = _mm_movehdup_ps(inc_Val);
-
+
tmp1 = _mm_mul_ps(aVal, yl);
tmp1p = _mm_mul_ps(phase_Val, ylp);
-
+
aVal = _mm_shuffle_ps(aVal, aVal, 0xB1);
phase_Val = _mm_shuffle_ps(phase_Val, phase_Val, 0xB1);
tmp2 = _mm_mul_ps(aVal, yh);
tmp2p = _mm_mul_ps(phase_Val, yhp);
-
+
z = _mm_addsub_ps(tmp1, tmp2);
phase_Val = _mm_addsub_ps(tmp1p, tmp2p);
-
+
_mm_store_ps((float*)cPtr, z);
-
+
aPtr += 2;
cPtr += 2;
}
@@ -132,7 +132,7 @@ static inline void volk_32fc_s32fc_x2_rotator_32fc_a_sse4_1(lv_32fc_t* outVector
*cPtr++ = *aPtr++ * phase_Ptr[0];
phase_Ptr[0] *= (phase_inc);
}
-
+
(*phase) = phase_Ptr[0];
}
@@ -156,7 +156,7 @@ static inline void volk_32fc_s32fc_x2_rotator_32fc_u_sse4_1(lv_32fc_t* outVector
const lv_32fc_t* aPtr = inVector;
lv_32fc_t incr = 1;
lv_32fc_t phase_Ptr[2] = {(*phase), (*phase)};
-
+
unsigned int i, j = 0;
for(i = 0; i < 2; ++i) {
@@ -168,36 +168,36 @@ static inline void volk_32fc_s32fc_x2_rotator_32fc_u_sse4_1(lv_32fc_t* outVector
printf("%f, %f\n", lv_creal(phase_Ptr[1]), lv_cimag(phase_Ptr[1]));
printf("incr: %f, %f\n", lv_creal(incr), lv_cimag(incr));*/
__m128 aVal, phase_Val, inc_Val, yl, yh, tmp1, tmp2, z, ylp, yhp, tmp1p, tmp2p;
-
+
phase_Val = _mm_loadu_ps((float*)phase_Ptr);
inc_Val = _mm_set_ps(lv_cimag(incr), lv_creal(incr),lv_cimag(incr), lv_creal(incr));
-
+
const unsigned int halfPoints = num_points / 2;
-
+
for(i = 0; i < (unsigned int)(halfPoints/ROTATOR_RELOAD); i++) {
for(j = 0; j < ROTATOR_RELOAD; ++j) {
-
+
aVal = _mm_loadu_ps((float*)aPtr);
-
+
yl = _mm_moveldup_ps(phase_Val);
yh = _mm_movehdup_ps(phase_Val);
ylp = _mm_moveldup_ps(inc_Val);
yhp = _mm_movehdup_ps(inc_Val);
-
+
tmp1 = _mm_mul_ps(aVal, yl);
tmp1p = _mm_mul_ps(phase_Val, ylp);
-
+
aVal = _mm_shuffle_ps(aVal, aVal, 0xB1);
phase_Val = _mm_shuffle_ps(phase_Val, phase_Val, 0xB1);
tmp2 = _mm_mul_ps(aVal, yh);
tmp2p = _mm_mul_ps(phase_Val, yhp);
-
+
z = _mm_addsub_ps(tmp1, tmp2);
phase_Val = _mm_addsub_ps(tmp1p, tmp2p);
-
+
_mm_storeu_ps((float*)cPtr, z);
-
+
aPtr += 2;
cPtr += 2;
}
@@ -209,26 +209,26 @@ static inline void volk_32fc_s32fc_x2_rotator_32fc_u_sse4_1(lv_32fc_t* outVector
}
for(i = 0; i < halfPoints%ROTATOR_RELOAD; ++i) {
aVal = _mm_loadu_ps((float*)aPtr);
-
+
yl = _mm_moveldup_ps(phase_Val);
yh = _mm_movehdup_ps(phase_Val);
ylp = _mm_moveldup_ps(inc_Val);
yhp = _mm_movehdup_ps(inc_Val);
-
+
tmp1 = _mm_mul_ps(aVal, yl);
tmp1p = _mm_mul_ps(phase_Val, ylp);
-
+
aVal = _mm_shuffle_ps(aVal, aVal, 0xB1);
phase_Val = _mm_shuffle_ps(phase_Val, phase_Val, 0xB1);
tmp2 = _mm_mul_ps(aVal, yh);
tmp2p = _mm_mul_ps(phase_Val, yhp);
-
+
z = _mm_addsub_ps(tmp1, tmp2);
phase_Val = _mm_addsub_ps(tmp1p, tmp2p);
-
+
_mm_storeu_ps((float*)cPtr, z);
-
+
aPtr += 2;
cPtr += 2;
}
@@ -238,7 +238,7 @@ static inline void volk_32fc_s32fc_x2_rotator_32fc_u_sse4_1(lv_32fc_t* outVector
*cPtr++ = *aPtr++ * phase_Ptr[0];
phase_Ptr[0] *= (phase_inc);
}
-
+
(*phase) = phase_Ptr[0];
}
@@ -262,7 +262,7 @@ static inline void volk_32fc_s32fc_x2_rotator_32fc_a_avx(lv_32fc_t* outVector, c
const lv_32fc_t* aPtr = inVector;
lv_32fc_t incr = 1;
lv_32fc_t phase_Ptr[4] = {(*phase), (*phase), (*phase), (*phase)};
-
+
unsigned int i, j = 0;
for(i = 0; i < 4; ++i) {
@@ -276,35 +276,35 @@ static inline void volk_32fc_s32fc_x2_rotator_32fc_a_avx(lv_32fc_t* outVector, c
printf("%f, %f\n", lv_creal(phase_Ptr[3]), lv_cimag(phase_Ptr[3]));
printf("incr: %f, %f\n", lv_creal(incr), lv_cimag(incr));*/
__m256 aVal, phase_Val, inc_Val, yl, yh, tmp1, tmp2, z, ylp, yhp, tmp1p, tmp2p;
-
+
phase_Val = _mm256_loadu_ps((float*)phase_Ptr);
inc_Val = _mm256_set_ps(lv_cimag(incr), lv_creal(incr),lv_cimag(incr), lv_creal(incr),lv_cimag(incr), lv_creal(incr),lv_cimag(incr), lv_creal(incr));
const unsigned int fourthPoints = num_points / 4;
-
+
for(i = 0; i < (unsigned int)(fourthPoints/ROTATOR_RELOAD); i++) {
for(j = 0; j < ROTATOR_RELOAD; ++j) {
-
+
aVal = _mm256_load_ps((float*)aPtr);
-
+
yl = _mm256_moveldup_ps(phase_Val);
yh = _mm256_movehdup_ps(phase_Val);
ylp = _mm256_moveldup_ps(inc_Val);
yhp = _mm256_movehdup_ps(inc_Val);
-
+
tmp1 = _mm256_mul_ps(aVal, yl);
tmp1p = _mm256_mul_ps(phase_Val, ylp);
-
+
aVal = _mm256_shuffle_ps(aVal, aVal, 0xB1);
phase_Val = _mm256_shuffle_ps(phase_Val, phase_Val, 0xB1);
tmp2 = _mm256_mul_ps(aVal, yh);
tmp2p = _mm256_mul_ps(phase_Val, yhp);
-
+
z = _mm256_addsub_ps(tmp1, tmp2);
phase_Val = _mm256_addsub_ps(tmp1p, tmp2p);
-
+
_mm256_store_ps((float*)cPtr, z);
-
+
aPtr += 4;
cPtr += 4;
}
@@ -316,26 +316,26 @@ static inline void volk_32fc_s32fc_x2_rotator_32fc_a_avx(lv_32fc_t* outVector, c
}
for(i = 0; i < fourthPoints%ROTATOR_RELOAD; ++i) {
aVal = _mm256_load_ps((float*)aPtr);
-
+
yl = _mm256_moveldup_ps(phase_Val);
yh = _mm256_movehdup_ps(phase_Val);
ylp = _mm256_moveldup_ps(inc_Val);
yhp = _mm256_movehdup_ps(inc_Val);
-
+
tmp1 = _mm256_mul_ps(aVal, yl);
tmp1p = _mm256_mul_ps(phase_Val, ylp);
-
+
aVal = _mm256_shuffle_ps(aVal, aVal, 0xB1);
phase_Val = _mm256_shuffle_ps(phase_Val, phase_Val, 0xB1);
tmp2 = _mm256_mul_ps(aVal, yh);
tmp2p = _mm256_mul_ps(phase_Val, yhp);
-
+
z = _mm256_addsub_ps(tmp1, tmp2);
phase_Val = _mm256_addsub_ps(tmp1p, tmp2p);
-
+
_mm256_store_ps((float*)cPtr, z);
-
+
aPtr += 4;
cPtr += 4;
}
@@ -345,7 +345,7 @@ static inline void volk_32fc_s32fc_x2_rotator_32fc_a_avx(lv_32fc_t* outVector, c
*cPtr++ = *aPtr++ * phase_Ptr[0];
phase_Ptr[0] *= (phase_inc);
}
-
+
(*phase) = phase_Ptr[0];
}
@@ -369,7 +369,7 @@ static inline void volk_32fc_s32fc_x2_rotator_32fc_u_avx(lv_32fc_t* outVector, c
const lv_32fc_t* aPtr = inVector;
lv_32fc_t incr = 1;
lv_32fc_t phase_Ptr[4] = {(*phase), (*phase), (*phase), (*phase)};
-
+
unsigned int i, j = 0;
for(i = 0; i < 4; ++i) {
@@ -383,35 +383,35 @@ static inline void volk_32fc_s32fc_x2_rotator_32fc_u_avx(lv_32fc_t* outVector, c
printf("%f, %f\n", lv_creal(phase_Ptr[3]), lv_cimag(phase_Ptr[3]));
printf("incr: %f, %f\n", lv_creal(incr), lv_cimag(incr));*/
__m256 aVal, phase_Val, inc_Val, yl, yh, tmp1, tmp2, z, ylp, yhp, tmp1p, tmp2p;
-
+
phase_Val = _mm256_loadu_ps((float*)phase_Ptr);
inc_Val = _mm256_set_ps(lv_cimag(incr), lv_creal(incr),lv_cimag(incr), lv_creal(incr),lv_cimag(incr), lv_creal(incr),lv_cimag(incr), lv_creal(incr));
const unsigned int fourthPoints = num_points / 4;
-
+
for(i = 0; i < (unsigned int)(fourthPoints/ROTATOR_RELOAD); i++) {
for(j = 0; j < ROTATOR_RELOAD; ++j) {
-
+
aVal = _mm256_loadu_ps((float*)aPtr);
-
+
yl = _mm256_moveldup_ps(phase_Val);
yh = _mm256_movehdup_ps(phase_Val);
ylp = _mm256_moveldup_ps(inc_Val);
yhp = _mm256_movehdup_ps(inc_Val);
-
+
tmp1 = _mm256_mul_ps(aVal, yl);
tmp1p = _mm256_mul_ps(phase_Val, ylp);
-
+
aVal = _mm256_shuffle_ps(aVal, aVal, 0xB1);
phase_Val = _mm256_shuffle_ps(phase_Val, phase_Val, 0xB1);
tmp2 = _mm256_mul_ps(aVal, yh);
tmp2p = _mm256_mul_ps(phase_Val, yhp);
-
+
z = _mm256_addsub_ps(tmp1, tmp2);
phase_Val = _mm256_addsub_ps(tmp1p, tmp2p);
-
+
_mm256_storeu_ps((float*)cPtr, z);
-
+
aPtr += 4;
cPtr += 4;
}
@@ -423,26 +423,26 @@ static inline void volk_32fc_s32fc_x2_rotator_32fc_u_avx(lv_32fc_t* outVector, c
}
for(i = 0; i < fourthPoints%ROTATOR_RELOAD; ++i) {
aVal = _mm256_loadu_ps((float*)aPtr);
-
+
yl = _mm256_moveldup_ps(phase_Val);
yh = _mm256_movehdup_ps(phase_Val);
ylp = _mm256_moveldup_ps(inc_Val);
yhp = _mm256_movehdup_ps(inc_Val);
-
+
tmp1 = _mm256_mul_ps(aVal, yl);
tmp1p = _mm256_mul_ps(phase_Val, ylp);
-
+
aVal = _mm256_shuffle_ps(aVal, aVal, 0xB1);
phase_Val = _mm256_shuffle_ps(phase_Val, phase_Val, 0xB1);
tmp2 = _mm256_mul_ps(aVal, yh);
tmp2p = _mm256_mul_ps(phase_Val, yhp);
-
+
z = _mm256_addsub_ps(tmp1, tmp2);
phase_Val = _mm256_addsub_ps(tmp1p, tmp2p);
-
+
_mm256_storeu_ps((float*)cPtr, z);
-
+
aPtr += 4;
cPtr += 4;
}
@@ -452,11 +452,11 @@ static inline void volk_32fc_s32fc_x2_rotator_32fc_u_avx(lv_32fc_t* outVector, c
*cPtr++ = *aPtr++ * phase_Ptr[0];
phase_Ptr[0] *= (phase_inc);
}
-
+
(*phase) = phase_Ptr[0];
}
-
+
#endif /* LV_HAVE_AVX */
#endif /* INCLUDED_volk_32fc_s32fc_rotator_32fc_a_H */
diff --git a/volk/kernels/volk/volk_8u_x4_conv_k7_r2_8u.h b/volk/kernels/volk/volk_8u_x4_conv_k7_r2_8u.h
index dfed73b634..ece8cf0f48 100644
--- a/volk/kernels/volk/volk_8u_x4_conv_k7_r2_8u.h
+++ b/volk/kernels/volk/volk_8u_x4_conv_k7_r2_8u.h
@@ -8,7 +8,11 @@ typedef union {
unsigned int w[64/*NUMSTATES*//32];
unsigned short s[64/*NUMSTATES*//16];
unsigned char c[64/*NUMSTATES*//8];
+#ifdef _MSC_VER
+} decision_t;
+#else
} decision_t __attribute__ ((aligned (16)));
+#endif
static inline void renormalize(unsigned char* X, unsigned char threshold){
int NUMSTATES = 64;
@@ -36,7 +40,7 @@ static inline void BFLY(int i, int s, unsigned char * syms, unsigned char *Y, un
int METRICSHIFT = 1;
int PRECISIONSHIFT = 2;
-
+
metric =0;
for(j=0;j<RATE;j++)
@@ -335,7 +339,7 @@ static inline void volk_8u_x4_conv_k7_r2_8u_spiral(unsigned char* Y, unsigned ch
for(i=0;i<64/2;i++){
BFLY(i, (((framebits+excess) >> 1) << 1) + j , syms, Y, X, (decision_t *)dec, Branchtab);
}
-
+
renormalize(Y, 210);
@@ -344,7 +348,7 @@ static inline void volk_8u_x4_conv_k7_r2_8u_spiral(unsigned char* Y, unsigned ch
printf("%d,", Y[ch]);
}
printf("\n");*/
-
+
}
/*skip*/
return;
@@ -368,16 +372,16 @@ static inline void volk_8u_x4_conv_k7_r2_8u_generic(unsigned char* Y, unsigned c
int s,i;
-
-
+
+
for (s=0;s<nbits;s++){
void *tmp;
for(i=0;i<NUMSTATES/2;i++){
BFLY(i, s, syms, Y, X, (decision_t *)dec, Branchtab);
}
-
+
renormalize(Y, RENORMALIZE_THRESHOLD);
diff --git a/volk/lib/CMakeLists.txt b/volk/lib/CMakeLists.txt
index d2e4e62212..d72eb726e4 100644
--- a/volk/lib/CMakeLists.txt
+++ b/volk/lib/CMakeLists.txt
@@ -205,6 +205,22 @@ if(${HAVE_AVX_CVTPI32_PS})
add_definitions(-DHAVE_AVX_CVTPI32_PS)
endif()
+########################################################################
+# if the CPU is not x86, eliminate all Intel SIMD
+########################################################################
+
+if(NOT CPU_IS_x86)
+ OVERRULE_ARCH(3dnow "Architecture is not x86 or x86_64")
+ OVERRULE_ARCH(mmx "Architecture is not x86 or x86_64")
+ OVERRULE_ARCH(sse "Architecture is not x86 or x86_64")
+ OVERRULE_ARCH(sse2 "Architecture is not x86 or x86_64")
+ OVERRULE_ARCH(sse3 "Architecture is not x86 or x86_64")
+ OVERRULE_ARCH(ssse3 "Architecture is not x86 or x86_64")
+ OVERRULE_ARCH(sse4_a "Architecture is not x86 or x86_64")
+ OVERRULE_ARCH(sse4_1 "Architecture is not x86 or x86_64")
+ OVERRULE_ARCH(sse4_2 "Architecture is not x86 or x86_64")
+ OVERRULE_ARCH(avx "Architecture is not x86 or x86_64")
+endif(NOT CPU_IS_x86)
########################################################################
# implement overruling in the ORC case,
@@ -456,6 +472,19 @@ install(TARGETS volk
RUNTIME DESTINATION bin COMPONENT "volk_runtime" # .dll file
)
+if(ENABLE_STATIC_LIBS)
+ add_library(volk_static STATIC ${volk_sources})
+
+ if(NOT WIN32)
+ set_target_properties(volk_static
+ PROPERTIES OUTPUT_NAME volk)
+ endif(NOT WIN32)
+
+ install(TARGETS volk_static
+ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT "volk_devel" # .lib file
+ )
+endif(ENABLE_STATIC_LIBS)
+
########################################################################
# Build the QA test application
########################################################################
@@ -479,4 +508,3 @@ if(Boost_FOUND)
add_test(qa_volk_test_all test_all)
endif(Boost_FOUND)
-
diff --git a/volk/lib/constants.c.in b/volk/lib/constants.c.in
index dc48af4a9f..68e9b242a7 100644
--- a/volk/lib/constants.c.in
+++ b/volk/lib/constants.c.in
@@ -48,16 +48,16 @@ char*
volk_c_compiler()
{
return "@cmake_c_compiler_version@";
-}
+}
char*
volk_compiler_flags()
{
return "@COMPILER_INFO@";
-}
+}
char*
volk_available_machines()
{
return "@available_machines@";
-}
+}
diff --git a/volk/lib/gcc_x86_cpuid.h b/volk/lib/gcc_x86_cpuid.h
index 3c3f47b003..e0254f192c 100644
--- a/volk/lib/gcc_x86_cpuid.h
+++ b/volk/lib/gcc_x86_cpuid.h
@@ -5,16 +5,16 @@
* 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.
- *
+ *
* This file 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.
- *
+ *
* Under Section 7 of GPL version 3, you are granted additional
* permissions described in the GCC Runtime Library Exception, version
* 3.1, as published by the Free Software Foundation.
- *
+ *
* You should have received a copy of the GNU General Public License and
* a copy of the GCC Runtime Library Exception along with this program;
* see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
diff --git a/volk/lib/volk_rank_archs.c b/volk/lib/volk_rank_archs.c
index 6ab013f269..0e98ac0709 100644
--- a/volk/lib/volk_rank_archs.c
+++ b/volk/lib/volk_rank_archs.c
@@ -74,6 +74,13 @@ int volk_rank_archs(
prefs_loaded = 1;
}
+ // If we've defined VOLK_GENERIC to be anything, always return the
+ // 'generic' kernel. Used in GR's QA code.
+ char *gen_env = getenv("VOLK_GENERIC");
+ if(gen_env) {
+ return volk_get_index(impl_names, n_impls, "generic");
+ }
+
//now look for the function name in the prefs list
for(i = 0; i < n_arch_prefs; i++)
{
diff --git a/volk/python/volk_modtool/README b/volk/python/volk_modtool/README
index 5413ff1f1a..5445ed9462 100644
--- a/volk/python/volk_modtool/README
+++ b/volk/python/volk_modtool/README
@@ -97,7 +97,7 @@ Options for Adding and Removing Kernels:
Optional: -b
-x, --remove_kernel
- Remove kernel from module.
+ Remove kernel from module.
Required: -n.
Optional: -b
@@ -105,7 +105,7 @@ Options for Listing Kernels:
-l, --list
Lists all kernels available in the base VOLK module.
- -k, --kernels
+ -k, --kernels
Lists all kernels in this VOLK module.
-r, --remote-list
diff --git a/volk/python/volk_modtool/__init__.py b/volk/python/volk_modtool/__init__.py
index 6ddf48da05..e66bb0ac87 100644
--- a/volk/python/volk_modtool/__init__.py
+++ b/volk/python/volk_modtool/__init__.py
@@ -1,24 +1,24 @@
#!/usr/bin/env python
#
# Copyright 2013 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.
-#
+#
from cfg import volk_modtool_config
from volk_modtool_generate import volk_modtool
diff --git a/volk/python/volk_modtool/cfg.py b/volk/python/volk_modtool/cfg.py
index c58dc59091..a7eb32a347 100644
--- a/volk/python/volk_modtool/cfg.py
+++ b/volk/python/volk_modtool/cfg.py
@@ -1,24 +1,24 @@
#!/usr/bin/env python
#
# Copyright 2013 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.
-#
+#
import ConfigParser
import sys
@@ -37,7 +37,7 @@ class volk_modtool_config:
def remap(self):
for i in self.remapification:
self.verify_section(i)
-
+
def verify_section(self, section):
stuff = self.cfg.items(section[0])
for i in range(len(section[1])):
@@ -50,17 +50,17 @@ class volk_modtool_config:
raise exceptions.ValueError('Verification function returns False... key:%s, val:%s'%(stuff[i][0], stuff[i][1]))
except:
raise exceptions.IOError('bad configuration... key:%s, val:%s'%(stuff[i][0], stuff[i][1]))
-
+
def __init__(self, cfg=None):
self.config_name = 'config'
self.config_defaults = ['name', 'destination', 'base']
self.config_defaults_remap = ['1',
- 'self.cfg.set(self.config_name, \'$k1\', os.path.realpath(os.path.expanduser(\'$1\')))',
- 'self.cfg.set(self.config_name, \'$k2\', os.path.realpath(os.path.expanduser(\'$2\')))']
-
+ 'self.cfg.set(self.config_name, \'$k1\', os.path.realpath(os.path.expanduser(\'$1\')))',
+ 'self.cfg.set(self.config_name, \'$k2\', os.path.realpath(os.path.expanduser(\'$2\')))']
+
self.config_defaults_verify = ['re.match(\'[a-zA-Z0-9]+$\', \'$0\')',
- 'os.path.exists(\'$1\')',
+ 'os.path.exists(\'$1\')',
'os.path.exists(\'$2\')']
self.remapification = [(self.config_name, self.config_defaults_remap)]
self.verification = [(self.config_name, self.config_defaults_verify)]
@@ -79,8 +79,8 @@ class volk_modtool_config:
self.cfg = icfg
self.remap()
self.verify()
-
-
+
+
def read_map(self, name, inp):
if self.cfg.has_section(name):
@@ -96,9 +96,9 @@ class volk_modtool_config:
retval[i[0]] = i[1]
return retval
-
-
+
+
diff --git a/volk/python/volk_modtool/volk_modtool b/volk/python/volk_modtool/volk_modtool
index 74b71adde2..9f31b9ea54 100755
--- a/volk/python/volk_modtool/volk_modtool
+++ b/volk/python/volk_modtool/volk_modtool
@@ -1,24 +1,24 @@
#!/usr/bin/env python
#
# Copyright 2013 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.
-#
+#
from volk_modtool import volk_modtool, volk_modtool_config
from optparse import OptionParser, OptionGroup
@@ -47,7 +47,7 @@ if __name__ == '__main__':
actions.add_option('-l', '--list', action='store_true',
help='List all kernels in the base.')
actions.add_option('-k', '--kernels', action='store_true',
- help='List all kernels in the module.')
+ help='List all kernels in the module.')
actions.add_option('-r', '--remote_list', action='store_true',
help='List all available kernels in remote volk module. Requires: -b.')
actions.add_option('-m', '--moo', action='store_true',
@@ -57,7 +57,7 @@ if __name__ == '__main__':
(options, args) = parser.parse_args();
if len(sys.argv) < 2:
parser.print_help()
-
+
elif options.moo:
print " (__) "
print " (oo) "
@@ -65,18 +65,18 @@ if __name__ == '__main__':
print " / | || "
print " * /\---/\ "
print " ~~ ~~ "
-
+
else:
my_cfg = volk_modtool_config(options.config_file);
-
+
my_modtool = volk_modtool(my_cfg.get_map(my_cfg.config_name));
-
+
if options.install:
my_modtool.make_module_skeleton();
my_modtool.write_default_cfg(my_cfg.cfg);
-
+
if options.add_kernel:
if not options.kernel_name:
raise exceptions.IOError("This action requires the -n option.");
@@ -96,7 +96,7 @@ if __name__ == '__main__':
my_modtool.remove_kernel(name);
if options.add_all_kernels:
-
+
if options.base_path:
base = options.base_path;
else:
@@ -115,7 +115,7 @@ if __name__ == '__main__':
print i;
if options.list:
- kernelset = my_modtool.get_current_kernels();
+ kernelset = my_modtool.get_current_kernels();
for i in kernelset:
print i;
diff --git a/volk/python/volk_modtool/volk_modtool_generate.py b/volk/python/volk_modtool/volk_modtool_generate.py
index 637d4892ae..746dc01ec8 100644
--- a/volk/python/volk_modtool/volk_modtool_generate.py
+++ b/volk/python/volk_modtool/volk_modtool_generate.py
@@ -1,23 +1,23 @@
#
# Copyright 2013 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.
-#
+#
import os
import glob
@@ -62,13 +62,13 @@ class volk_modtool:
else:
hdr_files = glob.glob(os.path.join(base, "kernels/volk_" + name + "/*.h"));
begins = re.compile("(?<=volk_" + name + "_).*")
-
+
datatypes = [];
functions = [];
-
-
+
+
for line in hdr_files:
-
+
subline = re.search(".*\.h.*", os.path.basename(line))
if subline:
subsubline = begins.search(subline.group(0));
@@ -77,8 +77,8 @@ class volk_modtool:
subdtype = re.search("[0-9]+[A-z]+", dtype);
if subdtype:
datatypes.append(subdtype.group(0));
-
-
+
+
datatypes = set(datatypes);
for line in hdr_files:
@@ -88,11 +88,11 @@ class volk_modtool:
subline = re.search(begins.pattern[:-2] + dt + ".*(?=\.h)", line);
if subline:
functions.append(subline.group(0));
-
+
return set(functions);
def make_module_skeleton(self):
-
+
dest = os.path.join(self.my_dict['destination'], 'volk_' + self.my_dict['name'])
if os.path.exists(dest):
raise exceptions.IOError("Destination %s already exits!"%(dest));
@@ -118,7 +118,7 @@ class volk_modtool:
if not os.path.exists(os.path.dirname(dest)):
os.makedirs(os.path.dirname(dest))
open(dest, 'w+').write(outstring);
-
+
infile = os.path.join(self.my_dict['destination'], 'volk_' + self.my_dict['name'], 'lib/testqa.cc');
instring = open(infile, 'r').read();
@@ -140,17 +140,17 @@ class volk_modtool:
outfile = open(os.path.join(self.my_dict['destination'], 'volk_' + self.my_dict['name'], 'volk_modtool.cfg'), 'wb');
cfg.write(outfile);
outfile.close();
-
-
- def convert_kernel(self, oldvolk, name, base, inpath, top):
+
+
+ def convert_kernel(self, oldvolk, name, base, inpath, top):
infile = os.path.join(inpath, 'kernels/' + top[:-1] + '/' + top + name + '.h');
instring = open(infile, 'r').read();
outstring = re.sub(oldvolk, 'volk_' + self.my_dict['name'], instring);
newname = 'volk_' + self.my_dict['name'] + '_' + name + '.h';
relpath = os.path.relpath(infile, base);
- newrelpath = re.sub(oldvolk, 'volk_' + self.my_dict['name'], relpath);
- dest = os.path.join(self.my_dict['destination'], 'volk_' + self.my_dict['name'], os.path.dirname(newrelpath), newname);
-
+ newrelpath = re.sub(oldvolk, 'volk_' + self.my_dict['name'], relpath);
+ dest = os.path.join(self.my_dict['destination'], 'volk_' + self.my_dict['name'], os.path.dirname(newrelpath), newname);
+
if not os.path.exists(os.path.dirname(dest)):
os.makedirs(os.path.dirname(dest))
open(dest, 'w+').write(outstring);
@@ -178,23 +178,23 @@ class volk_modtool:
base = os.path.join(self.my_dict['destination'], top[:-1]) ;
if not name in self.get_current_kernels():
-
+
raise exceptions.IOError("Requested kernel %s is not in module %s"%(name,base));
-
-
-
+
+
+
inpath = os.path.abspath(base);
-
-
+
+
kernel = re.compile(name)
search_kernels = Set([kernel])
profile = re.compile('^\s*VOLK_PROFILE')
puppet = re.compile('^\s*VOLK_PUPPET')
src_dest = os.path.join(inpath, 'apps/', top[:-1] + '_profile.cc');
- infile = open(src_dest);
+ infile = open(src_dest);
otherlines = infile.readlines();
open(src_dest, 'w+').write('');
-
+
for otherline in otherlines:
write_okay = True;
if kernel.search(otherline):
@@ -207,22 +207,22 @@ class volk_modtool:
if write_okay:
open(src_dest, 'a').write(otherline);
-
+
src_dest = os.path.join(inpath, 'lib/testqa.cc')
infile = open(src_dest);
otherlines = infile.readlines();
open(src_dest, 'w+').write('');
-
+
for otherline in otherlines:
write_okay = True;
-
+
for kernel in search_kernels:
if kernel.search(otherline):
write_okay = False;
-
+
if write_okay:
open(src_dest, 'a').write(otherline);
-
+
for kernel in search_kernels:
infile = os.path.join(inpath, 'kernels/' + top[:-1] + '/' + top + kernel.pattern + '.h');
print "Removing kernel %s"%(kernel.pattern)
@@ -235,7 +235,7 @@ class volk_modtool:
print orcfile
if(os.path.exists(orcfile)):
os.remove(orcfile);
-
+
def import_kernel(self, name, base):
if not (base):
base = self.my_dict['base'];
@@ -244,24 +244,24 @@ class volk_modtool:
basename = self.get_basename(base);
if not name in self.get_current_kernels(base):
raise exceptions.IOError("Requested kernel %s is not in module %s"%(name,base));
-
+
inpath = os.path.abspath(base);
if len(basename) > 0:
top = 'volk_' + basename + '_';
else:
top = 'volk_'
oldvolk = re.compile(top[:-1]);
-
+
self.convert_kernel(oldvolk, name, base, inpath, top);
-
+
kernel = re.compile(name)
search_kernels = Set([kernel])
profile = re.compile('^\s*VOLK_PROFILE')
puppet = re.compile('^\s*VOLK_PUPPET')
infile = open(os.path.join(inpath, 'apps/', oldvolk.pattern + '_profile.cc'));
- otherinfile = open(os.path.join(self.my_dict['destination'], 'volk_' + self.my_dict['name'], 'apps/volk_' + self.my_dict['name'] + '_profile.cc'));
- dest = os.path.join(self.my_dict['destination'], 'volk_' + self.my_dict['name'], 'apps/volk_' + self.my_dict['name'] + '_profile.cc');
+ otherinfile = open(os.path.join(self.my_dict['destination'], 'volk_' + self.my_dict['name'], 'apps/volk_' + self.my_dict['name'] + '_profile.cc'));
+ dest = os.path.join(self.my_dict['destination'], 'volk_' + self.my_dict['name'], 'apps/volk_' + self.my_dict['name'] + '_profile.cc');
lines = infile.readlines();
otherlines = otherinfile.readlines();
open(dest, 'w+').write('');
@@ -295,19 +295,19 @@ class volk_modtool:
for kernel in search_kernels:
print "Adding kernel %s from module %s"%(kernel.pattern,base)
-
+
infile = open(os.path.join(inpath, 'lib/testqa.cc'));
- otherinfile = open(os.path.join(self.my_dict['destination'], 'volk_' + self.my_dict['name'], 'lib/testqa.cc'));
- dest = os.path.join(self.my_dict['destination'], 'volk_' + self.my_dict['name'], 'lib/testqa.cc');
+ otherinfile = open(os.path.join(self.my_dict['destination'], 'volk_' + self.my_dict['name'], 'lib/testqa.cc'));
+ dest = os.path.join(self.my_dict['destination'], 'volk_' + self.my_dict['name'], 'lib/testqa.cc');
lines = infile.readlines();
otherlines = otherinfile.readlines();
open(dest, 'w+').write('');
inserted = False;
insert = False
for otherline in otherlines:
-
+
if (re.match('\s*', otherline) == None or re.match('\s*#.*', otherline) == None):
-
+
insert = True;
if insert and not inserted:
inserted = True;
@@ -323,8 +323,8 @@ class volk_modtool:
write_okay = False
if write_okay:
open(dest, 'a').write(otherline);
-
-
-
-
+
+
+
+