diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/fl2k_file.c | 4 | ||||
-rw-r--r-- | src/fl2k_tcp.c | 15 |
2 files changed, 14 insertions, 5 deletions
diff --git a/src/fl2k_file.c b/src/fl2k_file.c index 6829deb..4e0d16d 100644 --- a/src/fl2k_file.c +++ b/src/fl2k_file.c @@ -43,7 +43,7 @@ static fl2k_dev_t *dev = NULL; static volatile int do_exit = 0; static int repeat = 1; -static int interleaved = 1; +static int interleaved = 0; FILE *file; char *txbuf = NULL; @@ -55,7 +55,7 @@ void usage(void) "\t[-d device_index (default: 0)]\n" "\t[-r repeat file (default: 1)]\n" "\t[-s samplerate (default: 100 MS/s)]\n" - "\t[-i interleave (input samples are interleaved Red/Green values, useful for I/Q data, default: 0)]\n" + "\t[-i (0|1) (1: input samples are interleaved Red/Green values, useful for I/Q data, default: 0 Red values only)]\n" "\tfilename (use '-' to read from stdin)\n\n" ); exit(1); diff --git a/src/fl2k_tcp.c b/src/fl2k_tcp.c index 871ac26..c93777b 100644 --- a/src/fl2k_tcp.c +++ b/src/fl2k_tcp.c @@ -60,6 +60,7 @@ typedef int socklen_t; static SOCKET s; static fl2k_dev_t *dev = NULL; +static int interleaved = 0; static volatile int do_exit = 0; static volatile int connected = 0; static char *txbuf = NULL; @@ -74,6 +75,7 @@ void usage(void) "\t[-d device index (default: 0)]\n" "\t[-p port (default: 1234)]\n" "\t[-s samplerate in Hz (default: 100 MS/s)]\n" + "\t[-i (0|1) (1: input samples are interleaved Red/Green values, useful for I/Q data, default: 0 Red values only)]\n" "\t[-b number of buffers (default: 4)]\n" ); exit(1); @@ -117,7 +119,11 @@ void fl2k_callback(fl2k_data_info_t *data_info) return; data_info->sampletype_signed = 1; - data_info->r_buf = txbuf; + if (interleaved) { + data_info->iq_buf = txbuf; + } else { + data_info->r_buf = txbuf; + } while (!do_exit && (left > 0)) { FD_ZERO(&readfds); @@ -158,12 +164,15 @@ int main(int argc, char **argv) struct sigaction sigact, sigign; #endif - while ((opt = getopt(argc, argv, "d:s:a:p:b:")) != -1) { + while ((opt = getopt(argc, argv, "d:i:s:a:p:b:")) != -1) { switch (opt) { case 'd': dev_index = (uint32_t)atoi(optarg); dev_given = 1; break; + case 'i': + interleaved = (int)atoi(optarg); + break; case 's': samp_rate = (uint32_t)atof(optarg); break; @@ -189,7 +198,7 @@ int main(int argc, char **argv) exit(1); } - txbuf = malloc(FL2K_BUF_LEN); + txbuf = malloc(FL2K_BUF_LEN * (interleaved ? 2 : 1)); if (!txbuf) { fprintf(stderr, "malloc error!\n"); |