diff --git a/CMakeLists.txt b/CMakeLists.txt index e0df712..49146e9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,13 +10,20 @@ SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake/") set(CURSES_NEED_NCURSES TRUE) set(CURSES_NEED_WIDE TRUE) -#use cmake option -DCOLORS=OFF to disable color output +#use cmake option -DCOLORS=OFF to disable color output (ncurses) option(COLORS "Build with Colors Enabled" ON) if (COLORS) add_definitions(-DPRETTY_COLORS) endif () +#use cmake option -DCOLORSLOGS=OFF to disable color output (terminal/logs) +option(COLORSLOGS + "Build with Colors Enabled" ON) +if (COLORSLOGS) + add_definitions(-DPRETTY_COLORS_LOGS) +endif () + #use cmake option -DPVC=ON to enable Provoice Conventional Frame Sync option(PVC "Build with Provoice Conventional Frame Sync Enabled" OFF) diff --git a/cyg_portable.sh b/cyg_portable.sh index fdd9ab6..301d30c 100644 --- a/cyg_portable.sh +++ b/cyg_portable.sh @@ -22,6 +22,8 @@ if [ "$RELEASE" = "y" ]; then mkdir shm cd .. mkdir dsd-fme + mkdir logs + mkdir WAV mkdir etc mkdir home mkdir lib @@ -236,6 +238,7 @@ if [ "$RELEASE" = "y" ]; then cp /bin/parec dsd-fme-portable/dsd-fme/ cp /bin/pulseaudio.exe dsd-fme-portable/dsd-fme/ cp /bin/tail.exe dsd-fme-portable/dsd-fme/ + cp /bin/touch.exe dsd-fme-portable/dsd-fme/ cp /bin/tty.exe dsd-fme-portable/dsd-fme/ zip -r dsd-fme-x86-64-cygwin-portable.zip dsd-fme-portable diff --git a/download-and-install-cygwin.sh b/download-and-install-cygwin.sh index 3c61587..dd1aebd 100644 --- a/download-and-install-cygwin.sh +++ b/download-and-install-cygwin.sh @@ -74,7 +74,7 @@ if [ "$ANSWER" = "y" ]; then #git checkout aw_dev mkdir build cd build - cmake .. + cmake -DCOLORSLOGS=OFF .. make -j $(nproc) make install cd $cdir @@ -96,6 +96,8 @@ if [ "$ANSWER" = "y" ]; then mkdir shm cd .. mkdir dsd-fme + mkdir logs + mkdir WAV mkdir etc mkdir home mkdir lib @@ -310,6 +312,7 @@ if [ "$ANSWER" = "y" ]; then cp /bin/parec dsd-fme-portable/dsd-fme/ cp /bin/pulseaudio.exe dsd-fme-portable/dsd-fme/ cp /bin/tail.exe dsd-fme-portable/dsd-fme/ + cp /bin/touch.exe dsd-fme-portable/dsd-fme/ cp /bin/tty.exe dsd-fme-portable/dsd-fme/ zip -r dsd-fme-x86-64-cygwin-portable.zip dsd-fme-portable diff --git a/examples/cygwin_bat/1aa - start-dsd-fme.bat b/examples/cygwin_bat/1aa - start-dsd-fme.bat index 70de0a1..1675f6b 100644 --- a/examples/cygwin_bat/1aa - start-dsd-fme.bat +++ b/examples/cygwin_bat/1aa - start-dsd-fme.bat @@ -1,13 +1,7 @@ -@REM Set the console / terminal to 90 columns, 50 lines -@REM mode con: cols=90 lines=50 - -@REM change directory into the dsd-fme folder -cd dsd-fme - @REM Digital Speech Decoder: Florida Man Edition @REM DSD-FME Cygwin Windows Portable Builds @REM -@REM The source code of this software can be donwloaded here: +@REM The source code of this software can be downloaded here: @REM https://github.com/lwvmobile/dsd-fme @REM @REM If you paid for, or were otherwise fleeced for this software, DEMAND YOUR MONEY BACK! @@ -15,102 +9,63 @@ cd dsd-fme @REM This software is designed to be used with an SDR receiver (like SDR++ or SDR#) with TCP input, @REM RTL Input, media file playback over virtual cables or null-sinks, or a Discriminator Tap input @REM -@REM The complete option list can be seen by entering the following command: +@REM The complete options list can be seen by entering the following command: @REM dsd-fme.exe -h @REM -@REM Enjoy ! -@REM -@REM Important! Make sure to route audio in with volume mixer after opening! -@REM You may need to restart the software after setting it up to monitor input -@REM of VB-Cables, or allowing the network traffic for TCP or RIGCTL -@REM See the 'source code\examples\Audio_Plumbing.md' file for more information -@REM -@REM Notice: DSD-FME will not auto-detect NXDN48/96, Provoice, M17, or dPMR signals, -@REM you will need to manually switch them on with the correct command. -@REM -@REM Notice: This .bat file contains numerous examples, it is recommended to find an -@REM an example that matches your use case, and use the @REM to disable the default -@REM or make your own .bat files with the examples provided here +@REM Enjoy! +@REM Regarding the options string (or any string in .bat files) +@REM If your string may contain spaces, set the first '"' before options, and then an ending '"' +@REM Incorrect: set options="-fs -N -Z" +@REM Correct: set "options=-fs -N -Z" -@REM Default Decoders (DMR, P25, X2, DSTAR, YSF): -@REM -i /dev/dsp, -o /dev/dsp, and -fa are implied +@REM set options to pass to dsd-fme +set "options= -fs -N -Z " -@REM dsd-fme.exe -dsd-fme.exe -N 2> log.ans +@REM Set Date Time for log (sourced from: https://stackoverflow.com/questions/1192476/format-date-and-time-in-a-windows-batch-script) +@echo off +REM "%date: =0%" replaces spaces with zeros +set d=%date: =0% +REM "set yyyy=%d:~-4%" pulls the last 4 characters +set yyyy=%d:~-4% +set mm=%d:~4,2% +set dd=%d:~7,2% +set dow=%d:~0,3% +set d=%yyyy%%mm%%dd% -@REM DMR +set t=%TIME: =0% +REM "%t::=%" removes semi-colons +REM Instead of above, you could use "%t::=-%" to +REM replace semi-colons with hyphens (or any +REM non-special character) +set t=%t::=% +set t=%t:.=% -@REM dsd-fme.exe -fs -@REM dsd-fme.exe -fs -N 2> log.ans -@REM dsd-fme.exe -fs -xr #(inverted polarity) +set datetimestr=%d%_%t% +@REM @echo Long date time str = %datetimestr% -@REM P25 +@REM random number is used so that two log files don't share the same name +set rnd=%RANDOM% -@REM dsd-fme.exe -ft -@REM dsd-fme.exe -ft -N 2> log.ans +@REM set log file relative filepath +set "log=.\logs\log_%datetimestr%_%rnd%.txt" +@REM create the log file now with touch +.\dsd-fme\touch.exe %log% -@REM P25 (Phase 2 Only, specify WACN/SYS/CC value, if not control channel) +@REM Launch Tail to display the log in a seperate console window +start .\dsd-fme\tail.exe -n 40 -f %log% -@REM dsd-fme.exe -f2 -X BEE00ABC123 -@REM dsd-fme.exe -f2 -X BEE00ABC123 -N 2> log.ans +@REM start dsd-fme with options and log +.\dsd-fme\dsd-fme.exe %options% 2> %log% -@REM X2-TDMA +echo ---------------------------------------------------------------------------------- +echo ---------------------------------------------------------------------------------- +echo For any errors, see: %log% +echo Forward %log% and Options: "%options%" +echo to developer on Github or Radio Reference for troubleshooting. +echo ---------------------------------------------------------------------------------- +echo ---------------------------------------------------------------------------------- -@REM dsd-fme.exe -fx -@REM dsd-fme.exe -fx -N 2> log.ans -@REM dsd-fme.exe -fx -xx #(inverted polarity) - - -@REM NXDN48 - -@REM dsd-fme.exe -fi -@REM dsd-fme.exe -fi -N 2> log.ans - - -@REM NXDN96 - -@REM dsd-fme.exe -fn -@REM dsd-fme.exe -fn -N 2> log.ans - - -@REM YSF - -@REM dsd-fme.exe -fy -@REM dsd-fme.exe -fy -N 2> log.ans - - -@REM DSTAR - -@REM dsd-fme.exe -fd -@REM dsd-fme.exe -fd -N 2> log.ans - - -@REM dPMR - -@REM dsd-fme.exe -fm -@REM dsd-fme.exe -fm -N 2> log.ans -@REM dsd-fme.exe -fm -xd #(inverted polarity) - - -@REM M17 - -@REM dsd-fme.exe -fz -@REM dsd-fme.exe -fz -N 2> log.ans -@REM dsd-fme.exe -fz -xz #(inverted polarity) - - -@REM ProVoice - -@REM dsd-fme.exe -fp -@REM dsd-fme.exe -fp -N 2> log.ans - - -@REM ProVoice (Conventional / Simplex) - -@REM dsd-fme-pvc.exe -ft -@REM dsd-fme-pvc.exe -ft -N 2> log.ans - - -@REM PAUSE +@REM Set pause to diplay above message +PAUSE diff --git a/include/dsd.h b/include/dsd.h index 5cc17a7..1081ec3 100644 --- a/include/dsd.h +++ b/include/dsd.h @@ -17,8 +17,8 @@ * PERFORMANCE OF THIS SOFTWARE. */ -//defined by CMakeLists.txt -- Disable by using cmake -DCOLORS=OFF .. -#ifdef PRETTY_COLORS +//ANSII Color Characters in Terminal -- Disable by using cmake -DCOLORSLOGS=OFF .. +#ifdef PRETTY_COLORS_LOGS #define KNRM "\x1B[0m" #define KRED "\x1B[31m" #define KGRN "\x1B[32m"