]> git.rkrishnan.org Git - pihpsdr.git/commitdiff
portaudio.c: adjusted to John's audio interface settings.
authorc vw <dl1ycf@darc.de>
Mon, 25 Nov 2019 11:02:08 +0000 (12:02 +0100)
committerc vw <dl1ycf@darc.de>
Mon, 25 Nov 2019 11:02:08 +0000 (12:02 +0100)
receiver.c:  re-installed PS feedback panadapter correction

portaudio.c
receiver.c

index dbb5f749107d3da28d2e871a5646535c55c5e58a..ea891840897c7c3e6d13b72fd782ce9c84766be8 100644 (file)
@@ -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;
     }
index 2931fc22743f11fffd3b0bee79d5f574e9460595..3df8302398234067aa9b6b2bdbe1a8dfb52d96fe 100644 (file)
@@ -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