From: John Melton - G0ORX/N6LYT <john.d.melton@googlemail.com>
Date: Wed, 8 Mar 2017 09:33:39 +0000 (+0000)
Subject: Added calls to RXASetMP and TXASetMP and saved state of low_latency variables for... 
X-Git-Url: https://git.rkrishnan.org/pf/components/index.php?a=commitdiff_plain;h=c5bc0d637edcbc721b705d5dc9b54ea4a52ec76a;p=pihpsdr.git

Added calls to RXASetMP and TXASetMP and saved state of low_latency variables for receivers and transmitters
---

diff --git a/receiver.c b/receiver.c
index 142159b..459dd53 100644
--- a/receiver.c
+++ b/receiver.c
@@ -261,6 +261,9 @@ void receiver_save_state(RECEIVER *rx) {
   sprintf(value,"%d",rx->audio_device);
   setProperty(name,value);
 
+  sprintf(name,"receiver.%d.low_latency",rx->id);
+  sprintf(value,"%d",rx->low_latency);
+  setProperty(name,value);
 }
 
 void receiver_restore_state(RECEIVER *rx) {
@@ -390,6 +393,9 @@ fprintf(stderr,"receiver_restore_state: id=%d\n",rx->id);
   sprintf(name,"receiver.%d.audio_device",rx->id);
   value=getProperty(name);
   if(value) rx->audio_device=atoi(value);
+  sprintf(name,"receiver.%d.low_latency",rx->id);
+  value=getProperty(name);
+  if(value) rx->low_latency=atoi(value);
 }
 
 void reconfigure_receiver(RECEIVER *rx,int height) {
@@ -764,6 +770,8 @@ fprintf(stderr,"create_receiver: id=%d default adc=%d\n",rx->id, rx->adc);
   rx->audio_channel=STEREO;
   rx->audio_device=-1;
 
+  rx->low_latency=0;
+
   receiver_restore_state(rx);
 
   int scale=rx->sample_rate/48000;
@@ -795,6 +803,7 @@ fprintf(stderr,"create_receiver: OpenChannel id=%d buffer_size=%d fft_size=%d sa
   set_filter(rx,band_filter->low,band_filter->high);
   
   RXASetNC(rx->id, rx->fft_size);
+  RXASetMP(rx->id, rx->low_latency);
 
   SetRXAFMDeviation(rx->id,(double)deviation);
 
diff --git a/receiver.h b/receiver.h
index 56c2a2b..40cfc69 100644
--- a/receiver.h
+++ b/receiver.h
@@ -116,6 +116,8 @@ typedef struct _receiver {
   int playback_offset;
   unsigned char *playback_buffer;
 
+  int low_latency;
+
 } RECEIVER;
 
 extern RECEIVER *create_receiver(int id, int buffer_size, int fft_size, int pixels, int fps, int width, int height);
diff --git a/transmitter.c b/transmitter.c
index 51c8264..d2d9b4e 100644
--- a/transmitter.c
+++ b/transmitter.c
@@ -85,6 +85,9 @@ void transmitter_save_state(TRANSMITTER *tx) {
   sprintf(value,"%d",tx->input_device);
   setProperty(name,value);
 
+  sprintf(name,"transmitter.%d.low_latency",tx->id);
+  sprintf(value,"%d",tx->low_latency);
+  setProperty(name,value);
 }
 
 void transmitter_restore_state(TRANSMITTER *tx) {
@@ -110,6 +113,9 @@ void transmitter_restore_state(TRANSMITTER *tx) {
   sprintf(name,"transmitter.%d.input_device",tx->id);
   value=getProperty(name);
   if(value) tx->input_device=atoi(value);
+  sprintf(name,"transmitter.%d.low_latency",tx->id);
+  value=getProperty(name);
+  if(value) tx->low_latency=atoi(value);
 }
 
 static gint update_display(gpointer data) {
@@ -375,6 +381,8 @@ fprintf(stderr,"create_transmitter: id=%d buffer_size=%d mic_sample_rate=%d mic_
 
   tx->out_of_band=0;
 
+  tx->low_latency=0;
+
   transmitter_restore_state(tx);
 
   if(split) {
@@ -408,6 +416,9 @@ fprintf(stderr,"transmitter: allocate buffers: mic_input_buffer=%d iq_output_buf
               0, // run
               0.010, 0.025, 0.0, 0.010, 0);
 
+  TXASetNC(tx->id, tx->fft_size);
+  TXASetMP(tx->id, tx->low_latency);
+
   SetTXAMode(tx->id, tx->mode);
   tx_set_filter(tx,tx_filter_low,tx_filter_high);
   SetTXABandpassWindow(tx->id, 1);
diff --git a/transmitter.h b/transmitter.h
index c4eeda2..20aaf99 100644
--- a/transmitter.h
+++ b/transmitter.h
@@ -73,6 +73,8 @@ typedef struct _transmitter {
   int out_of_band;
   gint out_of_band_timer_id;
 
+  int low_latency;
+
 } TRANSMITTER;
 
 extern TRANSMITTER *create_transmitter(int id, int buffer_size, int fft_size, int fps, int width, int height);