diff --git a/CMakeLists.txt b/CMakeLists.txt index 03495c9..cb7cc61 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,9 @@ project(dsd) cmake_minimum_required(VERSION 2.8.11) SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake/") +#Set curses to ncurses, and wide true for ascii +set(CURSES_NEED_NCURSES TRUE) +set(CURSES_NEED_WIDE TRUE) include(git_revision) git_describe(GIT_TAG) @@ -11,40 +14,12 @@ find_package(MBE REQUIRED) find_package(ITPP REQUIRED) #find_package(LibPortAudio) #disabled for testing find_package(RTLSDR) -#more messing around -#find_package(Curses) -find_package(Curses REQUIRED) #making this required until I can fix all instances of it being called to ifdef lines +find_package(Curses REQUIRED) find_package(PULSEAUDIO) -#include_directories(SYSTEM ${LIBSNDFILE_INCLUDE_DIR} ${MBE_INCLUDE_DIR} ${ITPP_INCLUDE_DIR} ${PULSEAUDIO_INCLUDE_DIRS} ${CURSES_INCLUDE_DIR}) -#set(LIBS ${MBE_LIBRARY} ${LIBSNDFILE_LIBRARY} ${ITPP_LIBRARY} ${PULSEAUDIO_SIMPLE_LIBRARY} ${CURSES_LIBRARY}) -#remove CURSES from 'required' set up top AFTER switching all commands to ifdef in dsd_main, dsd_framesync, and dsd_ncurses.c -#also, figure out how to make it build for wide character support in Linux Mint etc, like this -- $(ncursesw5-config --cflags --libs) include_directories(SYSTEM ${LIBSNDFILE_INCLUDE_DIR} ${MBE_INCLUDE_DIR} ${ITPP_INCLUDE_DIR} ${PULSEAUDIO_INCLUDE_DIRS} ${CURSES_INCLUDE_DIR}) set(LIBS ${MBE_LIBRARY} ${LIBSNDFILE_LIBRARY} ${ITPP_LIBRARY} ${PULSEAUDIO_SIMPLE_LIBRARY} ${CURSES_LIBRARY}) - -if(Curses_FOUND) - set(CURSES_NEED_WIDE TRUE) - include_directories(SYSTEM ${CURSES_INCLUDE_PATH}) - list(APPEND LIBS ${CURSES_LIBRARY}) - add_definitions(-DUSE_CURSES) -endif(Curses_FOUND) - -#going to disable PortAudio, works just fine with padsp in Linux, -#hoping disabling this doesn't break OSX or cygwin, etc builds -#if(PORTAUDIO_FOUND) -# include_directories(SYSTEM ${PORTAUDIO_INCLUDE_DIRS}) -# list(APPEND LIBS ${PORTAUDIO_LIBRARIES}) -# add_definitions(-DUSE_PORTAUDIO) -#endif(PORTAUDIO_FOUND) - -#if(PULSEAUDIO_FOUND) ##I don't think this will be necessary -# include_directories(SYSTEM ${PULSEAUDIO_INCLUDE_DIRS}) -# list(APPEND LIBS ${PULSEAUDIO_LIBRARIES}) -# add_definitions(-DUSE_PULSEAUDIO) -#endif(PULSEAUDIO_FOUND) - if(RTLSDR_FOUND) find_package(Threads) include_directories(SYSTEM ${RTLSDR_INCLUDE_DIRS}) diff --git a/cmake/FindCURSES.cmake b/cmake/FindCURSES.cmake deleted file mode 100644 index bfa1d6f..0000000 --- a/cmake/FindCURSES.cmake +++ /dev/null @@ -1,276 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -#[=======================================================================[.rst: -FindCurses ----------- - -Find the curses or ncurses include file and library. - -Result Variables -^^^^^^^^^^^^^^^^ - -This module defines the following variables: - -``CURSES_FOUND`` - True if Curses is found. -``CURSES_INCLUDE_DIRS`` - The include directories needed to use Curses. -``CURSES_LIBRARIES`` - The libraries needed to use Curses. -``CURSES_CFLAGS`` - .. versionadded:: 3.16 - - Parameters which ought be given to C/C++ compilers when using Curses. -``CURSES_HAVE_CURSES_H`` - True if curses.h is available. -``CURSES_HAVE_NCURSES_H`` - True if ncurses.h is available. -``CURSES_HAVE_NCURSES_NCURSES_H`` - True if ``ncurses/ncurses.h`` is available. -``CURSES_HAVE_NCURSES_CURSES_H`` - True if ``ncurses/curses.h`` is available. - -Set ``CURSES_NEED_NCURSES`` to ``TRUE`` before the -``find_package(Curses)`` call if NCurses functionality is required. - -.. versionadded:: 3.10 - Set ``CURSES_NEED_WIDE`` to ``TRUE`` before the - ``find_package(Curses)`` call if unicode functionality is required. - -Backward Compatibility -^^^^^^^^^^^^^^^^^^^^^^ - -The following variable are provided for backward compatibility: - -``CURSES_INCLUDE_DIR`` - Path to Curses include. Use ``CURSES_INCLUDE_DIRS`` instead. -``CURSES_LIBRARY`` - Path to Curses library. Use ``CURSES_LIBRARIES`` instead. -#]=======================================================================] - -include(${CMAKE_CURRENT_LIST_DIR}/CheckLibraryExists.cmake) - -# we don't know anything about cursesw, so only ncurses -# may be ncursesw -if(NOT CURSES_NEED_WIDE) - set(NCURSES_LIBRARY_NAME "ncurses") - set(CURSES_FORM_LIBRARY_NAME "form") -else() - set(NCURSES_LIBRARY_NAME "ncursesw") - set(CURSES_FORM_LIBRARY_NAME "formw") - # Also, if we are searching for wide curses - we are actually searching - # for ncurses, we don't know about any other unicode version. - set(CURSES_NEED_NCURSES TRUE) -endif() - -find_library(CURSES_CURSES_LIBRARY NAMES curses) - -find_library(CURSES_NCURSES_LIBRARY NAMES "${NCURSES_LIBRARY_NAME}" ) -set(CURSES_USE_NCURSES FALSE) - -if(CURSES_NCURSES_LIBRARY AND ((NOT CURSES_CURSES_LIBRARY) OR CURSES_NEED_NCURSES)) - set(CURSES_USE_NCURSES TRUE) -endif() -# http://cygwin.com/ml/cygwin-announce/2010-01/msg00002.html -# cygwin ncurses stopped providing curses.h symlinks see above -# message. Cygwin is an ncurses package, so force ncurses on -# cygwin if the curses.h is missing -if(CURSES_NCURSES_LIBRARY AND CYGWIN) - if (CURSES_NEED_WIDE) - if(NOT EXISTS /usr/include/ncursesw/curses.h) - set(CURSES_USE_NCURSES TRUE) - endif() - else() - if(NOT EXISTS /usr/include/curses.h) - set(CURSES_USE_NCURSES TRUE) - endif() - endif() -endif() - - -# Not sure the logic is correct here. -# If NCurses is required, use the function wsyncup() to check if the library -# has NCurses functionality (at least this is where it breaks on NetBSD). -# If wsyncup is in curses, use this one. -# If not, try to find ncurses and check if this has the symbol. -# Once the ncurses library is found, search the ncurses.h header first, but -# some web pages also say that even with ncurses there is not always a ncurses.h: -# http://osdir.com/ml/gnome.apps.mc.devel/2002-06/msg00029.html -# So at first try ncurses.h, if not found, try to find curses.h under the same -# prefix as the library was found, if still not found, try curses.h with the -# default search paths. -if(CURSES_CURSES_LIBRARY AND CURSES_NEED_NCURSES) - include(${CMAKE_CURRENT_LIST_DIR}/CMakePushCheckState.cmake) - cmake_push_check_state() - set(CMAKE_REQUIRED_QUIET ${Curses_FIND_QUIETLY}) - CHECK_LIBRARY_EXISTS("${CURSES_CURSES_LIBRARY}" - wsyncup "" CURSES_CURSES_HAS_WSYNCUP) - - if(CURSES_NCURSES_LIBRARY AND NOT CURSES_CURSES_HAS_WSYNCUP) - CHECK_LIBRARY_EXISTS("${CURSES_NCURSES_LIBRARY}" - wsyncup "" CURSES_NCURSES_HAS_WSYNCUP) - if( CURSES_NCURSES_HAS_WSYNCUP) - set(CURSES_USE_NCURSES TRUE) - endif() - endif() - cmake_pop_check_state() - -endif() - -if(CURSES_USE_NCURSES) - get_filename_component(_cursesLibDir "${CURSES_NCURSES_LIBRARY}" PATH) - get_filename_component(_cursesParentDir "${_cursesLibDir}" PATH) - - # Use CURSES_NCURSES_INCLUDE_PATH if set, for compatibility. - if(CURSES_NCURSES_INCLUDE_PATH) - if (CURSES_NEED_WIDE) - find_path(CURSES_INCLUDE_PATH - NAMES ncursesw/ncurses.h ncursesw/curses.h ncursesw.h cursesw.h - PATHS ${CURSES_NCURSES_INCLUDE_PATH} - NO_DEFAULT_PATH - ) - else() - find_path(CURSES_INCLUDE_PATH - NAMES ncurses/ncurses.h ncurses/curses.h ncurses.h curses.h - PATHS ${CURSES_NCURSES_INCLUDE_PATH} - NO_DEFAULT_PATH - ) - endif() - endif() - - if (CURSES_NEED_WIDE) - set(CURSES_TINFO_LIBRARY_NAME tinfow) - find_path(CURSES_INCLUDE_PATH - NAMES ncursesw/ncurses.h ncursesw/curses.h ncursesw.h cursesw.h - HINTS "${_cursesParentDir}/include" - ) - else() - set(CURSES_TINFO_LIBRARY_NAME tinfo) - find_path(CURSES_INCLUDE_PATH - NAMES ncurses/ncurses.h ncurses/curses.h ncurses.h curses.h - HINTS "${_cursesParentDir}/include" - ) - endif() - - # Previous versions of FindCurses provided these values. - if(NOT DEFINED CURSES_LIBRARY) - set(CURSES_LIBRARY "${CURSES_NCURSES_LIBRARY}") - endif() - - CHECK_LIBRARY_EXISTS("${CURSES_NCURSES_LIBRARY}" - cbreak "" CURSES_NCURSES_HAS_CBREAK) - CHECK_LIBRARY_EXISTS("${CURSES_NCURSES_LIBRARY}" - nodelay "" CURSES_NCURSES_HAS_NODELAY) - if(NOT CURSES_NCURSES_HAS_CBREAK OR NOT CURSES_NCURSES_HAS_NODELAY) - find_library(CURSES_EXTRA_LIBRARY "${CURSES_TINFO_LIBRARY_NAME}" HINTS "${_cursesLibDir}") - find_library(CURSES_EXTRA_LIBRARY "${CURSES_TINFO_LIBRARY_NAME}" ) - - mark_as_advanced( - CURSES_EXTRA_LIBRARY - ) - endif() -else() - get_filename_component(_cursesLibDir "${CURSES_CURSES_LIBRARY}" PATH) - get_filename_component(_cursesParentDir "${_cursesLibDir}" PATH) - - #We can't find anything with CURSES_NEED_WIDE because we know - #only about ncursesw unicode curses version - if(NOT CURSES_NEED_WIDE) - find_path(CURSES_INCLUDE_PATH - NAMES curses.h - HINTS "${_cursesParentDir}/include" - ) - endif() - - # Previous versions of FindCurses provided these values. - if(NOT DEFINED CURSES_CURSES_H_PATH) - set(CURSES_CURSES_H_PATH "${CURSES_INCLUDE_PATH}") - endif() - if(NOT DEFINED CURSES_LIBRARY) - set(CURSES_LIBRARY "${CURSES_CURSES_LIBRARY}") - endif() -endif() - -# Report whether each possible header name exists in the include directory. -if(NOT DEFINED CURSES_HAVE_NCURSES_NCURSES_H) - if(CURSES_NEED_WIDE) - if(EXISTS "${CURSES_INCLUDE_PATH}/ncursesw/ncurses.h") - set(CURSES_HAVE_NCURSES_NCURSES_H "${CURSES_INCLUDE_PATH}/ncursesw/ncurses.h") - endif() - elseif(EXISTS "${CURSES_INCLUDE_PATH}/ncurses/ncurses.h") - set(CURSES_HAVE_NCURSES_NCURSES_H "${CURSES_INCLUDE_PATH}/ncurses/ncurses.h") - endif() - if(NOT DEFINED CURSES_HAVE_NCURSES_NCURSES_H) - set(CURSES_HAVE_NCURSES_NCURSES_H "CURSES_HAVE_NCURSES_NCURSES_H-NOTFOUND") - endif() -endif() -if(NOT DEFINED CURSES_HAVE_NCURSES_CURSES_H) - if(CURSES_NEED_WIDE) - if(EXISTS "${CURSES_INCLUDE_PATH}/ncursesw/curses.h") - set(CURSES_HAVE_NCURSES_CURSES_H "${CURSES_INCLUDE_PATH}/ncursesw/curses.h") - endif() - elseif(EXISTS "${CURSES_INCLUDE_PATH}/ncurses/curses.h") - set(CURSES_HAVE_NCURSES_CURSES_H "${CURSES_INCLUDE_PATH}/ncurses/curses.h") - endif() - if(NOT DEFINED CURSES_HAVE_NCURSES_CURSES_H) - set(CURSES_HAVE_NCURSES_CURSES_H "CURSES_HAVE_NCURSES_CURSES_H-NOTFOUND") - endif() -endif() -if(NOT CURSES_NEED_WIDE) - #ncursesw can't be found for this paths - if(NOT DEFINED CURSES_HAVE_NCURSES_H) - if(EXISTS "${CURSES_INCLUDE_PATH}/ncurses.h") - set(CURSES_HAVE_NCURSES_H "${CURSES_INCLUDE_PATH}/ncurses.h") - else() - set(CURSES_HAVE_NCURSES_H "CURSES_HAVE_NCURSES_H-NOTFOUND") - endif() - endif() - if(NOT DEFINED CURSES_HAVE_CURSES_H) - if(EXISTS "${CURSES_INCLUDE_PATH}/curses.h") - set(CURSES_HAVE_CURSES_H "${CURSES_INCLUDE_PATH}/curses.h") - else() - set(CURSES_HAVE_CURSES_H "CURSES_HAVE_CURSES_H-NOTFOUND") - endif() - endif() -endif() - -find_library(CURSES_FORM_LIBRARY "${CURSES_FORM_LIBRARY_NAME}" HINTS "${_cursesLibDir}") -find_library(CURSES_FORM_LIBRARY "${CURSES_FORM_LIBRARY_NAME}" ) - -# Previous versions of FindCurses provided these values. -if(NOT DEFINED FORM_LIBRARY) - set(FORM_LIBRARY "${CURSES_FORM_LIBRARY}") -endif() - -# Need to provide the *_LIBRARIES -set(CURSES_LIBRARIES ${CURSES_LIBRARY}) - -if(CURSES_EXTRA_LIBRARY) - set(CURSES_LIBRARIES ${CURSES_LIBRARIES} ${CURSES_EXTRA_LIBRARY}) -endif() - -if(CURSES_FORM_LIBRARY) - set(CURSES_LIBRARIES ${CURSES_LIBRARIES} ${CURSES_FORM_LIBRARY}) -endif() - -# Provide the *_INCLUDE_DIRS and *_CFLAGS results. -set(CURSES_INCLUDE_DIRS ${CURSES_INCLUDE_PATH}) -set(CURSES_INCLUDE_DIR ${CURSES_INCLUDE_PATH}) # compatibility - -find_package(PkgConfig QUIET) -if(PKG_CONFIG_FOUND) - pkg_check_modules(NCURSES QUIET ${NCURSES_LIBRARY_NAME}) - set(CURSES_CFLAGS ${NCURSES_CFLAGS_OTHER}) -endif() - -include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(Curses DEFAULT_MSG - CURSES_LIBRARY CURSES_INCLUDE_PATH) - -mark_as_advanced( - CURSES_INCLUDE_PATH - CURSES_CURSES_LIBRARY - CURSES_NCURSES_LIBRARY - CURSES_FORM_LIBRARY - ) diff --git a/cmake/FindCURSES.cmake.bkp b/cmake/FindCURSES.cmake.bkp deleted file mode 100644 index 29818ba..0000000 --- a/cmake/FindCURSES.cmake.bkp +++ /dev/null @@ -1,16 +0,0 @@ -# - Try to find NCURSES -# Once done this will define -# -# ITPP_FOUND - System has ITPP -# ITPP_INCLUDE_DIR - The ITPP include directory -# ITPP_LIBRARY - The library needed to use ITPP -# -set(CURSES_LIBRARY "/opt/lib/libncurses.so") -set(CURSES_INCLUDE_PATH "/opt/include") -find_path(CURSES_INCLUDE_DIR /usr/ncurses.h) - -set(CURSES_NAMES ${CURSES_NAMES} curses.h curses curses5w curses6w curses6 curses5 libncursesw) -FIND_LIBRARY(CURSES_LIBRARY NAMES ${CURSES_NAMES}) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(CURSES DEFAULT_MSG NCURSES_LIBRARY CURSES_INCLUDE_DIR) diff --git a/src/dsd_audio.c b/src/dsd_audio.c index 6415813..9712f70 100644 --- a/src/dsd_audio.c +++ b/src/dsd_audio.c @@ -25,9 +25,9 @@ pa_sample_spec cc; void openPulseOutput(dsd_opts * opts) { - ss.format = PA_SAMPLE_S16NE; - ss.channels = opts->pulse_raw_out_channels; //doing tests with 2 channels at 22050 for 44100 audio default in pulse - ss.rate = opts->pulse_raw_rate_out; //48000 + //ss.format = PA_SAMPLE_S16NE; + //ss.channels = opts->pulse_raw_out_channels; //doing tests with 2 channels at 22050 for 44100 audio default in pulse + //ss.rate = opts->pulse_raw_rate_out; //48000 tt.format = PA_SAMPLE_S16NE; tt.channels = opts->pulse_digi_out_channels; //doing tests with 2 channels at 22050 for 44100 audio default in pulse @@ -37,7 +37,7 @@ void openPulseOutput(dsd_opts * opts) //ss if (opts->monitor_input_audio == 1) { - opts->pulse_raw_dev_out = pa_simple_new(NULL, "DSD FME", PA_STREAM_PLAYBACK, NULL, "Raw Audio Out", &ss, NULL, NULL, NULL); + //opts->pulse_raw_dev_out = pa_simple_new(NULL, "DSD FME", PA_STREAM_PLAYBACK, NULL, "Raw Audio Out", &ss, NULL, NULL, NULL); } //tt @@ -48,9 +48,9 @@ void openPulseOutput(dsd_opts * opts) void openPulseInput(dsd_opts * opts) { - zz.format = PA_SAMPLE_S16NE; - zz.channels = opts->pulse_raw_in_channels; - zz.rate = opts->pulse_raw_rate_in; //48000 + //zz.format = PA_SAMPLE_S16NE; + //zz.channels = opts->pulse_raw_in_channels; + //zz.rate = opts->pulse_raw_rate_in; //48000 cc.format = PA_SAMPLE_S16NE; cc.channels = opts->pulse_digi_in_channels; @@ -59,7 +59,7 @@ void openPulseInput(dsd_opts * opts) //zz if (opts->monitor_input_audio == 2) { - opts->pulse_raw_dev_in = pa_simple_new(NULL, "DSD FME", PA_STREAM_RECORD, NULL, "Raw Audio In", &zz, NULL, NULL, NULL); + //opts->pulse_raw_dev_in = pa_simple_new(NULL, "DSD FME", PA_STREAM_RECORD, NULL, "Raw Audio In", &zz, NULL, NULL, NULL); } //cc opts->pulse_digi_dev_in = pa_simple_new(NULL, "DSD FME", PA_STREAM_RECORD, NULL, "Audio In", &cc, NULL, NULL, NULL); diff --git a/src/dsd_frame_sync.c b/src/dsd_frame_sync.c index 3b37932..e2a7417 100644 --- a/src/dsd_frame_sync.c +++ b/src/dsd_frame_sync.c @@ -189,10 +189,13 @@ getFrameSync (dsd_opts * opts, dsd_state * state) { ncursesPrinter(opts, state); } + /* if ( opts->monitor_input_audio == 1 && (time(NULL) - now) > 1 ) //okay, still something going on, still doing the read part for some reason { playRawAudio(opts, state); //this is on line 21 in dsd_audio.c } + */ + /* if (opts->reset_state == 1 && state->carrier == 0) { diff --git a/src/dsd_ncurses.c b/src/dsd_ncurses.c index bf3bad1..65b5dd8 100644 --- a/src/dsd_ncurses.c +++ b/src/dsd_ncurses.c @@ -90,8 +90,8 @@ char * SyncTypes[20] = { "+NXDN VOICE", //8 "-NXDN VOICE", //9 "+DMR DATA", //10 - "-DMR VOICE", //11 - "+DMR DATA", //12 + "-DMR DATA", //11 + "+DMR VOICE", //12 "-DMR VOICE", //13 "+PROVOICE", //14 "-PROVOICE", //15 @@ -121,7 +121,7 @@ char * getTimeN(void) //get pretty hh:mm:ss timestamp void ncursesOpen () { mbe_printVersion (versionstr); - //setlocale(LC_ALL, ""); + setlocale(LC_ALL, ""); initscr(); //Initialize NCURSES screen window start_color(); init_pair(1, COLOR_YELLOW, COLOR_BLACK); //Yellow/Amber for frame sync/control channel, NV style @@ -144,18 +144,19 @@ ncursesPrinter (dsd_opts * opts, dsd_state * state) level = 0; //start each cycle with 0 erase(); //disabling until wide support can be built for LM, etc. $(ncursesw5-config --cflags --libs) - //printw ("%s \n", FM_bannerN[0]); //top line in white + printw ("%s \n", FM_bannerN[0]); //top line in white attron(COLOR_PAIR(4)); - //for (short int i = 1; i < 7; i++) //following lines in cyan - //{ - //printw("%s \n", FM_bannerN[i]); - //} + for (short int i = 1; i < 7; i++) //following lines in cyan + { + printw("%s \n", FM_bannerN[i]); + } attroff(COLOR_PAIR(4)); printw ("--Build Info------------------------------------------------------------------\n"); - //printw ("| %s \n", FM_bannerN[7]); //http link + printw ("| %s \n", FM_bannerN[7]); //http link printw ("| Digital Speech Decoder: Florida Man Edition\n"); printw ("| Github Build Version: %s \n", GIT_TAG); printw ("| mbelib version %s\n", versionstr); + //printw ("| Press CTRL+C twice to exit\n"); printw ("------------------------------------------------------------------------------\n"); @@ -203,7 +204,8 @@ ncursesPrinter (dsd_opts * opts, dsd_state * state) } //if (state->dmr_color_code != dcc && (lls == 11 || lls == 13 || lls == 10 || lls == 12) ) //DMR Voice + last two is data - if ( (call_matrix[9][4] != dcc || call_matrix[9][2] != rd) && (lls == 11 || lls == 13 || lls == 10 || lls == 12) ) //DMR Voice + last two is data + //if ( (call_matrix[9][4] != dcc || call_matrix[9][2] != rd) && (lls == 10 || lls == 11 || lls == 12 || lls == 13) ) //DMR + if ( (call_matrix[9][4] != dcc || call_matrix[9][2] != rd) && (lls == 12 || lls == 13) ) //DMR { //dcc = state->dmr_color_code; for (short int k = 0; k < 9; k++) @@ -317,6 +319,22 @@ ncursesPrinter (dsd_opts * opts, dsd_state * state) //src = state->nxdn_last_rid; rn = state->nxdn_last_ran; } + + if (state->dmr_color_code > 0 && (lls == 10 || lls == 11 || lls == 12 || lls == 13) ) //DMR, DCC only carried on Data? + { + dcc = state->dmr_color_code; + } + + if (state->lastsrc > 0 && (lls == 12 || lls == 13)) + { + rd = state->lastsrc; + } + + if (state->lasttg > 0 && (lls == 12 || lls == 13)) + { + tg = state->lasttg; + } + //if (state->lastsynctype == 8 || state->lastsynctype == 9 || state->lastsynctype == 16 || state->lastsynctype == 17) //change this to NXDN syncs later on if (lls == 8 || lls == 9 || lls == 16 || lls == 17) { @@ -342,9 +360,9 @@ ncursesPrinter (dsd_opts * opts, dsd_state * state) printw("| NAC: [0x%X] \n", nc); } //if (state->lastsynctype == 12 || state->lastsynctype == 13) //DMR Voice Types - if (lls == 11 || lls == 13) //DMR Voice Types + if (lls == 12 || lls == 13) //DMR Voice Types { - printw ("| DCC: [%i]\n", state->dmr_color_code); + printw ("| DCC: [%i]\n", dcc); //printw ("%s ", state->slot0light); printw ("| SLOT 0 "); if (state->currentslot == 0) //find out how to tell when slot0 has voice @@ -364,10 +382,7 @@ ncursesPrinter (dsd_opts * opts, dsd_state * state) printw ("%s \n", s1last); } - if (state->dmr_color_code > 0 && (lls == 11 || lls == 13 || lls == 10 || lls == 12) ) //DMR Voice + last two is data - { - dcc = state->dmr_color_code; - } + //if (state->lastsynctype == 10 || state->lastsynctype == 11) //DMR Data Types if (lls == 10 || lls == 11) //DMR Data Types { @@ -424,7 +439,7 @@ ncursesPrinter (dsd_opts * opts, dsd_state * state) { printw ("RAN [%2d] ", call_matrix[9-j][1]); } - if (lls == 0 || lls == 1 || lls == 11 || lls == 13) //P25 P1 and DMR Voice + if (lls == 0 || lls == 1 || lls == 12 || lls == 13 || lls == 10 || lls == 11 ) //P25 P1 and DMR { printw ("TID [%2d] ", call_matrix[9-j][1]); } @@ -479,6 +494,6 @@ ncursesPrinter (dsd_opts * opts, dsd_state * state) void ncursesClose () { endwin(); - fprintf(stderr, "Press CTRL+C again to close. Thanks."); - fprintf(stderr, "Run 'reset' in your terminal to clean up if necessary."); + printf("Press CTRL+C again to close. Thanks.\n"); + printf("Run 'reset' in your terminal to clean up if necessary."); }