diff --git a/src/dsd_main.c b/src/dsd_main.c index 9561587..377d874 100644 --- a/src/dsd_main.c +++ b/src/dsd_main.c @@ -1134,8 +1134,7 @@ usage () printf (" -r Read/Play saved mbe data from file(s)\n"); printf (" -g Audio output gain (default = 0 = auto, disable = -1)\n"); printf (" -w Output synthesized speech to a .wav file, legacy auto modes only.\n"); - printf (" -8 Enable Experimental Source Audio Monitor (OSS and Pulse Audio at 48k1)\n"); - printf (" (Caution! May Cause High CPU usage or break when using RTL input!)\n"); + printf (" -8 Enable Experimental Source Audio Monitor (OSS at 48k1 and Pulse Audio)\n"); printf (" (Its recommended to use Squelch in SDR++ or GQRX, etc, if monitoring mixed analog/digital)\n"); printf (" -P Enable Per Call WAV file saving in XDMA and NXDN decoding classes\n"); printf (" (Per Call can only be used in Ncurses Terminal!)\n"); @@ -1305,8 +1304,6 @@ if (opts->audio_in_type == 1) open_rtlsdr_stream(opts); opts->rtl_started = 1; //set here so ncurses terminal doesn't attempt to open it again - //safety disable due to HIGH CPU usage this causes when using RTL input - if (opts->monitor_input_audio == 1) opts->monitor_input_audio = 0; } #endif @@ -1502,8 +1499,7 @@ main (int argc, char **argv) //experimental audio monitoring case '8': opts.monitor_input_audio = 1; - fprintf (stderr,"Experimental Raw Analog Source Monitoring Enabled (Pulse Audio Only!)\n"); - fprintf (stderr,"WARNING! May Cause HIGH CPU Usage and/or break when using RTL Input\n"); + fprintf (stderr,"Experimental Raw Analog Source Monitoring Enabled\n"); break; //rc4 enforcement on DMR (due to missing the PI header) diff --git a/src/dsd_symbol.c b/src/dsd_symbol.c index 7755307..a70ca31 100644 --- a/src/dsd_symbol.c +++ b/src/dsd_symbol.c @@ -152,14 +152,8 @@ getSymbol (dsd_opts * opts, dsd_state * state, int have_sync) else if (opts->audio_in_type == 3) { #ifdef USE_RTLSDR - // TODO: need to read demodulated stream here - // get_rtlsdr_sample(&sample); + // Read demodulated stream here get_rtlsdr_sample(&sample, opts, state); - if (opts->monitor_input_audio == 1 && state->lastsynctype == -1 && sample < 32767 && sample > -32767) - { - state->pulse_raw_out_buffer = sample; //steal raw out buffer sample here? - pa_simple_write(opts->pulse_raw_dev_out, (void*)&state->pulse_raw_out_buffer, 2, NULL); - } opts->rtl_rms = rtl_return_rms(); #endif @@ -298,7 +292,7 @@ getSymbol (dsd_opts * opts, dsd_state * state, int have_sync) if (opts->audio_out_type == 0) pa_simple_write(opts->pulse_raw_dev_out, state->analog_out, 960*2, NULL); - //NOTE: I haven't personally tested this in Cygwin, so it might suck or lag, who knows + //NOTE: Worked okay earlier in Cygwin, so should be fine if (opts->audio_out_type == 5) write (opts->audio_out_fd, state->analog_out, 960*2); }