From: John Melton - G0ORX/N6LYT 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/$top_link?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);