From 46faf838bcd25fa75f3d93effe46d33d3a2934c1 Mon Sep 17 00:00:00 2001 From: kurt Date: Fri, 15 Jan 2021 22:15:58 +0100 Subject: [PATCH] update --- WinRelease/audio/1200.pcm | Bin WinRelease/audio/2400.pcm | Bin WinRelease/audio/3000.pcm | Bin WinRelease/audio/4000.pcm | Bin WinRelease/audio/4410.pcm | Bin WinRelease/audio/4800.pcm | Bin WinRelease/audio/5500.pcm | Bin WinRelease/audio/6000.pcm | Bin WinRelease/audio/6600.pcm | Bin WinRelease/audio/7200.pcm | Bin WinRelease/audio/amsat.pcm | Bin WinRelease/audio/bpsk.pcm | Bin WinRelease/audio/kbps.pcm | Bin WinRelease/audio/psk8.pcm | Bin WinRelease/audio/qpsk.pcm | Bin WinRelease/hsmodem.exe | Bin 308224 -> 304128 bytes WinRelease/hsmodem.iobj | Bin 0 -> 1081544 bytes WinRelease/hsmodem.ipdb | Bin 0 -> 258992 bytes WinRelease/hsmodem.pdb | Bin 0 -> 2068480 bytes WinRelease/oscardata.exe | Bin 878592 -> 878592 bytes WinRelease/portaudio_x86.dll | Bin 0 -> 192512 bytes hsmodem.sln | 0 hsmodem.wse | 0 hsmodem/Makefile | 13 +- hsmodem/SharedLibs/aarch64/libliquid.so | Bin hsmodem/SharedLibs/aarch64/libsoundio.so | Bin hsmodem/SharedLibs/aarch64/libsoundio.so.2 | Bin .../SharedLibs/aarch64/libsoundio.so.2.0.0 | Bin hsmodem/SharedLibs/windows/portaudio_x86.dll | Bin 0 -> 192512 bytes hsmodem/announcement.cpp | 15 +- hsmodem/audio/1200.pcm | Bin hsmodem/audio/2400.pcm | Bin hsmodem/audio/3000.pcm | Bin hsmodem/audio/4000.pcm | Bin hsmodem/audio/4410.pcm | Bin hsmodem/audio/4800.pcm | Bin hsmodem/audio/5500.pcm | Bin hsmodem/audio/6000.pcm | Bin hsmodem/audio/6600.pcm | Bin hsmodem/audio/7200.pcm | Bin hsmodem/audio/amsat.pcm | Bin hsmodem/audio/bpsk.pcm | Bin hsmodem/audio/kbps.pcm | Bin hsmodem/audio/psk8.pcm | Bin hsmodem/audio/qpsk.pcm | Bin hsmodem/audio/sound0.pcm | Bin hsmodem/audio/sound1.pcm | Bin hsmodem/audio/wav2pcm.py | 0 hsmodem/codec2.cpp | 5 +- hsmodem/endian.h | 0 hsmodem/fec.h | 0 hsmodem/fec/schifra_crc.hpp | 0 hsmodem/fec/schifra_ecc_traits.hpp | 0 hsmodem/fec/schifra_erasure_channel.hpp | 0 hsmodem/fec/schifra_error_processes.hpp | 0 hsmodem/fec/schifra_fileio.hpp | 0 hsmodem/fec/schifra_galois_field.hpp | 0 hsmodem/fec/schifra_galois_field_element.hpp | 0 .../fec/schifra_galois_field_polynomial.hpp | 0 hsmodem/fec/schifra_galois_utilities.hpp | 0 hsmodem/fec/schifra_reed_solomon_bitio.hpp | 0 hsmodem/fec/schifra_reed_solomon_block.hpp | 0 .../schifra_reed_solomon_codec_validator.hpp | 0 hsmodem/fec/schifra_reed_solomon_encoder.hpp | 0 .../fec/schifra_reed_solomon_file_decoder.hpp | 0 .../fec/schifra_reed_solomon_file_encoder.hpp | 0 .../schifra_reed_solomon_file_interleaver.hpp | 0 .../schifra_reed_solomon_general_codec.hpp | 0 .../fec/schifra_reed_solomon_interleaving.hpp | 0 .../fec/schifra_reed_solomon_product_code.hpp | 0 .../schifra_reed_solomon_speed_evaluator.hpp | 0 ...tial_root_generator_polynomial_creator.hpp | 0 hsmodem/fec/schifra_utilities.hpp | 0 hsmodem/fft.cpp | 20 +- hsmodem/fftw_lib/fftw3.h | 0 hsmodem/fifo.cpp | 21 +- hsmodem/frameformat.h | 0 hsmodem/hsmodem.cpp | 149 +- hsmodem/hsmodem.h | 62 +- hsmodem/hsmodem.vcxproj | 20 +- hsmodem/hsmodem.vcxproj.filters | 60 +- hsmodem/libkmaudio/endian.h | 97 + hsmodem/libkmaudio/libkmaudio.cpp | 170 + hsmodem/libkmaudio/libkmaudio.h | 252 + hsmodem/libkmaudio/libkmaudio_capture.cpp | 152 + .../libkmaudio/libkmaudio_capture_linux.cpp | 212 + hsmodem/libkmaudio/libkmaudio_fifo.cpp | 236 + hsmodem/libkmaudio/libkmaudio_getDevices.cpp | 293 + .../libkmaudio_getDevices_Linux.cpp | 217 + hsmodem/libkmaudio/libkmaudio_init.cpp | 171 + hsmodem/libkmaudio/libkmaudio_init_linux.cpp | 78 + hsmodem/libkmaudio/libkmaudio_interface.cpp | 155 + hsmodem/libkmaudio/libkmaudio_playback.cpp | 169 + .../libkmaudio/libkmaudio_playback_linux.cpp | 236 + hsmodem/libkmaudio/libkmaudio_resampler.cpp | 109 + hsmodem/libkmaudio/liquid.h | 8823 +++++++++++++++++ hsmodem/libkmaudio/pa_win_wasapi.h | 443 + hsmodem/libkmaudio/pa_win_waveformat.h | 199 + hsmodem/libkmaudio/portaudio.h | 1225 +++ hsmodem/libkmaudio/soundio.h | 1209 +++ hsmodem/libsoundio.a | Bin hsmodem/liquid_if.cpp | 264 +- hsmodem/main_helper.cpp | 3 +- hsmodem/portaudio_x86.lib | Bin 0 -> 11890 bytes hsmodem/prepare_ubuntu | 0 hsmodem/rtty.cpp | 50 +- hsmodem/speed.cpp | 1 + hsmodem/tuning.cpp | 23 +- hsmodem/udp.h | 0 hsmodem/version.h | 0 hsmodem/voiceprocessor.cpp | 54 +- hsmodem/volume.cpp | 52 + hsmodemLinux/audio/1200.pcm | Bin hsmodemLinux/audio/2400.pcm | Bin hsmodemLinux/audio/3000.pcm | Bin hsmodemLinux/audio/4000.pcm | Bin hsmodemLinux/audio/4410.pcm | Bin hsmodemLinux/audio/4800.pcm | Bin hsmodemLinux/audio/5500.pcm | Bin hsmodemLinux/audio/6000.pcm | Bin hsmodemLinux/audio/6600.pcm | Bin hsmodemLinux/audio/7200.pcm | Bin hsmodemLinux/audio/amsat.pcm | Bin hsmodemLinux/audio/announcement.pcm | Bin 0 -> 611138 bytes hsmodemLinux/audio/bpsk.pcm | Bin hsmodemLinux/audio/kbps.pcm | Bin hsmodemLinux/audio/psk8.pcm | Bin hsmodemLinux/audio/qpsk.pcm | Bin hsmodemLinux/hsmodem | Bin 259056 -> 410360 bytes hsmodemLinux/oscardata.exe | Bin 878592 -> 878592 bytes hsmodemLinux/wav2pcm.py | 0 oscardata/oscardata/Form1.Designer.cs | 151 +- oscardata/oscardata/Form1.cs | 42 +- oscardata/oscardata/Form1.resx | 2 +- .../Properties/Actions-go-next-view-icon.png | Bin .../Fernschreiben für Funkamateure.pdf | Bin .../Lehrstuhlseminar_BenjaminKoch.pdf | Bin oscardata/oscardata/Properties/about.png | Bin .../oscardata/Properties/amsat_dl_logo.png | Bin oscardata/oscardata/Properties/answer.png | Bin oscardata/oscardata/Properties/binary.png | Bin oscardata/oscardata/Properties/cancel.png | Bin .../oscardata/Properties/captureicon.png | Bin .../oscardata/Properties/cdc_codecloop.png | Bin oscardata/oscardata/Properties/cdc_dig.png | Bin .../oscardata/Properties/cdc_digital.png | Bin oscardata/oscardata/Properties/cdc_dv.png | Bin oscardata/oscardata/Properties/cdc_dvrx.png | Bin .../oscardata/Properties/cdc_intloop.png | Bin .../oscardata/Properties/clearscreen.png | Bin .../oscardata/Properties/endqso-icon.png | Bin oscardata/oscardata/Properties/fail.png | Bin oscardata/oscardata/Properties/foht.png | Bin .../oscardata/Properties/greenmarker.png | Bin .../oscardata/Properties/hintergrundxcf.png | Bin oscardata/oscardata/Properties/home-icon.png | Bin oscardata/oscardata/Properties/html.png | Bin oscardata/oscardata/Properties/image.jpg | Bin oscardata/oscardata/Properties/image.png | Bin oscardata/oscardata/Properties/image1.jpg | Bin oscardata/oscardata/Properties/meter.png | Bin oscardata/oscardata/Properties/meter_big.png | Bin oscardata/oscardata/Properties/ok.png | Bin oscardata/oscardata/Properties/openfolder.png | Bin oscardata/oscardata/Properties/osci.png | Bin oscardata/oscardata/Properties/playback.png | Bin .../oscardata/Properties/playbackicon.png | Bin oscardata/oscardata/Properties/rahmen.png | Bin oscardata/oscardata/Properties/record.png | Bin oscardata/oscardata/Properties/redmarker.png | Bin oscardata/oscardata/Properties/rtty.png | Bin oscardata/oscardata/Properties/ryry-icon.png | Bin oscardata/oscardata/Properties/schraube.png | Bin oscardata/oscardata/Properties/screen.png | Bin oscardata/oscardata/Properties/setup.png | Bin oscardata/oscardata/Properties/setup_big.png | Bin oscardata/oscardata/Properties/start-icon.png | Bin oscardata/oscardata/Properties/start.png | Bin oscardata/oscardata/Properties/stop-icon.png | Bin oscardata/oscardata/Properties/stop.png | Bin oscardata/oscardata/Properties/stopplay.png | Bin oscardata/oscardata/Properties/text-icon.png | Bin oscardata/oscardata/Properties/text.png | Bin oscardata/oscardata/Properties/text_big.png | Bin oscardata/oscardata/Properties/textrx.png | Bin oscardata/oscardata/Properties/texttx.png | Bin oscardata/oscardata/Properties/transmit.png | Bin .../oscardata/Properties/uart_design_doc.pdf | Bin oscardata/oscardata/Properties/user-icon.png | Bin oscardata/oscardata/Properties/voice-icon.png | Bin oscardata/oscardata/Properties/voice.png | Bin oscardata/oscardata/Properties/voice_big.png | Bin oscardata/oscardata/bin/Release/oscardata.exe | Bin 878592 -> 878592 bytes oscardata/oscardata/udp.cs | 49 +- 194 files changed, 15030 insertions(+), 472 deletions(-) mode change 100644 => 100755 WinRelease/audio/1200.pcm mode change 100644 => 100755 WinRelease/audio/2400.pcm mode change 100644 => 100755 WinRelease/audio/3000.pcm mode change 100644 => 100755 WinRelease/audio/4000.pcm mode change 100644 => 100755 WinRelease/audio/4410.pcm mode change 100644 => 100755 WinRelease/audio/4800.pcm mode change 100644 => 100755 WinRelease/audio/5500.pcm mode change 100644 => 100755 WinRelease/audio/6000.pcm mode change 100644 => 100755 WinRelease/audio/6600.pcm mode change 100644 => 100755 WinRelease/audio/7200.pcm mode change 100644 => 100755 WinRelease/audio/amsat.pcm mode change 100644 => 100755 WinRelease/audio/bpsk.pcm mode change 100644 => 100755 WinRelease/audio/kbps.pcm mode change 100644 => 100755 WinRelease/audio/psk8.pcm mode change 100644 => 100755 WinRelease/audio/qpsk.pcm create mode 100755 WinRelease/hsmodem.iobj create mode 100755 WinRelease/hsmodem.ipdb create mode 100755 WinRelease/hsmodem.pdb create mode 100755 WinRelease/portaudio_x86.dll mode change 100755 => 100644 hsmodem.sln mode change 100755 => 100644 hsmodem.wse mode change 100644 => 100755 hsmodem/SharedLibs/aarch64/libliquid.so mode change 100644 => 100755 hsmodem/SharedLibs/aarch64/libsoundio.so mode change 100644 => 100755 hsmodem/SharedLibs/aarch64/libsoundio.so.2 mode change 100644 => 100755 hsmodem/SharedLibs/aarch64/libsoundio.so.2.0.0 create mode 100755 hsmodem/SharedLibs/windows/portaudio_x86.dll mode change 100644 => 100755 hsmodem/audio/1200.pcm mode change 100644 => 100755 hsmodem/audio/2400.pcm mode change 100644 => 100755 hsmodem/audio/3000.pcm mode change 100644 => 100755 hsmodem/audio/4000.pcm mode change 100644 => 100755 hsmodem/audio/4410.pcm mode change 100644 => 100755 hsmodem/audio/4800.pcm mode change 100644 => 100755 hsmodem/audio/5500.pcm mode change 100644 => 100755 hsmodem/audio/6000.pcm mode change 100644 => 100755 hsmodem/audio/6600.pcm mode change 100644 => 100755 hsmodem/audio/7200.pcm mode change 100644 => 100755 hsmodem/audio/amsat.pcm mode change 100644 => 100755 hsmodem/audio/bpsk.pcm mode change 100644 => 100755 hsmodem/audio/kbps.pcm mode change 100644 => 100755 hsmodem/audio/psk8.pcm mode change 100644 => 100755 hsmodem/audio/qpsk.pcm mode change 100644 => 100755 hsmodem/audio/sound0.pcm mode change 100644 => 100755 hsmodem/audio/sound1.pcm mode change 100644 => 100755 hsmodem/audio/wav2pcm.py mode change 100644 => 100755 hsmodem/endian.h mode change 100644 => 100755 hsmodem/fec.h mode change 100644 => 100755 hsmodem/fec/schifra_crc.hpp mode change 100644 => 100755 hsmodem/fec/schifra_ecc_traits.hpp mode change 100644 => 100755 hsmodem/fec/schifra_erasure_channel.hpp mode change 100644 => 100755 hsmodem/fec/schifra_error_processes.hpp mode change 100644 => 100755 hsmodem/fec/schifra_fileio.hpp mode change 100644 => 100755 hsmodem/fec/schifra_galois_field.hpp mode change 100644 => 100755 hsmodem/fec/schifra_galois_field_element.hpp mode change 100644 => 100755 hsmodem/fec/schifra_galois_field_polynomial.hpp mode change 100644 => 100755 hsmodem/fec/schifra_galois_utilities.hpp mode change 100644 => 100755 hsmodem/fec/schifra_reed_solomon_bitio.hpp mode change 100644 => 100755 hsmodem/fec/schifra_reed_solomon_block.hpp mode change 100644 => 100755 hsmodem/fec/schifra_reed_solomon_codec_validator.hpp mode change 100644 => 100755 hsmodem/fec/schifra_reed_solomon_encoder.hpp mode change 100644 => 100755 hsmodem/fec/schifra_reed_solomon_file_decoder.hpp mode change 100644 => 100755 hsmodem/fec/schifra_reed_solomon_file_encoder.hpp mode change 100644 => 100755 hsmodem/fec/schifra_reed_solomon_file_interleaver.hpp mode change 100644 => 100755 hsmodem/fec/schifra_reed_solomon_general_codec.hpp mode change 100644 => 100755 hsmodem/fec/schifra_reed_solomon_interleaving.hpp mode change 100644 => 100755 hsmodem/fec/schifra_reed_solomon_product_code.hpp mode change 100644 => 100755 hsmodem/fec/schifra_reed_solomon_speed_evaluator.hpp mode change 100644 => 100755 hsmodem/fec/schifra_sequential_root_generator_polynomial_creator.hpp mode change 100644 => 100755 hsmodem/fec/schifra_utilities.hpp mode change 100644 => 100755 hsmodem/fftw_lib/fftw3.h mode change 100644 => 100755 hsmodem/frameformat.h create mode 100755 hsmodem/libkmaudio/endian.h create mode 100755 hsmodem/libkmaudio/libkmaudio.cpp create mode 100755 hsmodem/libkmaudio/libkmaudio.h create mode 100755 hsmodem/libkmaudio/libkmaudio_capture.cpp create mode 100755 hsmodem/libkmaudio/libkmaudio_capture_linux.cpp create mode 100755 hsmodem/libkmaudio/libkmaudio_fifo.cpp create mode 100755 hsmodem/libkmaudio/libkmaudio_getDevices.cpp create mode 100755 hsmodem/libkmaudio/libkmaudio_getDevices_Linux.cpp create mode 100755 hsmodem/libkmaudio/libkmaudio_init.cpp create mode 100755 hsmodem/libkmaudio/libkmaudio_init_linux.cpp create mode 100755 hsmodem/libkmaudio/libkmaudio_interface.cpp create mode 100755 hsmodem/libkmaudio/libkmaudio_playback.cpp create mode 100755 hsmodem/libkmaudio/libkmaudio_playback_linux.cpp create mode 100755 hsmodem/libkmaudio/libkmaudio_resampler.cpp create mode 100755 hsmodem/libkmaudio/liquid.h create mode 100755 hsmodem/libkmaudio/pa_win_wasapi.h create mode 100755 hsmodem/libkmaudio/pa_win_waveformat.h create mode 100755 hsmodem/libkmaudio/portaudio.h create mode 100755 hsmodem/libkmaudio/soundio.h mode change 100644 => 100755 hsmodem/libsoundio.a create mode 100755 hsmodem/portaudio_x86.lib mode change 100644 => 100755 hsmodem/prepare_ubuntu mode change 100644 => 100755 hsmodem/udp.h mode change 100644 => 100755 hsmodem/version.h create mode 100755 hsmodem/volume.cpp mode change 100644 => 100755 hsmodemLinux/audio/1200.pcm mode change 100644 => 100755 hsmodemLinux/audio/2400.pcm mode change 100644 => 100755 hsmodemLinux/audio/3000.pcm mode change 100644 => 100755 hsmodemLinux/audio/4000.pcm mode change 100644 => 100755 hsmodemLinux/audio/4410.pcm mode change 100644 => 100755 hsmodemLinux/audio/4800.pcm mode change 100644 => 100755 hsmodemLinux/audio/5500.pcm mode change 100644 => 100755 hsmodemLinux/audio/6000.pcm mode change 100644 => 100755 hsmodemLinux/audio/6600.pcm mode change 100644 => 100755 hsmodemLinux/audio/7200.pcm mode change 100644 => 100755 hsmodemLinux/audio/amsat.pcm create mode 100755 hsmodemLinux/audio/announcement.pcm mode change 100644 => 100755 hsmodemLinux/audio/bpsk.pcm mode change 100644 => 100755 hsmodemLinux/audio/kbps.pcm mode change 100644 => 100755 hsmodemLinux/audio/psk8.pcm mode change 100644 => 100755 hsmodemLinux/audio/qpsk.pcm mode change 100644 => 100755 hsmodemLinux/wav2pcm.py mode change 100644 => 100755 oscardata/oscardata/Properties/Actions-go-next-view-icon.png mode change 100644 => 100755 oscardata/oscardata/Properties/Fernschreiben für Funkamateure.pdf mode change 100644 => 100755 oscardata/oscardata/Properties/Lehrstuhlseminar_BenjaminKoch.pdf mode change 100644 => 100755 oscardata/oscardata/Properties/about.png mode change 100644 => 100755 oscardata/oscardata/Properties/amsat_dl_logo.png mode change 100644 => 100755 oscardata/oscardata/Properties/answer.png mode change 100644 => 100755 oscardata/oscardata/Properties/binary.png mode change 100644 => 100755 oscardata/oscardata/Properties/cancel.png mode change 100644 => 100755 oscardata/oscardata/Properties/captureicon.png mode change 100644 => 100755 oscardata/oscardata/Properties/cdc_codecloop.png mode change 100644 => 100755 oscardata/oscardata/Properties/cdc_dig.png mode change 100644 => 100755 oscardata/oscardata/Properties/cdc_digital.png mode change 100644 => 100755 oscardata/oscardata/Properties/cdc_dv.png mode change 100644 => 100755 oscardata/oscardata/Properties/cdc_dvrx.png mode change 100644 => 100755 oscardata/oscardata/Properties/cdc_intloop.png mode change 100644 => 100755 oscardata/oscardata/Properties/clearscreen.png mode change 100644 => 100755 oscardata/oscardata/Properties/endqso-icon.png mode change 100644 => 100755 oscardata/oscardata/Properties/fail.png mode change 100644 => 100755 oscardata/oscardata/Properties/foht.png mode change 100644 => 100755 oscardata/oscardata/Properties/greenmarker.png mode change 100644 => 100755 oscardata/oscardata/Properties/hintergrundxcf.png mode change 100644 => 100755 oscardata/oscardata/Properties/home-icon.png mode change 100644 => 100755 oscardata/oscardata/Properties/html.png mode change 100644 => 100755 oscardata/oscardata/Properties/image.jpg mode change 100644 => 100755 oscardata/oscardata/Properties/image.png mode change 100644 => 100755 oscardata/oscardata/Properties/image1.jpg mode change 100644 => 100755 oscardata/oscardata/Properties/meter.png mode change 100644 => 100755 oscardata/oscardata/Properties/meter_big.png mode change 100644 => 100755 oscardata/oscardata/Properties/ok.png mode change 100644 => 100755 oscardata/oscardata/Properties/openfolder.png mode change 100644 => 100755 oscardata/oscardata/Properties/osci.png mode change 100644 => 100755 oscardata/oscardata/Properties/playback.png mode change 100644 => 100755 oscardata/oscardata/Properties/playbackicon.png mode change 100644 => 100755 oscardata/oscardata/Properties/rahmen.png mode change 100644 => 100755 oscardata/oscardata/Properties/record.png mode change 100644 => 100755 oscardata/oscardata/Properties/redmarker.png mode change 100644 => 100755 oscardata/oscardata/Properties/rtty.png mode change 100644 => 100755 oscardata/oscardata/Properties/ryry-icon.png mode change 100644 => 100755 oscardata/oscardata/Properties/schraube.png mode change 100644 => 100755 oscardata/oscardata/Properties/screen.png mode change 100644 => 100755 oscardata/oscardata/Properties/setup.png mode change 100644 => 100755 oscardata/oscardata/Properties/setup_big.png mode change 100644 => 100755 oscardata/oscardata/Properties/start-icon.png mode change 100644 => 100755 oscardata/oscardata/Properties/start.png mode change 100644 => 100755 oscardata/oscardata/Properties/stop-icon.png mode change 100644 => 100755 oscardata/oscardata/Properties/stop.png mode change 100644 => 100755 oscardata/oscardata/Properties/stopplay.png mode change 100644 => 100755 oscardata/oscardata/Properties/text-icon.png mode change 100644 => 100755 oscardata/oscardata/Properties/text.png mode change 100644 => 100755 oscardata/oscardata/Properties/text_big.png mode change 100644 => 100755 oscardata/oscardata/Properties/textrx.png mode change 100644 => 100755 oscardata/oscardata/Properties/texttx.png mode change 100644 => 100755 oscardata/oscardata/Properties/transmit.png mode change 100644 => 100755 oscardata/oscardata/Properties/uart_design_doc.pdf mode change 100644 => 100755 oscardata/oscardata/Properties/user-icon.png mode change 100644 => 100755 oscardata/oscardata/Properties/voice-icon.png mode change 100644 => 100755 oscardata/oscardata/Properties/voice.png mode change 100644 => 100755 oscardata/oscardata/Properties/voice_big.png diff --git a/WinRelease/audio/1200.pcm b/WinRelease/audio/1200.pcm old mode 100644 new mode 100755 diff --git a/WinRelease/audio/2400.pcm b/WinRelease/audio/2400.pcm old mode 100644 new mode 100755 diff --git a/WinRelease/audio/3000.pcm b/WinRelease/audio/3000.pcm old mode 100644 new mode 100755 diff --git a/WinRelease/audio/4000.pcm b/WinRelease/audio/4000.pcm old mode 100644 new mode 100755 diff --git a/WinRelease/audio/4410.pcm b/WinRelease/audio/4410.pcm old mode 100644 new mode 100755 diff --git a/WinRelease/audio/4800.pcm b/WinRelease/audio/4800.pcm old mode 100644 new mode 100755 diff --git a/WinRelease/audio/5500.pcm b/WinRelease/audio/5500.pcm old mode 100644 new mode 100755 diff --git a/WinRelease/audio/6000.pcm b/WinRelease/audio/6000.pcm old mode 100644 new mode 100755 diff --git a/WinRelease/audio/6600.pcm b/WinRelease/audio/6600.pcm old mode 100644 new mode 100755 diff --git a/WinRelease/audio/7200.pcm b/WinRelease/audio/7200.pcm old mode 100644 new mode 100755 diff --git a/WinRelease/audio/amsat.pcm b/WinRelease/audio/amsat.pcm old mode 100644 new mode 100755 diff --git a/WinRelease/audio/bpsk.pcm b/WinRelease/audio/bpsk.pcm old mode 100644 new mode 100755 diff --git a/WinRelease/audio/kbps.pcm b/WinRelease/audio/kbps.pcm old mode 100644 new mode 100755 diff --git a/WinRelease/audio/psk8.pcm b/WinRelease/audio/psk8.pcm old mode 100644 new mode 100755 diff --git a/WinRelease/audio/qpsk.pcm b/WinRelease/audio/qpsk.pcm old mode 100644 new mode 100755 diff --git a/WinRelease/hsmodem.exe b/WinRelease/hsmodem.exe index 1fa2a4599640283471c113f1658335baff1c4590..f953f75bfb7b9248224f6cc01fc7071108f602b3 100755 GIT binary patch delta 69364 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

e&#-{N0qM1=NV@~7Pz(${K+ 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