summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake/Modules/FindQwt.cmake8
-rw-r--r--cmake/Toolchains/arm_cortex_a8_native.cmake4
-rw-r--r--gnuradio-core/src/lib/runtime/gr_sync_decimator.h2
-rw-r--r--gnuradio-core/src/lib/runtime/gr_sync_interpolator.h1
-rw-r--r--gnuradio-examples/grc/audio/cvsd_sweep.grc14
-rw-r--r--gr-audio/lib/osx/audio_osx_source.cc79
-rw-r--r--gr-digital/examples/CMakeLists.txt14
-rw-r--r--gr-digital/grc/CMakeLists.txt1
-rw-r--r--gr-digital/grc/Makefile.am1
-rw-r--r--gr-digital/grc/digital_block_tree.xml1
-rw-r--r--gr-digital/grc/digital_constellation_receiver_cb.xml40
-rw-r--r--gr-digital/include/digital_costas_loop_cc.h9
-rw-r--r--gr-gsm-fr-vocoder/Makefile.am27
-rw-r--r--gr-uhd/grc/gen_uhd_usrp_blocks.py4
-rw-r--r--gr-vocoder/CMakeLists.txt1
-rw-r--r--gr-vocoder/grc/CMakeLists.txt42
-rw-r--r--gr-vocoder/grc/Makefile.am25
-rw-r--r--gr-vocoder/grc/vocoder_alaw_decode_bs.xml20
-rw-r--r--gr-vocoder/grc/vocoder_alaw_encode_sb.xml22
-rw-r--r--gr-vocoder/grc/vocoder_block_tree.xml52
-rw-r--r--gr-vocoder/grc/vocoder_codec2_decode_ps.xml20
-rw-r--r--gr-vocoder/grc/vocoder_codec2_encode_sp.xml22
-rw-r--r--gr-vocoder/grc/vocoder_cvsd_decode.xml (renamed from grc/blocks/blks2_cvsd_decode.xml)6
-rw-r--r--gr-vocoder/grc/vocoder_cvsd_decode_bs.xml21
-rw-r--r--gr-vocoder/grc/vocoder_cvsd_encode.xml (renamed from grc/blocks/blks2_cvsd_encode.xml)6
-rw-r--r--gr-vocoder/grc/vocoder_cvsd_encode_sb.xml22
-rw-r--r--gr-vocoder/grc/vocoder_g721_decode_bs.xml20
-rw-r--r--gr-vocoder/grc/vocoder_g721_encode_sb.xml22
-rw-r--r--gr-vocoder/grc/vocoder_g723_24_decode_bs.xml20
-rw-r--r--gr-vocoder/grc/vocoder_g723_24_encode_sb.xml22
-rw-r--r--gr-vocoder/grc/vocoder_g723_40_decode_bs.xml20
-rw-r--r--gr-vocoder/grc/vocoder_g723_40_encode_sb.xml22
-rw-r--r--gr-vocoder/grc/vocoder_gsm_fr_decode_ps.xml20
-rw-r--r--gr-vocoder/grc/vocoder_gsm_fr_encode_sp.xml22
-rw-r--r--gr-vocoder/grc/vocoder_ulaw_decode_bs.xml20
-rw-r--r--gr-vocoder/grc/vocoder_ulaw_encode_sb.xml22
-rw-r--r--grc/blocks/Makefile.am2
-rw-r--r--grc/blocks/block_tree.xml5
38 files changed, 605 insertions, 76 deletions
diff --git a/cmake/Modules/FindQwt.cmake b/cmake/Modules/FindQwt.cmake
index 857020796d..cbda16aa07 100644
--- a/cmake/Modules/FindQwt.cmake
+++ b/cmake/Modules/FindQwt.cmake
@@ -10,11 +10,17 @@ find_path (QWT_INCLUDE_DIRS
/usr/local/include/qwt
/usr/include/qwt-qt4
/usr/include/qwt
+ /opt/local/include/qwt
+ /sw/include/qwt
)
find_library (QWT_LIBRARIES
NAMES qwt-qt4 qwt
- PATHS /usr/local/lib /usr/lib
+ PATHS
+ /usr/local/lib
+ /usr/lib
+ /opt/local/lib
+ /sw/lib
)
# handle the QUIETLY and REQUIRED arguments and set QWT_FOUND to TRUE if
diff --git a/cmake/Toolchains/arm_cortex_a8_native.cmake b/cmake/Toolchains/arm_cortex_a8_native.cmake
index 7dbb800499..8e60eaab19 100644
--- a/cmake/Toolchains/arm_cortex_a8_native.cmake
+++ b/cmake/Toolchains/arm_cortex_a8_native.cmake
@@ -4,5 +4,5 @@
########################################################################
set(CMAKE_CXX_COMPILER g++)
set(CMAKE_C_COMPILER gcc)
-set(CMAKE_CXX_FLAGS "-march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp")
-set(CMAKE_C_FLAGS ${CMAKE_CXX_FLAGS}) #same flags for C sources
+set(CMAKE_CXX_FLAGS "-march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp" CACHE STRING "" FORCE)
+set(CMAKE_C_FLAGS ${CMAKE_CXX_FLAGS} CACHE STRING "" FORCE) #same flags for C sources
diff --git a/gnuradio-core/src/lib/runtime/gr_sync_decimator.h b/gnuradio-core/src/lib/runtime/gr_sync_decimator.h
index b2ed3c4fe5..7228d3655c 100644
--- a/gnuradio-core/src/lib/runtime/gr_sync_decimator.h
+++ b/gnuradio-core/src/lib/runtime/gr_sync_decimator.h
@@ -38,7 +38,7 @@ class GR_CORE_API gr_sync_decimator : public gr_sync_block
unsigned d_decimation;
protected:
-
+ gr_sync_decimator (void){} //allows pure virtual interface sub-classes
gr_sync_decimator (const std::string &name,
gr_io_signature_sptr input_signature,
gr_io_signature_sptr output_signature,
diff --git a/gnuradio-core/src/lib/runtime/gr_sync_interpolator.h b/gnuradio-core/src/lib/runtime/gr_sync_interpolator.h
index d65b3da1e5..c332a5272c 100644
--- a/gnuradio-core/src/lib/runtime/gr_sync_interpolator.h
+++ b/gnuradio-core/src/lib/runtime/gr_sync_interpolator.h
@@ -38,6 +38,7 @@ class GR_CORE_API gr_sync_interpolator : public gr_sync_block
unsigned d_interpolation;
protected:
+ gr_sync_interpolator (void){} //allows pure virtual interface sub-classes
gr_sync_interpolator (const std::string &name,
gr_io_signature_sptr input_signature,
gr_io_signature_sptr output_signature,
diff --git a/gnuradio-examples/grc/audio/cvsd_sweep.grc b/gnuradio-examples/grc/audio/cvsd_sweep.grc
index 8d0b385cef..b645b747ab 100644
--- a/gnuradio-examples/grc/audio/cvsd_sweep.grc
+++ b/gnuradio-examples/grc/audio/cvsd_sweep.grc
@@ -25,10 +25,10 @@
</param>
</block>
<block>
- <key>blks2_cvsd_decode</key>
+ <key>vocoder_cvsd_decode_bf</key>
<param>
<key>id</key>
- <value>blks2_cvsd_decode_0</value>
+ <value>vocoder_cvsd_decode_bf_0</value>
</param>
<param>
<key>_enabled</key>
@@ -157,7 +157,7 @@
</param>
</block>
<block>
- <key>blks2_cvsd_encode</key>
+ <key>vocoder_cvsd_encode_fb</key>
<param>
<key>id</key>
<value>enc</value>
@@ -863,7 +863,7 @@
</connection>
<connection>
<source_block_id>enc</source_block_id>
- <sink_block_id>blks2_cvsd_decode_0</sink_block_id>
+ <sink_block_id>vocoder_cvsd_decode_bf_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
@@ -874,19 +874,19 @@
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blks2_cvsd_decode_0</source_block_id>
+ <source_block_id>vocoder_cvsd_decode_bf_0</source_block_id>
<sink_block_id>dec_fft</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blks2_cvsd_decode_0</source_block_id>
+ <source_block_id>vocoder_cvsd_decode_bf_0</source_block_id>
<sink_block_id>dec_scope</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blks2_cvsd_decode_0</source_block_id>
+ <source_block_id>vocoder_cvsd_decode_bf_0</source_block_id>
<sink_block_id>audio_sink</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
diff --git a/gr-audio/lib/osx/audio_osx_source.cc b/gr-audio/lib/osx/audio_osx_source.cc
index 61f8eb4a6d..6c5609d208 100644
--- a/gr-audio/lib/osx/audio_osx_source.cc
+++ b/gr-audio/lib/osx/audio_osx_source.cc
@@ -300,7 +300,7 @@ audio_osx_source::audio_osx_source (int sample_rate,
// get the max number of input (& thus output) channels supported by
// this device
- d_n_max_channels = asbd_client.mChannelsPerFrame;
+ d_n_max_channels = asbd_device.mChannelsPerFrame;
// create the output io signature;
// no input siganture to set (source is hardware)
@@ -319,6 +319,31 @@ audio_osx_source::audio_osx_source (int sample_rate,
d_deviceSampleRate = asbd_device.mSampleRate;
d_n_deviceChannels = asbd_device.mChannelsPerFrame;
+ asbd_client.mSampleRate = asbd_device.mSampleRate;
+ asbd_client.mFormatID = kAudioFormatLinearPCM;
+ asbd_client.mFormatFlags = (kAudioFormatFlagIsFloat |
+ kAudioFormatFlagIsPacked |
+ kAudioFormatFlagIsNonInterleaved);
+ if ((asbd_client.mFormatID == kAudioFormatLinearPCM) &&
+ (d_n_deviceChannels == 1)) {
+ asbd_client.mFormatFlags &= ~kLinearPCMFormatFlagIsNonInterleaved;
+ }
+ asbd_client.mBytesPerFrame = sizeof (float);
+ asbd_client.mFramesPerPacket = 1;
+ asbd_client.mBitsPerChannel = asbd_client.mBytesPerFrame * 8;
+ asbd_client.mChannelsPerFrame = d_n_deviceChannels;
+ asbd_client.mBytesPerPacket = asbd_client.mBytesPerFrame;
+
+ propertySize = sizeof(AudioStreamBasicDescription);
+ err = AudioUnitSetProperty (d_InputAU,
+ kAudioUnitProperty_StreamFormat,
+ kAudioUnitScope_Output,
+ 1,
+ &asbd_client,
+ propertySize);
+ CheckErrorAndThrow (err, "AudioUnitSetProperty Device Ouput Stream Format",
+ "audio_osx_source::audio_osx_source");
+
// create an ASBD for the user's wants
asbd_user.mSampleRate = d_outputSampleRate;
@@ -327,11 +352,11 @@ audio_osx_source::audio_osx_source (int sample_rate,
GR_PCM_ENDIANNESS |
kLinearPCMFormatFlagIsPacked |
kAudioFormatFlagIsNonInterleaved);
- asbd_user.mBytesPerPacket = 4;
+ asbd_user.mBytesPerPacket = sizeof (float);
asbd_user.mFramesPerPacket = 1;
- asbd_user.mBytesPerFrame = 4;
- asbd_user.mChannelsPerFrame = d_n_max_channels;
- asbd_user.mBitsPerChannel = 32;
+ asbd_user.mBytesPerFrame = asbd_user.mBytesPerPacket;
+ asbd_user.mChannelsPerFrame = d_n_deviceChannels;
+ asbd_user.mBitsPerChannel = asbd_user.mBytesPerPacket * 8;
if (d_deviceSampleRate == d_outputSampleRate) {
// no need to do conversion if asbd_client matches user wants
@@ -914,17 +939,41 @@ audio_osx_source::SetDefaultInputDeviceAsCurrent
()
{
// set the default input device
- AudioDeviceID deviceID;
+ AudioDeviceID deviceID = 0;
UInt32 dataSize = sizeof (AudioDeviceID);
- AudioHardwareGetProperty (kAudioHardwarePropertyDefaultInputDevice,
- &dataSize,
- &deviceID);
- OSStatus err = AudioUnitSetProperty (d_InputAU,
- kAudioOutputUnitProperty_CurrentDevice,
- kAudioUnitScope_Global,
- 0,
- &deviceID,
- sizeof (AudioDeviceID));
+ OSStatus err = noErr;
+
+#ifndef GR_USE_OLD_AUDIO_UNIT
+ AudioObjectPropertyAddress theAddress =
+ { kAudioHardwarePropertyDefaultInputDevice,
+ kAudioObjectPropertyScopeGlobal,
+ kAudioObjectPropertyElementMaster };
+
+ err = AudioObjectGetPropertyData
+ (kAudioObjectSystemObject,
+ &theAddress,
+ 0,
+ NULL,
+ &dataSize,
+ &deviceID);
+#else
+ err = AudioHardwareGetProperty
+ (kAudioHardwarePropertyDefaultInputDevice,
+ &dataSize,
+ &deviceID);
+#endif
+
+ CheckErrorAndThrow (err, "Get Audio Unit Property for Current Device",
+ "audio_osx_source::SetDefaultInputDeviceAsCurrent");
+
+ err = AudioUnitSetProperty
+ (d_InputAU,
+ kAudioOutputUnitProperty_CurrentDevice,
+ kAudioUnitScope_Global,
+ 0,
+ &deviceID,
+ sizeof (AudioDeviceID));
+
CheckErrorAndThrow (err, "AudioUnitSetProperty Current Device",
"audio_osx_source::SetDefaultInputDeviceAsCurrent");
}
diff --git a/gr-digital/examples/CMakeLists.txt b/gr-digital/examples/CMakeLists.txt
index 7b94f745cf..5c652fc83c 100644
--- a/gr-digital/examples/CMakeLists.txt
+++ b/gr-digital/examples/CMakeLists.txt
@@ -44,3 +44,17 @@ GR_PYTHON_INSTALL(PROGRAMS
DESTINATION ${GR_PKG_DATA_DIR}/examples/digital/narrowband
COMPONENT "digital_python"
)
+
+GR_PYTHON_INSTALL(PROGRAMS
+ ofdm/benchmark_add_channel.py
+ ofdm/benchmark_rx.py
+ ofdm/benchmark_tx.py
+ ofdm/gr_plot_ofdm.py
+ ofdm/ofdm_mod_demod_test.py
+ ofdm/receive_path.py
+ ofdm/transmit_path.py
+ ofdm/tunnel.py
+ ofdm/uhd_interface.py
+ DESTINATION ${GR_PKG_DATA_DIR}/examples/digital/ofdm
+ COMPONENT "digital_python"
+)
diff --git a/gr-digital/grc/CMakeLists.txt b/gr-digital/grc/CMakeLists.txt
index e25c98faa8..e94c535563 100644
--- a/gr-digital/grc/CMakeLists.txt
+++ b/gr-digital/grc/CMakeLists.txt
@@ -22,6 +22,7 @@ install(FILES
digital_binary_slicer_fb.xml
digital_clock_recovery_mm_xx.xml
digital_constellation_decoder_cb.xml
+ digital_constellation_receiver_cb.xml
digital_correlate_access_code_bb.xml
digital_costas_loop_cc.xml
digital_cma_equalizer_cc.xml
diff --git a/gr-digital/grc/Makefile.am b/gr-digital/grc/Makefile.am
index b1ebba463d..e6dd2aa920 100644
--- a/gr-digital/grc/Makefile.am
+++ b/gr-digital/grc/Makefile.am
@@ -28,6 +28,7 @@ dist_grcblocks_DATA = \
digital_binary_slicer_fb.xml \
digital_clock_recovery_mm_xx.xml \
digital_constellation_decoder_cb.xml \
+ digital_constellation_receiver_cb.xml \
digital_correlate_access_code_bb.xml \
digital_costas_loop_cc.xml \
digital_cma_equalizer_cc.xml \
diff --git a/gr-digital/grc/digital_block_tree.xml b/gr-digital/grc/digital_block_tree.xml
index 84151c1906..49a01973f4 100644
--- a/gr-digital/grc/digital_block_tree.xml
+++ b/gr-digital/grc/digital_block_tree.xml
@@ -34,6 +34,7 @@
<block>digital_clock_recovery_mm_xx</block>
<block>digital_cma_equalizer_cc</block>
<block>digital_constellation_decoder_cb</block>
+ <block>digital_constellation_receiver_cb</block>
<block>digital_correlate_access_code_bb</block>
<block>digital_costas_loop_cc</block>
<block>digital_fll_band_edge_cc</block>
diff --git a/gr-digital/grc/digital_constellation_receiver_cb.xml b/gr-digital/grc/digital_constellation_receiver_cb.xml
new file mode 100644
index 0000000000..36c8e1b309
--- /dev/null
+++ b/gr-digital/grc/digital_constellation_receiver_cb.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+##Constellation Receiver
+###################################################
+ -->
+<block>
+ <name>Constellation Receiver</name>
+ <key>digital_constellation_receiver_cb</key>
+ <import>from gnuradio import digital</import>
+ <make>digital.constellation_receiver_cb($constellation, $loop_bw, $fmin, $fmax)</make>
+ <param>
+ <name>Constellation Object</name>
+ <key>constellation</key>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>Loop Bandwidth</name>
+ <key>loop_bw</key>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Minimum Freq Deviation</name>
+ <key>fmin</key>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Maximum Freq Deviation</name>
+ <key>fmax</key>
+ <type>real</type>
+ </param>
+ <sink>
+ <name>in</name>
+ <type>complex</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>byte</type>
+ </source>
+</block>
diff --git a/gr-digital/include/digital_costas_loop_cc.h b/gr-digital/include/digital_costas_loop_cc.h
index c8c722c938..4aab22fb45 100644
--- a/gr-digital/include/digital_costas_loop_cc.h
+++ b/gr-digital/include/digital_costas_loop_cc.h
@@ -50,11 +50,8 @@
*
* http://rfdesign.com/images/archive/0102Feigin20.pdf
*
- * \param alpha the loop gain used for phase adjustment
- * \param beta the loop gain for frequency adjustments
- * \param max_freq the maximum frequency deviation (radians/sample) the loop can handle
- * \param min_freq the minimum frequency deviation (radians/sample) the loop can handle
- * \param order the loop order, either 2 or 4
+ * \param loop_bw internal 2nd order loop bandwidth (~ 2pi/100)
+ * \param order the loop order, either 2, 4, or 8
*/
#include <digital_api.h>
@@ -76,7 +73,7 @@ digital_make_costas_loop_cc (float loop_bw, int order
* stream 1 is the baseband I and Q;
* stream 2 is the normalized frequency of the loop
*
- * \p order must be 2 or 4.
+ * \p order must be 2, 4, or 8.
*/
class DIGITAL_API digital_costas_loop_cc : public gr_sync_block, public gri_control_loop
{
diff --git a/gr-gsm-fr-vocoder/Makefile.am b/gr-gsm-fr-vocoder/Makefile.am
deleted file mode 100644
index 968ce327c0..0000000000
--- a/gr-gsm-fr-vocoder/Makefile.am
+++ /dev/null
@@ -1,27 +0,0 @@
-#
-# Copyright 2004,2009 Free Software Foundation, Inc.
-#
-# This file is part of GNU Radio
-#
-# GNU Radio is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# GNU Radio is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Radio; see the file COPYING. If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street,
-# Boston, MA 02110-1301, USA.
-#
-
-include $(top_srcdir)/Makefile.common
-
-SUBDIRS = src
-
-pkgconfigdir = $(libdir)/pkgconfig
-dist_pkgconfig_DATA = gnuradio-gsm-fr-vocoder.pc
diff --git a/gr-uhd/grc/gen_uhd_usrp_blocks.py b/gr-uhd/grc/gen_uhd_usrp_blocks.py
index 67343541c1..25b0a4c467 100644
--- a/gr-uhd/grc/gen_uhd_usrp_blocks.py
+++ b/gr-uhd/grc/gen_uhd_usrp_blocks.py
@@ -411,10 +411,10 @@ max_num_channels = max_num_mboards*4
if __name__ == '__main__':
import sys
for file in sys.argv[1:]:
- if 'source' in file:
+ if file.endswith ('source.xml'):
sourk = 'source'
direction = 'out'
- elif 'sink' in file:
+ elif file.endswith ('sink.xml'):
sourk = 'sink'
direction = 'in'
else: raise Exception, 'is %s a source or sink?'%file
diff --git a/gr-vocoder/CMakeLists.txt b/gr-vocoder/CMakeLists.txt
index f32ecdd9c7..e800cff004 100644
--- a/gr-vocoder/CMakeLists.txt
+++ b/gr-vocoder/CMakeLists.txt
@@ -90,6 +90,7 @@ add_subdirectory(doc)
if(ENABLE_PYTHON)
add_subdirectory(swig)
add_subdirectory(python)
+ add_subdirectory(grc)
add_subdirectory(examples)
endif(ENABLE_PYTHON)
diff --git a/gr-vocoder/grc/CMakeLists.txt b/gr-vocoder/grc/CMakeLists.txt
new file mode 100644
index 0000000000..f8cf8231b2
--- /dev/null
+++ b/gr-vocoder/grc/CMakeLists.txt
@@ -0,0 +1,42 @@
+# Copyright 2011 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# GNU Radio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GNU Radio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Radio; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+
+install(FILES
+ vocoder_alaw_decode_bs.xml
+ vocoder_alaw_encode_sb.xml
+ vocoder_block_tree.xml
+ vocoder_codec2_decode_ps.xml
+ vocoder_codec2_encode_sp.xml
+ vocoder_cvsd_decode_bs.xml
+ vocoder_cvsd_decode.xml
+ vocoder_cvsd_encode_sb.xml
+ vocoder_cvsd_encode.xml
+ vocoder_g721_decode_bs.xml
+ vocoder_g721_encode_sb.xml
+ vocoder_g723_24_decode_bs.xml
+ vocoder_g723_24_encode_sb.xml
+ vocoder_g723_40_decode_bs.xml
+ vocoder_g723_40_encode_sb.xml
+ vocoder_gsm_fr_decode_ps.xml
+ vocoder_gsm_fr_encode_sp.xml
+ vocoder_ulaw_decode_bs.xml
+ vocoder_ulaw_encode_sb.xml
+ DESTINATION ${GRC_BLOCKS_DIR}
+ COMPONENT "vocoder_python"
+)
diff --git a/gr-vocoder/grc/Makefile.am b/gr-vocoder/grc/Makefile.am
index b1c7b44d59..f25cb9ce65 100644
--- a/gr-vocoder/grc/Makefile.am
+++ b/gr-vocoder/grc/Makefile.am
@@ -1,5 +1,5 @@
#
-# Copyright 2011 Free Software Foundation, Inc.
+# Copyright 2011-2012 Free Software Foundation, Inc.
#
# This file is part of GNU Radio
#
@@ -21,4 +21,25 @@
include $(top_srcdir)/Makefile.common
-SUBDIRS =
+grcblocksdir = $(grc_blocksdir)
+
+dist_grcblocks_DATA = \
+ vocoder_alaw_decode_bs.xml \
+ vocoder_alaw_encode_sb.xml \
+ vocoder_block_tree.xml \
+ vocoder_codec2_decode_ps.xml \
+ vocoder_codec2_encode_sp.xml \
+ vocoder_cvsd_decode_bs.xml \
+ vocoder_cvsd_decode.xml \
+ vocoder_cvsd_encode_sb.xml \
+ vocoder_cvsd_encode.xml \
+ vocoder_g721_decode_bs.xml \
+ vocoder_g721_encode_sb.xml \
+ vocoder_g723_24_decode_bs.xml \
+ vocoder_g723_24_encode_sb.xml \
+ vocoder_g723_40_decode_bs.xml \
+ vocoder_g723_40_encode_sb.xml \
+ vocoder_gsm_fr_decode_ps.xml \
+ vocoder_gsm_fr_encode_sp.xml \
+ vocoder_ulaw_decode_bs.xml \
+ vocoder_ulaw_encode_sb.xml
diff --git a/gr-vocoder/grc/vocoder_alaw_decode_bs.xml b/gr-vocoder/grc/vocoder_alaw_decode_bs.xml
new file mode 100644
index 0000000000..776187d4de
--- /dev/null
+++ b/gr-vocoder/grc/vocoder_alaw_decode_bs.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+## Alaw audio decoder
+###################################################
+ -->
+<block>
+ <name>Alaw Audio Decoder</name>
+ <key>vocoder_alaw_decode_bs</key>
+ <import>from gnuradio import vocoder</import>
+ <make>vocoder.alaw_decode_bs()</make>
+ <sink>
+ <name>in</name>
+ <type>byte</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>short</type>
+ </source>
+</block>
diff --git a/gr-vocoder/grc/vocoder_alaw_encode_sb.xml b/gr-vocoder/grc/vocoder_alaw_encode_sb.xml
new file mode 100644
index 0000000000..0ad8eca124
--- /dev/null
+++ b/gr-vocoder/grc/vocoder_alaw_encode_sb.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+## Alaw audio encoder
+###################################################
+ -->
+<block>
+ <name>g711 alaw Audio Encoder</name>
+ <key>vocoder_alaw_encode_sb</key>
+ <import>from gnuradio import vocoder</import>
+ <make>vocoder.alaw_encode_sb()</make>
+ <sink>
+ <name>in</name>
+ <type>short</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>byte</type>
+ </source>
+</block>
+
+
diff --git a/gr-vocoder/grc/vocoder_block_tree.xml b/gr-vocoder/grc/vocoder_block_tree.xml
new file mode 100644
index 0000000000..1766b4e264
--- /dev/null
+++ b/gr-vocoder/grc/vocoder_block_tree.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0"?>
+
+<!--
+ Copyright 2011 Free Software Foundation, Inc.
+
+ This file is part of GNU Radio
+
+ GNU Radio is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+
+ GNU Radio is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Radio; see the file COPYING. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street,
+ Boston, MA 02110-1301, USA.
+-->
+
+<!--
+###################################################
+##Block Tree for GR Digital blocks.
+###################################################
+ -->
+<cat>
+ <name></name> <!-- Blank for Root Name -->
+ <cat>
+ <name>Vocoders</name>
+ <block>vocoder_alaw_decode_bs</block>
+ <block>vocoder_alaw_encode_sb</block>
+ <block>vocoder_codec2_decode_ps</block>
+ <block>vocoder_codec2_encode_sp</block>
+ <block>vocoder_cvsd_decode_bs</block>
+ <block>vocoder_cvsd_encode_sb</block>
+ <block>vocoder_cvsd_decode_bf</block>
+ <block>vocoder_cvsd_encode_fb</block>
+ <block>vocoder_g721_decode_bs</block>
+ <block>vocoder_g721_encode_sb</block>
+ <block>vocoder_g723_24_decode_bs</block>
+ <block>vocoder_g723_24_encode_sb</block>
+ <block>vocoder_g723_40_decode_bs</block>
+ <block>vocoder_g723_40_encode_sb</block>
+ <block>vocoder_gsm_fr_decode_ps</block>
+ <block>vocoder_gsm_fr_encode_sp</block>
+ <block>vocoder_ulaw_decode_bs</block>
+ <block>vocoder_ulaw_encode_sb</block>
+ </cat>
+</cat>
diff --git a/gr-vocoder/grc/vocoder_codec2_decode_ps.xml b/gr-vocoder/grc/vocoder_codec2_decode_ps.xml
new file mode 100644
index 0000000000..708882151b
--- /dev/null
+++ b/gr-vocoder/grc/vocoder_codec2_decode_ps.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+## CODEC2 audio decoder
+###################################################
+ -->
+<block>
+ <name>CODEC2 Audio Decoder</name>
+ <key>vocoder_codec2_decode_ps</key>
+ <import>from gnuradio import vocoder</import>
+ <make>vocoder.codec2_decode_ps()</make>
+ <sink>
+ <name>in</name>
+ <type>byte</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>short</type>
+ </source>
+</block>
diff --git a/gr-vocoder/grc/vocoder_codec2_encode_sp.xml b/gr-vocoder/grc/vocoder_codec2_encode_sp.xml
new file mode 100644
index 0000000000..7a56ac6332
--- /dev/null
+++ b/gr-vocoder/grc/vocoder_codec2_encode_sp.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+## CODEC2 audio encoder
+###################################################
+ -->
+<block>
+ <name>CODEC2 Audio Encoder</name>
+ <key>vocoder_codec2_encode_sp</key>
+ <import>from gnuradio import vocoder</import>
+ <make>vocoder.codec2_encode_sp()</make>
+ <sink>
+ <name>in</name>
+ <type>short</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>byte</type>
+ </source>
+</block>
+
+
diff --git a/grc/blocks/blks2_cvsd_decode.xml b/gr-vocoder/grc/vocoder_cvsd_decode.xml
index 6be7daa222..ce117c5d4e 100644
--- a/grc/blocks/blks2_cvsd_decode.xml
+++ b/gr-vocoder/grc/vocoder_cvsd_decode.xml
@@ -6,9 +6,9 @@
-->
<block>
<name>CVSD Decoder</name>
- <key>blks2_cvsd_decode</key>
- <import>from gnuradio import blks2</import>
- <make>blks2.cvsd_decode($resample,$bw)</make>
+ <key>vocoder_cvsd_decode_bf</key>
+ <import>from gnuradio import vocoder</import>
+ <make>vocoder.cvsd_decode_bf($resample,$bw)</make>
<param>
<name>Resample</name>
<key>resample</key>
diff --git a/gr-vocoder/grc/vocoder_cvsd_decode_bs.xml b/gr-vocoder/grc/vocoder_cvsd_decode_bs.xml
new file mode 100644
index 0000000000..40ddc04d43
--- /dev/null
+++ b/gr-vocoder/grc/vocoder_cvsd_decode_bs.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+## CVSD audio decoder
+###################################################
+ -->
+<block>
+ <name>CVSD Audio Decoder (Raw Bit-Level)</name>
+ <key>vocoder_cvsd_decode_bs</key>
+ <import>from gnuradio import vocoder</import>
+ <make>vocoder.cvsd_decode_bs()</make>
+ <sink>
+ <name>in</name>
+ <type>byte</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>short</type>
+ </source>
+</block>
+
diff --git a/grc/blocks/blks2_cvsd_encode.xml b/gr-vocoder/grc/vocoder_cvsd_encode.xml
index 3123b1aa9d..12e73f6025 100644
--- a/grc/blocks/blks2_cvsd_encode.xml
+++ b/gr-vocoder/grc/vocoder_cvsd_encode.xml
@@ -6,9 +6,9 @@
-->
<block>
<name>CVSD Encoder</name>
- <key>blks2_cvsd_encode</key>
- <import>from gnuradio import blks2</import>
- <make>blks2.cvsd_encode($resample,$bw)</make>
+ <key>vocoder_cvsd_encode_fb</key>
+ <import>from gnuradio import vocoder</import>
+ <make>vocoder.cvsd_encode_fb($resample,$bw)</make>
<param>
<name>Resample</name>
<key>resample</key>
diff --git a/gr-vocoder/grc/vocoder_cvsd_encode_sb.xml b/gr-vocoder/grc/vocoder_cvsd_encode_sb.xml
new file mode 100644
index 0000000000..a92387a60b
--- /dev/null
+++ b/gr-vocoder/grc/vocoder_cvsd_encode_sb.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+## CVSD audio encoder
+###################################################
+ -->
+<block>
+ <name>CVSD Audio Encoder (Raw Bit-Level)</name>
+ <key>vocoder_cvsd_encode_sb</key>
+ <import>from gnuradio import vocoder</import>
+ <make>vocoder.cvsd_encode_sb()</make>
+ <sink>
+ <name>in</name>
+ <type>short</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>byte</type>
+ </source>
+</block>
+
+
diff --git a/gr-vocoder/grc/vocoder_g721_decode_bs.xml b/gr-vocoder/grc/vocoder_g721_decode_bs.xml
new file mode 100644
index 0000000000..d5c0291b7d
--- /dev/null
+++ b/gr-vocoder/grc/vocoder_g721_decode_bs.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+## g271 audio decoder
+###################################################
+ -->
+<block>
+ <name>g721 Audio Decoder</name>
+ <key>vocoder_g721_decode_bs</key>
+ <import>from gnuradio import vocoder</import>
+ <make>vocoder.g721_decode_bs()</make>
+ <sink>
+ <name>in</name>
+ <type>byte</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>short</type>
+ </source>
+</block>
diff --git a/gr-vocoder/grc/vocoder_g721_encode_sb.xml b/gr-vocoder/grc/vocoder_g721_encode_sb.xml
new file mode 100644
index 0000000000..f105ff8ff0
--- /dev/null
+++ b/gr-vocoder/grc/vocoder_g721_encode_sb.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+## g721 audio encoder
+###################################################
+ -->
+<block>
+ <name>g721 Audio Encoder</name>
+ <key>vocoder_g721_encode_sb</key>
+ <import>from gnuradio import vocoder</import>
+ <make>vocoder.g721_encode_sb()</make>
+ <sink>
+ <name>in</name>
+ <type>short</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>byte</type>
+ </source>
+</block>
+
+
diff --git a/gr-vocoder/grc/vocoder_g723_24_decode_bs.xml b/gr-vocoder/grc/vocoder_g723_24_decode_bs.xml
new file mode 100644
index 0000000000..939a7f91b3
--- /dev/null
+++ b/gr-vocoder/grc/vocoder_g723_24_decode_bs.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+## g723_24 audio decoder
+###################################################
+ -->
+<block>
+ <name>g723_24 Audio Decoder</name>
+ <key>vocoder_g723_24_decode_bs</key>
+ <import>from gnuradio import vocoder</import>
+ <make>vocoder.g723_24_decode_bs()</make>
+ <sink>
+ <name>in</name>
+ <type>byte</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>short</type>
+ </source>
+</block>
diff --git a/gr-vocoder/grc/vocoder_g723_24_encode_sb.xml b/gr-vocoder/grc/vocoder_g723_24_encode_sb.xml
new file mode 100644
index 0000000000..0e70ddedc0
--- /dev/null
+++ b/gr-vocoder/grc/vocoder_g723_24_encode_sb.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+## g723_24 audio encoder
+###################################################
+ -->
+<block>
+ <name>g723_24 Audio Encoder</name>
+ <key>vocoder_g723_24_encode_sb</key>
+ <import>from gnuradio import vocoder</import>
+ <make>vocoder.g723_24_encode_sb()</make>
+ <sink>
+ <name>in</name>
+ <type>short</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>byte</type>
+ </source>
+</block>
+
+
diff --git a/gr-vocoder/grc/vocoder_g723_40_decode_bs.xml b/gr-vocoder/grc/vocoder_g723_40_decode_bs.xml
new file mode 100644
index 0000000000..f3ba56e5bc
--- /dev/null
+++ b/gr-vocoder/grc/vocoder_g723_40_decode_bs.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+## g723_40 audio decoder
+###################################################
+ -->
+<block>
+ <name>g723_40 Audio Decoder</name>
+ <key>vocoder_g723_40_decode_bs</key>
+ <import>from gnuradio import vocoder</import>
+ <make>vocoder.g723_40_decode_bs()</make>
+ <sink>
+ <name>in</name>
+ <type>byte</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>short</type>
+ </source>
+</block>
diff --git a/gr-vocoder/grc/vocoder_g723_40_encode_sb.xml b/gr-vocoder/grc/vocoder_g723_40_encode_sb.xml
new file mode 100644
index 0000000000..fbbf600ffa
--- /dev/null
+++ b/gr-vocoder/grc/vocoder_g723_40_encode_sb.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+## g723_40 audio encoder
+###################################################
+ -->
+<block>
+ <name>g723_40 Audio Encoder</name>
+ <key>vocoder_g723_40_encode_sb</key>
+ <import>from gnuradio import vocoder</import>
+ <make>vocoder.g723_40_encode_sb()</make>
+ <sink>
+ <name>in</name>
+ <type>short</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>byte</type>
+ </source>
+</block>
+
+
diff --git a/gr-vocoder/grc/vocoder_gsm_fr_decode_ps.xml b/gr-vocoder/grc/vocoder_gsm_fr_decode_ps.xml
new file mode 100644
index 0000000000..44290f891e
--- /dev/null
+++ b/gr-vocoder/grc/vocoder_gsm_fr_decode_ps.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+## GSM full-rate audio decoder
+###################################################
+ -->
+<block>
+ <name>GSM full-rate Audio Decoder</name>
+ <key>vocoder_gsm_fr_decode_ps</key>
+ <import>from gnuradio import vocoder</import>
+ <make>vocoder.gsm_fr_decode_ps()</make>
+ <sink>
+ <name>in</name>
+ <type>byte</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>short</type>
+ </source>
+</block>
diff --git a/gr-vocoder/grc/vocoder_gsm_fr_encode_sp.xml b/gr-vocoder/grc/vocoder_gsm_fr_encode_sp.xml
new file mode 100644
index 0000000000..13f6f3f2d0
--- /dev/null
+++ b/gr-vocoder/grc/vocoder_gsm_fr_encode_sp.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+## GSM full-rate audio encoder
+###################################################
+ -->
+<block>
+ <name>GSM full-rate Audio Encoder</name>
+ <key>vocoder_gsm_fr_encode_sp</key>
+ <import>from gnuradio import vocoder</import>
+ <make>vocoder.gsm_fr_encode_sp()</make>
+ <sink>
+ <name>in</name>
+ <type>short</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>byte</type>
+ </source>
+</block>
+
+
diff --git a/gr-vocoder/grc/vocoder_ulaw_decode_bs.xml b/gr-vocoder/grc/vocoder_ulaw_decode_bs.xml
new file mode 100644
index 0000000000..5a7ccbb0e3
--- /dev/null
+++ b/gr-vocoder/grc/vocoder_ulaw_decode_bs.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+## Ulaw audio decoder
+###################################################
+ -->
+<block>
+ <name>Ulaw Audio Decoder</name>
+ <key>vocoder_ulaw_decode_bs</key>
+ <import>from gnuradio import vocoder</import>
+ <make>vocoder.ulaw_decode_bs()</make>
+ <sink>
+ <name>in</name>
+ <type>byte</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>short</type>
+ </source>
+</block>
diff --git a/gr-vocoder/grc/vocoder_ulaw_encode_sb.xml b/gr-vocoder/grc/vocoder_ulaw_encode_sb.xml
new file mode 100644
index 0000000000..8e76d8d083
--- /dev/null
+++ b/gr-vocoder/grc/vocoder_ulaw_encode_sb.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+## ulaw audio encoder
+###################################################
+ -->
+<block>
+ <name>ulaw Audio Encoder</name>
+ <key>vocoder_ulaw_encode_sb</key>
+ <import>from gnuradio import vocoder</import>
+ <make>vocoder.ulaw_encode_sb()</make>
+ <sink>
+ <name>in</name>
+ <type>short</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>byte</type>
+ </source>
+</block>
+
+
diff --git a/grc/blocks/Makefile.am b/grc/blocks/Makefile.am
index 020dcecdd1..65cd8e1264 100644
--- a/grc/blocks/Makefile.am
+++ b/grc/blocks/Makefile.am
@@ -28,8 +28,6 @@ dist_ourdata_DATA = \
band_reject_filter.xml \
blks2_am_demod_cf.xml \
blks2_analysis_filterbank.xml \
- blks2_cvsd_encode.xml \
- blks2_cvsd_decode.xml \
blks2_error_rate.xml \
blks2_fm_deemph.xml \
blks2_fm_demod_cf.xml \
diff --git a/grc/blocks/block_tree.xml b/grc/blocks/block_tree.xml
index 183408ceca..d8253bfe6d 100644
--- a/grc/blocks/block_tree.xml
+++ b/grc/blocks/block_tree.xml
@@ -224,11 +224,6 @@
<block>gr_additive_scrambler_bb</block>
</cat>
<cat>
- <name>Vocoders</name>
- <block>blks2_cvsd_encode</block>
- <block>blks2_cvsd_decode</block>
- </cat>
- <cat>
<name>Probes</name>
<block>gr_probe_avg_mag_sqrd_x</block>
<block>gr_probe_density_b</block>