From 5f6665c7346d7c1dc52a456799cc752b79653fd3 Mon Sep 17 00:00:00 2001 From: drowe67 Date: Thu, 19 Jun 2014 09:22:04 +0000 Subject: [PATCH] removed a few more unused files git-svn-id: https://svn.code.sf.net/p/freetel/code@1692 01035d8c-6547-0410-b346-abe4f91aad63 --- fdmdv2-dev/CMakeLists.txt | 2 +- fdmdv2-dev/DEBIAN_DEVEL.sh | 1 + fdmdv2-dev/DEBIAN_RUNTIME.sh | 1 + fdmdv2-dev/README.cmake | 4 +- fdmdv2-dev/cmake/libctb.patch | 186 --------------- fdmdv2-dev/src/Makefile.linux | 197 ---------------- fdmdv2-dev/src/Makefile.linux.dmw | 54 ----- fdmdv2-dev/src/Makefile.win32 | 53 ----- fdmdv2-dev/src/Makefile.win32.dmw | 58 ----- fdmdv2-dev/src/fdmdv2_pa_wrapper.cpp | 337 --------------------------- fdmdv2-dev/src/fdmdv2_pa_wrapper.h | 115 --------- fdmdv2-dev/svn.ico | Bin 180467 -> 0 bytes 12 files changed, 5 insertions(+), 1003 deletions(-) create mode 100644 fdmdv2-dev/DEBIAN_DEVEL.sh create mode 100644 fdmdv2-dev/DEBIAN_RUNTIME.sh delete mode 100644 fdmdv2-dev/cmake/libctb.patch delete mode 100644 fdmdv2-dev/src/Makefile.linux delete mode 100644 fdmdv2-dev/src/Makefile.linux.dmw delete mode 100644 fdmdv2-dev/src/Makefile.win32 delete mode 100644 fdmdv2-dev/src/Makefile.win32.dmw delete mode 100644 fdmdv2-dev/src/fdmdv2_pa_wrapper.cpp delete mode 100644 fdmdv2-dev/src/fdmdv2_pa_wrapper.h delete mode 100644 fdmdv2-dev/svn.ico diff --git a/fdmdv2-dev/CMakeLists.txt b/fdmdv2-dev/CMakeLists.txt index b95b7746..c9815b01 100644 --- a/fdmdv2-dev/CMakeLists.txt +++ b/fdmdv2-dev/CMakeLists.txt @@ -84,7 +84,7 @@ set(USE_STATIC_SAMPLERATE FALSE CACHE BOOL "Download and build static samplerate instead of the system library.") set(USE_STATIC_SOX FALSE CACHE BOOL "Download and build static sox instead of the system library.") -set(USE_STATIC_CODEC2 FALSE CACHE BOOL +set(USE_STATIC_CODEC2 TRUE CACHE BOOL "Download and build static codec2 instead of the system library.") set(BOOTSTRAP_WXWIDGETS FALSE CACHE BOOL "Download and build static wxWidgets instead of the system library.") diff --git a/fdmdv2-dev/DEBIAN_DEVEL.sh b/fdmdv2-dev/DEBIAN_DEVEL.sh new file mode 100644 index 00000000..71cf970c --- /dev/null +++ b/fdmdv2-dev/DEBIAN_DEVEL.sh @@ -0,0 +1 @@ +apt-get install cmake gcc g++ libportaudio-dev libhamlib-dev libsamplerate-dev libsndfile-dev libsox-dev libgtk-3-dev libasound-dev diff --git a/fdmdv2-dev/DEBIAN_RUNTIME.sh b/fdmdv2-dev/DEBIAN_RUNTIME.sh new file mode 100644 index 00000000..239945fb --- /dev/null +++ b/fdmdv2-dev/DEBIAN_RUNTIME.sh @@ -0,0 +1 @@ +apt-get install libportaudio2 libhamlib2 libsamplerate0 libsndfile1 libsox2 libgtk-3-0 libasound2 diff --git a/fdmdv2-dev/README.cmake b/fdmdv2-dev/README.cmake index a27b403e..1bb0e8f0 100644 --- a/fdmdv2-dev/README.cmake +++ b/fdmdv2-dev/README.cmake @@ -61,8 +61,8 @@ libraries. NOTE: This forces "USE_STATIC_WXWIDGETS" to be true internally regarless of the value set manually. -(from any prefered directory outside of the source) -$ cmake -DBOOTSTRAP_WXWIDGETS=TRUE +(from any prefered, but empty directory outside of the source) +$ cmake -DBOOTSTRAP_WXWIDGETS=TRUE /path/to/fdmdv2 $ make (wxWidgets is downloaded and built) $ cmake . diff --git a/fdmdv2-dev/cmake/libctb.patch b/fdmdv2-dev/cmake/libctb.patch deleted file mode 100644 index 77f3efac..00000000 --- a/fdmdv2-dev/cmake/libctb.patch +++ /dev/null @@ -1,186 +0,0 @@ -diff -Naur libctb-0.16.orig/CMakeLists.txt libctb-0.16/CMakeLists.txt ---- libctb-0.16.orig/CMakeLists.txt 1969-12-31 18:00:00.000000000 -0600 -+++ libctb-0.16/CMakeLists.txt 2013-06-10 14:05:30.328586762 -0500 -@@ -0,0 +1,55 @@ -+cmake_minimum_required(VERSION 2.6) -+project(libctb) -+ -+set(LIBCTB_VERSION_MAJOR 0) -+set(LIBCTB_VERSION_MINOR 16) -+# Set patch level for bug fix updates which do not affect API/ABI. -+set(LIBCTB_VERSION_PATCH FALSE) -+set(LIBCTB_VERSION ${LIBCTB_VERSION_MAJOR}.${LIBCTB_VERSION_MINOR}) -+if(LIBCTB_VERSION_PATCH) -+ set(LIBCTB_VERSION ${LIBCTB_VERSION}.${LIBCTB_VERSION_PATCH}) -+endif(LIBCTB_VERSION_PATCH) -+ -+if(NOT CMAKE_BUILD_TYPE) -+ set(CMAKE_BUILD_TYPE Release) -+endif(NOT CMAKE_BUILD_TYPE) -+ -+option(BUILD_SHARED_LIBS -+ "Build CTB library as a shared library. Turn off for a static library." ON) -+option(GPIB "Build with GPIB support." OFF) -+option(SAMPLES "Build sample program." OFF) -+ -+add_definitions(-D_THREAD_SAFE -DPIC) -+ -+set(LIBCTB_LINK_LIBS "") -+ -+if(WIN32) -+ message(STATUS "Performing Windows based build.") -+ add_definitions(-mthreads) -+ find_library(WINMM_LIBRARY winmm) -+ if(NOT WINMM_LIBRARY) -+ message(FATAL_ERROR -+ "The winmm library is required on Windows platforms.") -+ endif(NOT WINMM_LIBRARY) -+ list(APPEND LIBCTB_LINK_LIBS ${WINMM_LIBRARY}) -+ #find_library(GPIB_LIBRARY NAMES gpib gpib32 gpib32.lib -+ # PATHS ${CMAKE_SOURCE_DIR}/lib) -+ set(GPIB_LIBRARY ${CMAKE_SOURCE_DIR}/lib/gpib32.lib) -+ message(STATUS "GPIB Library: ${GPIB_LIBRARY}") -+ list(APPEND LIBCTB_LINK_LIBS ${GPIB_LIBRARY}) -+else(WIN32) -+ message(STATUS "Performing POSIX based build.") -+ add_definitions(-fPIC) -+endif(WIN32) -+ -+find_package(Threads REQUIRED) -+message(STATUS "Threads library flags: ${CMAKE_THREAD_LIBS_INIT}") -+list(APPEND LIBCTB_LINK_LIBS ${CMAKE_THREAD_LIBS_INIT}) -+ -+include_directories(include) -+add_subdirectory(src) -+add_subdirectory(include) -+ -+if(SAMPLES) -+ add_subdirectory(samples) -+endif(SAMPLES) -diff -Naur libctb-0.16.orig/include/CMakeLists.txt libctb-0.16/include/CMakeLists.txt ---- libctb-0.16.orig/include/CMakeLists.txt 1969-12-31 18:00:00.000000000 -0600 -+++ libctb-0.16/include/CMakeLists.txt 2013-05-17 15:23:57.642330757 -0500 -@@ -0,0 +1,30 @@ -+set(INCDIR ctb-${LIBCTB_VERSION_MAJOR}.${LIBCTB_VERSION_MINOR}) -+ -+install(FILES -+ ${INCDIR}/ctb.h -+ ${INCDIR}/fifo.h -+ ${INCDIR}/gpib.h -+ ${INCDIR}/getopt.h -+ ${INCDIR}/portscan.h -+ ${INCDIR}/iobase.h -+ ${INCDIR}/kbhit.h -+ ${INCDIR}/serport.h -+ ${INCDIR}/serportx.h -+ ${INCDIR}/timer.h -+ DESTINATION include/${INCDIR} -+) -+ -+if(WIN32) -+ install(FILES -+ ${INCDIR}/win32/getopt.h -+ ${INCDIR}/win32/gpib-32.h -+ ${INCDIR}/win32/serport.h -+ DESTINATION include/${INCDIR}/win32 -+ ) -+else(WIN32) -+ install(FILES -+ ${INCDIR}/linux/serport.h -+ ${INCDIR}/linux/timer.h -+ DESTINATION include/${INCDIR}/linux -+ ) -+endif(WIN32) -diff -Naur libctb-0.16.orig/include/ctb-0.16/serport.h libctb-0.16/include/ctb-0.16/serport.h ---- libctb-0.16.orig/include/ctb-0.16/serport.h 2010-09-26 08:49:51.000000000 -0500 -+++ libctb-0.16/include/ctb-0.16/serport.h 2013-10-08 14:05:24.901905094 -0500 -@@ -10,9 +10,9 @@ - ///////////////////////////////////////////////////////////////////////////// - - #if defined (WIN32) --# include "ctb-0.16/win32/serport.h" -+# include "win32/serport.h" - #else --# include "ctb-0.16/linux/serport.h" -+# include "linux/serport.h" - #endif - - #endif -diff -Naur libctb-0.16.orig/include/ctb-0.16/serport.h.inc libctb-0.16/include/ctb-0.16/serport.h.inc ---- libctb-0.16.orig/include/ctb-0.16/serport.h.inc 1969-12-31 18:00:00.000000000 -0600 -+++ libctb-0.16/include/ctb-0.16/serport.h.inc 2010-09-26 08:49:51.000000000 -0500 -@@ -0,0 +1,20 @@ -+#ifndef LIBCTB_SERPORT_H_INCLUDED_ -+#define LIBCTB_SERPORT_H_INCLUDED_ -+ -+///////////////////////////////////////////////////////////////////////////// -+// Name: serport.h -+// Purpose: simple wrapper file -+// Author: Joachim Buermann -+// Copyright: (c) 2010 Joachim Buermann -+// Licence: wxWindows licence -+///////////////////////////////////////////////////////////////////////////// -+ -+#if defined (WIN32) -+# include "ctb-0.16/win32/serport.h" -+#else -+# include "ctb-0.16/linux/serport.h" -+#endif -+ -+#endif -+// __SERPORT_BASE_H -+ -diff -Naur libctb-0.16.orig/samples/CMakeLists.txt libctb-0.16/samples/CMakeLists.txt ---- libctb-0.16.orig/samples/CMakeLists.txt 1969-12-31 18:00:00.000000000 -0600 -+++ libctb-0.16/samples/CMakeLists.txt 2013-05-17 11:12:30.449892653 -0500 -@@ -0,0 +1,9 @@ -+if(GPIB) -+ add_definitions(-DGPIB=1) -+else(GPIB) -+ add_definitions(-DGPIB=0) -+endif(GPIB) -+ -+add_executable(ctbtest ctbtest.cpp) -+target_link_libraries(ctbtest libctb ${LIBCTB_LINK_LIBS}) -+install(TARGETS ctbtest DESTINATION bin) -diff -Naur libctb-0.16.orig/src/CMakeLists.txt libctb-0.16/src/CMakeLists.txt ---- libctb-0.16.orig/src/CMakeLists.txt 1969-12-31 18:00:00.000000000 -0600 -+++ libctb-0.16/src/CMakeLists.txt 2013-05-17 11:12:15.569201549 -0500 -@@ -0,0 +1,37 @@ -+set(LIBCTB_SRCS -+ fifo.cpp -+ #kbhit.cpp -+ serportx.cpp -+ getopt.cpp -+ iobase.cpp -+ portscan.cpp) -+ -+if(WIN32) -+ list(APPEND LIBCTB_SRCS -+ win32/serport.cpp -+ win32/timer.cpp) -+else(WIN32) -+ list(APPEND LIBCTB_SRCS -+ linux/serport.cpp -+ linux/timer.cpp) -+endif(WIN32) -+ -+if(GPIB) -+ message(STATUS "GPIB support enabled.") -+ list(APPEND LIBCTB_SRCS gpib.cpp) -+else(GPIB) -+ message(STATUS "GPIB support disabled.") -+endif(GPIB) -+ -+add_library(libctb ${LIBCTB_SRCS}) -+target_link_libraries(libctb ${LIBCTB_LINK_LIBS}) -+set_target_properties(libctb -+ PROPERTIES OUTPUT_NAME ctb-${LIBCTB_VERSION_MAJOR}.${LIBCTB_VERSION_MINOR}) -+ -+# NOTE: cmake may have been updated by now but the ${LIB_SUFFIX} is handy for -+# multi-lib *nix systems (32bit libraries go in /usr/lib, 64bit in /usr/lib64) -+install(TARGETS libctb -+ ARCHIVE DESTINATION lib${LIB_SUFFIX} -+ LIBRARY DESTINATION lib${LIB_SUFFIX} -+ RUNTIME DESTINATION bin -+ ) diff --git a/fdmdv2-dev/src/Makefile.linux b/fdmdv2-dev/src/Makefile.linux deleted file mode 100644 index 19b43a1e..00000000 --- a/fdmdv2-dev/src/Makefile.linux +++ /dev/null @@ -1,197 +0,0 @@ -# src/Makefile.linux -# David Rowe 10 Oct 2012 -# -# Makefile for Linux - builds the less common libraries locally and -# doesn't install them. -# -# $ make -f Makefile.linux - -SVN_REVISION=$(shell svnversion) - -# The list of required libraries, we will build this as we go -LIBS_TO_BUILD := - -SYSTEM_HAMLIB=y -SYSTEM_PORTAUDIO=n - -# wxWidgets --------------------------------------------- - -ifneq ($(SYSTEM_WXWIDGETS),y) -WXWIDGETS=wxWidgets-2.9.4 -WX_GTK_PATH=$(WXWIDGETS)/build_gtk -WX_CONFIG=$(WX_GTK_PATH)/wx-config -LIBS_TO_BUILD += $(WXWIDGETS)/.built -else -WX_CONFIG=$(shell which wx-config) -endif -WX_CPPFLAGS = $(shell $(WX_CONFIG) --cxxflags) -WX_LIBS = $(shell $(WX_CONFIG) --libs core, base, aui, adv, net) - -# Portaudio --------------------------------------------- - -ifeq ($(SYSTEM_PORTAUDIO),n) -PORTAUDIO=portaudio -PORTAUDIO_TARBALL=pa_stable_v19_20111121 -PORTAUDIO_INC=-I$(PORTAUDIO)/include -PORTAUDIO_LIB=$(PORTAUDIO)/lib/.libs/libportaudio.a -LIBS_TO_BUILD += $(PORTAUDIO)/.built - -# if libasound is available, PortAudio will be using it, so we will -# need to add it to freedv link line. To test if it is present, we try -# to link a small C program with -lasound - -LIBASOUND=$(shell echo "int main(void) {return 0;}" | gcc -xc - -lasound 2>/dev/null ; if [ $$? -eq 0 ] ; then echo "-lasound" ; fi ) - -else -PORTAUDIO_INC ?= $(shell pkg-config portaudio-2.0 --cflags) -PORTAUDIO_LIB ?= $(shell pkg-config portaudio-2.0 --libs) - -# libasound will be taken care of by pkg-config -LIBASOUND= -endif - -# Codec 2 ----------------------------------------------- - -CODEC2=codec2-dev -CODEC2_INC=-I$(CODEC2)/src -CODEC2_LIB=$(CODEC2)/build_dir/src/libcodec2.a - -# Sox --------------------------------------------------- -# (libmagic is rqd or later versions of Ubuntu) - -SOX=sox-14.4.0 -ifeq ($(SYSTEM_SOX),y) -SOX_INC ?= $(shell pkg-config sox --cflags) -SOX_LIB ?= $(shell pkg-config sox --libs) -else -SOX_INC=-I$(SOX)/src/ -SOX_LIB=$(SOX)/src/.libs/libsox.a -LIBS_TO_BUILD += $(SOX)/.built -endif - -# Hamlib --------------------------------------------------- - -HAMLIB=hamlib-1.2.15.3 -ifeq ($(SYSTEM_HAMLIB),y) -#HAMLIB_INC ?= $(shell pkg-config hamlib --cflags) -#HAMLIB_LIB ?= $(shell pkg-config hamlib --libs) -HAMLIB_LIB = -lhamlib -else -HAMLIB_INC=-I$(HAMLIB)/include/hamlib -# TODO: need to include all the backends too -HAMLIB_LIB=$(HAMLIB)/src/.libs/libhamlib.a -LIBS_TO_BUILD += $(HAMLIB)/.built -endif - -# CTB --------------------------------------------------- - -CTB=libctb-0.16 -CTB_INC=-I$(CTB)/include -CTB_LIB=$(CTB)/lib/libctb-0.16.a -LIBS_TO_BUILD += $(CTB)/.built - -# FreeDV ------------------------------------------------ - -CPP_FLAGS = -D_NO_AUTOTOOLS_ $(WX_CPPFLAGS) $(PORTAUDIO_INC) $(CODEC2_INC) \ - $(HAMLIB_INC) $(CTB_INC) $(SOX_INC) -I. -g -Wall -O2 \ - -DSVN_REVISION='"$(SVN_REVISION)"' -MMD -MP -FREEDV_LIBS = $(WX_LIBS) $(PORTAUDIO_LIB) $(CODEC2_LIB) $(SOX_LIB) $(HAMLIB_LIB) \ - $(CTB_LIB) -lm -lpthread -lsndfile -lsamplerate $(LIBASOUND) - -OBJS = topFrame.o \ -fdmdv2_main.o \ -fdmdv2_plot.o \ -fdmdv2_plot_scalar.o \ -fdmdv2_plot_scatter.o \ -fdmdv2_plot_spectrum.o \ -fdmdv2_plot_waterfall.o \ -fdmdv2_pa_wrapper.o \ -dlg_audiooptions.o \ -dlg_ptt.o \ -dlg_filter.o \ -dlg_options.o \ -varicode.o \ -sox_biquad.o \ -codec2-dev/src/golay23.c \ -hamlib.o - -all: $(LIBS_TO_BUILD) $(CODEC2)/.built freedv - -freedv: $(OBJS) - $(CXX) -o freedv $(OBJS) $(CPP_FLAGS) $(FREEDV_LIBS) - -%.o: %.cpp - $(CXX) -MMD -MF $(@:.o=.d) $(CPP_FLAGS) -c $< -o $@ - -%.o: %.c - $(CC) -MMD -MF $(@:.o=.d) $(CPP_FLAGS) -c $< -o $@ - --include $(OBJ:.o=.d) - -clean: - rm -f *.d *.o freedv - -clean-lib: - rm -Rf $(WXWIDGETS) $(PORTAUDIO) $(CODEC2) $(SOX) $(CTB) - rm -f *.d *.o freedv - -# wxWidgets --------------------------------------------------------- - -ifneq ($(WXWIDGETS),) -$(WXWIDGETS)/.built: $(WXWIDGETS) - cd $(WXWIDGETS) && mkdir -p build_gtk && cd build_gtk && ../configure && make && touch ../.built - -$(WXWIDGETS): $(WXWIDGETS).tar.bz2 - tar xvjf $(WXWIDGETS).tar.bz2 - -$(WXWIDGETS).tar.bz2: - wget http://downloads.sourceforge.net/project/wxwindows/2.9.4/wxWidgets-2.9.4.tar.bz2 -endif - -# Portaudio --------------------------------------------------------- - -ifneq ($(PORTAUDIO),) -$(PORTAUDIO)/.built: $(PORTAUDIO) - cd $(PORTAUDIO) && ./configure --enable-cxx --without-jack && make && touch .built - -$(PORTAUDIO): $(PORTAUDIO_TARBALL).tgz - tar xvzf $(PORTAUDIO_TARBALL).tgz - -$(PORTAUDIO_TARBALL).tgz: - wget http://www.portaudio.com/archives/$(PORTAUDIO_TARBALL).tgz -endif - -# Codec 2 ---------------------------------------------------------- - -$(CODEC2)/.built: $(CODEC2) - cd $(CODEC2)/build_dir && cmake ../ && make && touch ../.built - -$(CODEC2): - svn co https://freetel.svn.sourceforge.net/svnroot/freetel/codec2 - -# sox ------------------------------------------------------------- - -$(SOX)/.built: $(SOX) - cd $(SOX) && \ - ./configure --enable-shared=no --without-id3tag --without-png --disable-gomp --with-oggvorbis=no --with-oss=no --with-flac=no --disable-dl-sndfile --with-pulseaudio=no --without-magic \ - && make && touch .built - -$(SOX) : $(SOX).tar.bz2 - tar xvjf $(SOX).tar.bz2 - -$(SOX).tar.bz2: - wget http://downloads.sourceforge.net/project/sox/sox/14.4.0/sox-14.4.0.tar.bz2 - -# CTB ------------------------------------------------------------- - -$(CTB)/.built: $(CTB) - cd $(CTB)/build && make && touch ../.built - -$(CTB) : $(CTB).tar.gz - tar xvzf $(CTB).tar.gz - -$(CTB).tar.gz: - wget https://iftools.com/download/ctb/0.16/libctb-0.16.tar.gz - -# Source file dependency information --include $(wildcard *.d) diff --git a/fdmdv2-dev/src/Makefile.linux.dmw b/fdmdv2-dev/src/Makefile.linux.dmw deleted file mode 100644 index bb835cda..00000000 --- a/fdmdv2-dev/src/Makefile.linux.dmw +++ /dev/null @@ -1,54 +0,0 @@ -# src/Makefile.linux -# David Witten 06 Dec 2012 -# -# -# $ make -f Makefile.linux.dmw - - -# EDIT THESE FOR YOUR SYSTEM ---------------------------- - -WX_GTK_PATH=/home/wittend/Projects/wxWidgets-2.9.4/build_gtk -CODEC2_PATH=/home/wittend/Projects/codec2 -# SOX_LIB_PATH=$(HOME)/sox-14.4.0/src/.libs - not required because I installed soxlib from the repo. - -# END EDITS --------------------------------------------- - -WX_CONFIG=$(WX_GTK_PATH)/wx-config -WX_CPPFLAGS = $(shell $(WX_CONFIG) --cxxflags) -WX_LIBS = $(shell $(WX_CONFIG) --libs core, base, aui) -SVN_REVISION=$(shell svnversion) -FREEDV_VERSION=$(shell cat ../version.txt) -CODEC2_INC=-I$(CODEC2_PATH)/src -CODEC2_LIB=$(CODEC2_PATH)/src/.libs/libcodec2.a - -CPP_FLAGS = $(WX_CPPFLAGS) $(CODEC2_INC) -I. -g -Wall -O3 -DSVN_REV=\"$(SVN_REVISION)\" -DFREEDV_VERSION="\"$(FREEDV_VERSION)"\" -LIBS = $(WX_LIBS) $(CODEC2_LIB) -lm -lportaudiocpp -lpthread -lsndfile -lsamplerate - -OBJS = topFrame.o \ -fdmdv2_main.o \ -fdmdv2_plot.o \ -fdmdv2_plot_scalar.o \ -fdmdv2_plot_scatter.o \ -fdmdv2_plot_spectrum.o \ -fdmdv2_plot_waterfall_linux.o \ -fdmdv2_pa_wrapper.o \ -dlg_audiooptions.o \ -dlg_comports.o \ -dlg_filter.o \ -varicode.o \ -sox_biquad.o - - -all: fdmdv2 - -fdmdv2: $(OBJS) fdmdv2_main.h - g++ -o fdmdv2 $(OBJS) $(CPP_FLAGS) $(LIBS) - -fdmdv2_main.h: ../version.h fdmdv2_defines.h fdmdv2_plot.h fdmdv2_plot_scalar.h fdmdv2_plot_waterfall_linux.h fdmdv2_plot_scatter.h fdmdv2_plot_spectrum.h fdmdv2_pa_wrapper.h dlg_about.h dlg_audiooptions.h dlg_comports.h dlg_options.h - -%.o: %.cpp - g++ $(CPP_FLAGS) -c $< -o $@ - -clean: - rm -f *.o fdmdv2 - diff --git a/fdmdv2-dev/src/Makefile.win32 b/fdmdv2-dev/src/Makefile.win32 deleted file mode 100644 index 7ae88d7f..00000000 --- a/fdmdv2-dev/src/Makefile.win32 +++ /dev/null @@ -1,53 +0,0 @@ -# src/Makefile.win32 -# David Rowe 26 Oct 2012 -# -# Makefile for Win32 on msys/Mingw to help David R get up to speed -# -# $ make -f Makefile.Win32 - -CODEC2_PATH=$(HOME)/codec2 -INCLUDE_PATH=/usr/local/include - -WX_CONFIG=wx-config -WX_CPPFLAGS = $(shell $(WX_CONFIG) --cxxflags) -D__WXDEBUG__ -WX_LIBS = $(shell $(WX_CONFIG) --libs core, base, aui, adv, net) -SVN_REVISION=$(shell svnversion) -CODEC2_INC=$(CODEC2_PATH)/src -CODEC2_LIB=$(CODEC2_PATH)/src/.libs/libcodec2.a - -CPP_FLAGS = -D_NO_AUTOTOOLS_ -I$(INCLUDE_PATH) $(WX_CPPFLAGS) -I$(CODEC2_INC) -I../extern/include -I. -g -Wall -DSVN_REVISION=\"$(SVN_REVISION)\" -LIBS = $(WX_LIBS) $(CODEC2_LIB) -lm -lportaudiocpp -lportaudio -lpthread -lsndfile -lsamplerate -lhamlib -lsox -lctb-0.16 - -OBJS = topFrame.o \ -fdmdv2_main.o \ -fdmdv2_plot.o \ -fdmdv2_plot_scalar.o \ -fdmdv2_plot_scatter.o \ -fdmdv2_plot_spectrum.o \ -fdmdv2_plot_waterfall.o \ -fdmdv2_pa_wrapper.o \ -dlg_audiooptions.o \ -dlg_ptt.o \ -dlg_options.o \ -dlg_filter.o \ -varicode.o \ -sox_biquad.o \ -hamlib.o \ -../../codec2/src/golay23.o - -HDRS = version.h dlg_audiooptions.h dlg_ptt.h dlg_filter.h fdmdv2_main.h fdmdv2_defines.h fdmdv2_plot.h fdmdv2_plot_scalar.h fdmdv2_plot_waterfall.h fdmdv2_plot_scatter.h fdmdv2_plot_spectrum.h fdmdv2_pa_wrapper.h topFrame.h dlg_audiooptions.h topFrame.h varicode.h ../../codec2/src/golay23.h hamlib.h - -all: freedv - -freedv: $(OBJS) - g++ -o freedv $(OBJS) $(CPP_FLAGS) $(LIBS) - -%.o: %.cpp $(HDRS) Makefile.win32 - g++ $(CPP_FLAGS) -c $< -o $@ - -%.o: %.c $(HDRS) Makefile.win32 - gcc $(CPP_FLAGS) -c $< -o $@ - -clean: - rm -f *.o fdmdv2 - diff --git a/fdmdv2-dev/src/Makefile.win32.dmw b/fdmdv2-dev/src/Makefile.win32.dmw deleted file mode 100644 index 739124fd..00000000 --- a/fdmdv2-dev/src/Makefile.win32.dmw +++ /dev/null @@ -1,58 +0,0 @@ -# src/Makefile.win32 -# David Witten Nov 31 2012 -# -# -# $ make -f Makefile.Win32.dmw - -# EDIT THESE FOR YOUR SYSTEM ---------------------------- - -CODEC2_PATH=D:/Projects/Radio/codec2 -INCLUDE_PATH=d:/bin/MinGW-4.6.1/msys/1.0/local/lib - -# not required because I installed soxlib in my: -# D:\bin\MinGW-4.6.1\msys\1.0\local\lib folder -# which is the equivalent from the Msys command line to -# /usr/local/lib under Linux/Unix/BSD type OS's and therefore -# in the default linker path -# SOX_LIB_PATH=$(HOME)/sox-14.4.0/src/.libs - -# END EDITS --------------------------------------------- - -WX_CONFIG=wx-config -WX_CPPFLAGS = $(shell $(WX_CONFIG) --cxxflags) -D__WXDEBUG__ -WX_LIBS = $(shell $(WX_CONFIG) --libs core, base, aui, adv, net) -SVN_REVISION=$(shell svnversion -c /fdmdv2) -CODEC2_INC=$(CODEC2_PATH)/src -CODEC2_LIB=$(CODEC2_PATH)/src/.libs/libcodec2.a - -CPP_FLAGS = -I$(INCLUDE_PATH) $(WX_CPPFLAGS) -I$(CODEC2_INC) -I../extern/include -g -Wall -DSVN_REV=\"$(SVN_REVISION)\" -DFREEDV_VERSION="\"$(FREEDV_VERSION)"\" -LIBS = $(WX_LIBS) $(CODEC2_LIB) -lm -lportaudiocpp -lportaudio -lpthread -lsndfile -lsamplerate - -OBJS = topFrame.o \ -fdmdv2_main.o \ -fdmdv2_plot.o \ -fdmdv2_plot_scalar.o \ -fdmdv2_plot_scatter.o \ -fdmdv2_plot_spectrum.o \ -fdmdv2_plot_waterfall_linux.o \ -fdmdv2_pa_wrapper.o \ -dlg_audiooptions.o \ -dlg_comports.o \ -dlg_filter.o \ -varicode.o \ -sox_biquad.o - - -HDRS = ../version.h fdmdv2_main.h fdmdv2_defines.h fdmdv2_plot.h fdmdv2_plot_scalar.h fdmdv2_plot_waterfall_linux.h fdmdv2_plot_scatter.h fdmdv2_plot_spectrum.h fdmdv2_pa_wrapper.h topFrame.h dlg_audiooptions.h - -all: freedv - -freedv: $(OBJS) - g++ -o freedv $(OBJS) $(CPP_FLAGS) $(LIBS) - -%.o: %.cpp $(HDRS) Makefile.win32 - g++ $(CPP_FLAGS) -c $< -o $@ - -clean: - rm -f *.o FreeDV.exe - diff --git a/fdmdv2-dev/src/fdmdv2_pa_wrapper.cpp b/fdmdv2-dev/src/fdmdv2_pa_wrapper.cpp deleted file mode 100644 index 08120873..00000000 --- a/fdmdv2-dev/src/fdmdv2_pa_wrapper.cpp +++ /dev/null @@ -1,337 +0,0 @@ -//========================================================================== -// Name: fdmdv2_pa_wrapper.cpp -// Purpose: Implements a wrapper class around the PortAudio library. -// Created: August 12, 2012 -// Authors: David Rowe, David Witten -// -// License: -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License version 2.1, -// as published by the Free Software Foundation. This program 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, see . -// -//========================================================================== -#include "fdmdv2_pa_wrapper.h" - -//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-= -// PortAudioWrap() -//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-= -PortAudioWrap::PortAudioWrap() -{ - m_pStream = NULL; - m_pUserData = NULL; - m_samplerate = 0; - m_framesPerBuffer = 0; - m_statusFlags = 0; - m_pStreamCallback = NULL; - m_pStreamFinishedCallback = NULL; - m_pTimeInfo = 0; - m_newdata = false; - -// loadData(); -} - -//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-= -// ~PortAudioWrap() -//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-= -PortAudioWrap::~PortAudioWrap() -{ -} - -//---------------------------------------------------------------- -// streamOpen() -//---------------------------------------------------------------- -PaError PortAudioWrap::streamOpen() -{ - return Pa_OpenStream( - &m_pStream, - m_inputBuffer.device == paNoDevice ? NULL : &m_inputBuffer, - m_outputBuffer.device == paNoDevice ? NULL : &m_outputBuffer, - m_samplerate, - m_framesPerBuffer, - m_statusFlags, - *m_pStreamCallback, - m_pUserData - ); -} - -//---------------------------------------------------------------- -// streamStart() -//---------------------------------------------------------------- -PaError PortAudioWrap::streamStart() -{ - return Pa_StartStream(m_pStream); -} - -//---------------------------------------------------------------- -// streamClose() -//---------------------------------------------------------------- -PaError PortAudioWrap::streamClose() -{ - if(isOpen()) - { - PaError rv = Pa_CloseStream(m_pStream); - return rv; - } - else - { - return paNoError; - } -} - -//---------------------------------------------------------------- -// terminate() -//---------------------------------------------------------------- -void PortAudioWrap::terminate() -{ - if(Pa_IsStreamStopped(m_pStream) != paNoError) - { - Pa_StopStream(m_pStream); - } - Pa_Terminate(); -} - -//---------------------------------------------------------------- -// stop() -//---------------------------------------------------------------- -void PortAudioWrap::stop() -{ - Pa_StopStream(m_pStream); -} - -//---------------------------------------------------------------- -// abort() -//---------------------------------------------------------------- -void PortAudioWrap::abort() -{ - Pa_AbortStream(m_pStream); -} - -//---------------------------------------------------------------- -// isStopped() -//---------------------------------------------------------------- -bool PortAudioWrap::isStopped() const -{ - PaError ret = Pa_IsStreamStopped(m_pStream); - return ret; -} - -//---------------------------------------------------------------- -// isActive() -//---------------------------------------------------------------- -bool PortAudioWrap::isActive() const -{ - PaError ret = Pa_IsStreamActive(m_pStream); - return ret; -} - -//---------------------------------------------------------------- -// isOpen() -//---------------------------------------------------------------- -bool PortAudioWrap::isOpen() const -{ - return (m_pStream != NULL); -} - -//---------------------------------------------------------------- -// getDefaultInputDevice() -//---------------------------------------------------------------- -PaDeviceIndex PortAudioWrap::getDefaultInputDevice() -{ - return Pa_GetDefaultInputDevice(); -} - -//---------------------------------------------------------------- -// getDefaultOutputDevice() -//---------------------------------------------------------------- -PaDeviceIndex PortAudioWrap::getDefaultOutputDevice() -{ - return Pa_GetDefaultOutputDevice(); -} - -//---------------------------------------------------------------- -// setInputChannelCount() -//---------------------------------------------------------------- -PaError PortAudioWrap::setInputChannelCount(int count) -{ - m_inputBuffer.channelCount = count; - return paNoError; -} - -//---------------------------------------------------------------- -// getInputChannelCount() -//---------------------------------------------------------------- -PaError PortAudioWrap::getInputChannelCount() -{ - return m_inputBuffer.channelCount; -} - -//---------------------------------------------------------------- -// setInputSampleFormat() -//---------------------------------------------------------------- -PaError PortAudioWrap::setInputSampleFormat(PaSampleFormat format) -{ - m_inputBuffer.sampleFormat = format; - return paNoError; -} - -//---------------------------------------------------------------- -// setInputLatency() -//---------------------------------------------------------------- -PaError PortAudioWrap::setInputLatency(PaTime latency) -{ - m_inputBuffer.suggestedLatency = latency; - return paNoError; -} - -//---------------------------------------------------------------- -// setInputHostApiStreamInfo() -//---------------------------------------------------------------- -void PortAudioWrap::setInputHostApiStreamInfo(void *info) -{ - m_inputBuffer.hostApiSpecificStreamInfo = info; -} - -//---------------------------------------------------------------- -// getInputDefaultLowLatency() -//---------------------------------------------------------------- -PaTime PortAudioWrap::getInputDefaultLowLatency() -{ - return Pa_GetDeviceInfo(m_inputBuffer.device)->defaultLowInputLatency; -} - -//---------------------------------------------------------------- -// setOutputChannelCount() -//---------------------------------------------------------------- -PaError PortAudioWrap::setOutputChannelCount(int count) -{ - m_outputBuffer.channelCount = count; - return paNoError; -} - -//---------------------------------------------------------------- -// getOutputChannelCount() -//---------------------------------------------------------------- -const int PortAudioWrap::getOutputChannelCount() -{ - return m_outputBuffer.channelCount; -} - -//---------------------------------------------------------------- -// getDeviceName() -//---------------------------------------------------------------- -const char *PortAudioWrap::getDeviceName(PaDeviceIndex dev) -{ - const PaDeviceInfo *info; - info = Pa_GetDeviceInfo(dev); - return info->name; -} - -//---------------------------------------------------------------- -// setOutputSampleFormat() -//---------------------------------------------------------------- -PaError PortAudioWrap::setOutputSampleFormat(PaSampleFormat format) -{ - m_outputBuffer.sampleFormat = format; - return paNoError; -} - -//---------------------------------------------------------------- -// setOutputLatency() -//---------------------------------------------------------------- -PaError PortAudioWrap::setOutputLatency(PaTime latency) -{ - m_outputBuffer.suggestedLatency = latency; - return paNoError; -} - -//---------------------------------------------------------------- -// setOutputHostApiStreamInfo() -//---------------------------------------------------------------- -void PortAudioWrap::setOutputHostApiStreamInfo(void *info) -{ - m_outputBuffer.hostApiSpecificStreamInfo = info; -} - -//---------------------------------------------------------------- -// getOutputDefaultLowLatency() -//---------------------------------------------------------------- -PaTime PortAudioWrap::getOutputDefaultLowLatency() -{ - return Pa_GetDeviceInfo(m_outputBuffer.device)->defaultLowOutputLatency; -} - -//---------------------------------------------------------------- -// setFramesPerBuffer() -//---------------------------------------------------------------- -PaError PortAudioWrap::setFramesPerBuffer(unsigned long size) -{ - m_framesPerBuffer = size; - return paNoError; -} - -//---------------------------------------------------------------- -// setSampleRate() -//---------------------------------------------------------------- -PaError PortAudioWrap::setSampleRate(unsigned long rate) -{ - m_samplerate = rate; - return paNoError; -} - -//---------------------------------------------------------------- -// setStreamFlags() -//---------------------------------------------------------------- -PaError PortAudioWrap::setStreamFlags(PaStreamFlags flags) -{ - m_statusFlags = flags; - return paNoError; -} - -//---------------------------------------------------------------- -// setInputDevice() -//---------------------------------------------------------------- -PaError PortAudioWrap::setInputDevice(PaDeviceIndex index) -{ - m_inputBuffer.device = index; - return paNoError; -} - -//---------------------------------------------------------------- -// setOutputDevice() -//---------------------------------------------------------------- -PaError PortAudioWrap::setOutputDevice(PaDeviceIndex index) -{ - m_outputBuffer.device = index; - return paNoError; -} - -//---------------------------------------------------------------- -// setCallback() -//---------------------------------------------------------------- -PaError PortAudioWrap::setCallback(PaStreamCallback *callback) -{ - m_pStreamCallback = callback; - return paNoError; -} - -/* -//---------------------------------------------------------------- -// loadData() : create Dummy Data -//---------------------------------------------------------------- -void PortAudioWrap::loadData() -{ - int i; - for(i = 0; i < FDMDV_NSPEC; i++) - { - m_av_mag[i] = i; - } -} -*/ diff --git a/fdmdv2-dev/src/fdmdv2_pa_wrapper.h b/fdmdv2-dev/src/fdmdv2_pa_wrapper.h deleted file mode 100644 index 3d216c0d..00000000 --- a/fdmdv2-dev/src/fdmdv2_pa_wrapper.h +++ /dev/null @@ -1,115 +0,0 @@ -//========================================================================== -// Name: fdmdv2_pa_wrapper.h -// Purpose: Defines a wrapper class around PortAudio -// Created: August 12, 2012 -// Authors: David Rowe, David Witten -// -// License: -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License version 2.1, -// as published by the Free Software Foundation. This program 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, see . -// -//========================================================================== -#include -#include -#include "fdmdv2_defines.h" -#include "codec2_fdmdv.h" -#include "codec2.h" -#include "portaudio.h" - -#define PA_SAMPLE_TYPE paInt16 //paFloat32 -#define FRAMES_PER_BUFFER (64) - -typedef float SAMPLE; - -class PortAudioWrap -{ - public: - PortAudioWrap(); - ~PortAudioWrap(); - -// float m_av_mag[FDMDV_NSPEC]; - - private: - PaStream *m_pStream; - void *m_pUserData; - PaStreamCallback *m_pStreamCallback; - PaStreamFinishedCallback *m_pStreamFinishedCallback; - const PaStreamCallbackTimeInfo *m_pTimeInfo; - struct FDMDV *m_pFDMDV_state; - PaStreamParameters m_inputBuffer; - PaStreamParameters m_outputBuffer; - int m_samplerate; - unsigned long m_framesPerBuffer; - PaStreamCallbackFlags m_statusFlags; - bool m_newdata; - - public: - - void averageData(float mag_dB[]); - - int getDeviceCount() { return Pa_GetDeviceCount(); } - PaDeviceIndex getDefaultInputDevice(); - PaDeviceIndex getDefaultOutputDevice(); - PaStreamParameters *getDeviceInfo(PaDeviceIndex idx); - - PaError setFramesPerBuffer(unsigned long size); - PaError setSampleRate(unsigned long size); - - PaError setStreamFlags(PaStreamFlags flags); - PaError setCallback(PaStreamCallback *m_pStreamCallback); - PaError setStreamCallback(PaStream *stream, PaStreamCallback* callback) { m_pStreamCallback = callback; return 0;} - PaError setStreamFinishedCallback(PaStream *stream, PaStreamFinishedCallback* m_pStreamFinishedCallback); - - void setInputBuffer(const PaStreamParameters& inputBuffer) {this->m_inputBuffer = inputBuffer;} - PaError setInputDevice(PaDeviceIndex dev); - PaError setInputChannelCount(int count); - int getInputChannelCount(); - PaError setInputSampleFormat(PaSampleFormat format); - PaError setInputSampleRate(PaSampleFormat format); - PaError setInputLatency(PaTime latency); - void setInputHostApiStreamInfo(void *info = NULL); - PaTime getInputDefaultLowLatency(); - const char *getDeviceName(PaDeviceIndex dev); - - PaError setOutputDevice(PaDeviceIndex dev); - PaError setOutputChannelCount(int count); - const int getOutputChannelCount(); - PaError setOutputSampleFormat(PaSampleFormat format); - PaError setOutputLatency(PaTime latency); - void setOutputHostApiStreamInfo(void *info = NULL); - PaTime getOutputDefaultLowLatency(); - - void setFdmdvState(FDMDV* fdmdv_state) {this->m_pFDMDV_state = fdmdv_state;} - void setOutputBuffer(const PaStreamParameters& outputBuffer) {this->m_outputBuffer = outputBuffer;} - void setTimeInfo(PaStreamCallbackTimeInfo* timeInfo) {this->m_pTimeInfo = timeInfo;} - void setUserData(void* userData) {this->m_pUserData = userData;} - unsigned long getFramesPerBuffer() const {return m_framesPerBuffer;} - const PaStreamParameters& getInputBuffer() const {return m_inputBuffer;} - const PaStreamParameters& getOutputBuffer() const {return m_outputBuffer;} - const PaStreamCallbackFlags& getStatusFlags() const {return m_statusFlags;} - - FDMDV* getFdmdvState() {return m_pFDMDV_state;} - int getSamplerate() const {return m_samplerate;} - PaStream* getStream() {return m_pStream;} - void *getUserData() {return m_pUserData;} - bool getDataAvail() {return m_newdata;} - PaError streamStart(); - PaError streamClose(); - PaError streamOpen(); - void terminate(); - void stop(); - void abort(); - bool isOpen() const; - bool isStopped() const; - bool isActive() const; -// void loadData(); -}; diff --git a/fdmdv2-dev/svn.ico b/fdmdv2-dev/svn.ico deleted file mode 100644 index ba63376b6f9280e18910ec96f3b47af4d4f757c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 180467 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 -- 2.25.1