From 782ca04f2704a81eb016e716b302ca8bea11ef82 Mon Sep 17 00:00:00 2001 From: c vw Date: Mon, 25 Nov 2019 12:02:08 +0100 Subject: [PATCH] portaudio.c: adjusted to John's audio interface settings. receiver.c: re-installed PS feedback panadapter correction --- portaudio.c | 12 +++++++----- receiver.c | 9 +++++---- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/portaudio.c b/portaudio.c index dbb5f74..ea89184 100644 --- a/portaudio.c +++ b/portaudio.c @@ -307,7 +307,7 @@ int audio_open_output(RECEIVER *rx) // Write one buffer to avoid under-flow errors // (this gives us 5 msec to pass before we have to call audio_write the first time) bzero(rx->local_audio_buffer, (size_t) audio_buffer_size*sizeof(float)); - err=Pa_WriteStream(rx->playback_handle, (void *) rx->local_audio_buffer, (unsigned long) audio_buffer_size); + err=Pa_WriteStream(rx->playback_handle, rx->local_audio_buffer, (unsigned long) audio_buffer_size); return 0; } @@ -379,6 +379,7 @@ int audio_write (RECEIVER *rx, float left, float right) { PaError err; int mode=transmitter->mode; + float *buffer = rx->local_audio_buffer; // // We have to stop the stream here if a CW side tone may occur. // This might cause underflows, but we cannot use audio_write @@ -390,9 +391,9 @@ int audio_write (RECEIVER *rx, float left, float right) if (rx == active_receiver && isTransmitting() && (mode==modeCWU || mode==modeCWL)) return 0; if (rx->playback_handle != NULL && rx->local_audio_buffer != NULL) { - rx->local_audio_buffer[rx->local_audio_buffer_offset++] = (left+right)*0.5; // mix to MONO + buffer[rx->local_audio_buffer_offset++] = (left+right)*0.5; // mix to MONO if (rx->local_audio_buffer_offset == audio_buffer_size) { - err=Pa_WriteStream(rx->playback_handle, (void *) rx->local_audio_buffer, (unsigned long) audio_buffer_size); + err=Pa_WriteStream(rx->playback_handle, rx->local_audio_buffer, (unsigned long) audio_buffer_size); rx->local_audio_buffer_offset=0; // do not check on errors, there will be underflows every now and then } @@ -403,11 +404,12 @@ int audio_write (RECEIVER *rx, float left, float right) int cw_audio_write(float sample) { PaError err; RECEIVER *rx = active_receiver; + float *buffer = rx->local_audio_buffer; if (rx->playback_handle != NULL && rx->local_audio_buffer != NULL) { - rx->local_audio_buffer[rx->local_audio_buffer_offset++] = sample; + buffer[rx->local_audio_buffer_offset++] = sample; if (rx->local_audio_buffer_offset == audio_buffer_size) { - err=Pa_WriteStream(rx->playback_handle, (void *) rx->local_audio_buffer, (unsigned long) audio_buffer_size); + err=Pa_WriteStream(rx->playback_handle, rx->local_audio_buffer, (unsigned long) audio_buffer_size); // do not check on errors, there will be underflows every now and then rx->local_audio_buffer_offset=0; } diff --git a/receiver.c b/receiver.c index 2931fc2..3df8302 100644 --- a/receiver.c +++ b/receiver.c @@ -818,9 +818,10 @@ fprintf(stderr,"create_pure_signal_receiver: id=%d buffer_size=%d\n",id,buffer_s // display only the central part. // if (protocol == ORIGINAL_PROTOCOL) { - rx->pixels=(sample_rate/48000) * width; + rx->pixels=(sample_rate/24000) * width; } else { - rx->pixels = 4*width; + // sample rate of feedback is TX sample rate is 192000 + rx->pixels = 8*width; } } // allocate buffers @@ -1184,11 +1185,11 @@ g_print("receiver_change_sample_rate: id=%d rate=%d scale=%d buffer_size=%d outp if (rx->id == PS_RX_FEEDBACK) { float *fp, *ofp; if (protocol == ORIGINAL_PROTOCOL) { - rx->pixels = scale * rx->width; + rx->pixels = 2* scale * rx->width; } else { // We should never arrive here, since the sample rate of the // PS feedback receiver is fixed. - rx->pixels = 4 * rx->width; + rx->pixels = 8 * rx->width; } // make sure pixel_samples is always a valid pointer // ... probably pure DL1YCF's paranoia -- 2.45.2