aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorrtlsdrblog <admin@rtl-sdr.com>2023-08-24 23:15:45 +1200
committerSteve Markgraf <steve@steve-m.de>2023-11-02 12:28:54 +0100
commit2f28c0f49852d62ab2a901a85d5de6f250c84033 (patch)
tree8aff870708166d40742cbadc2599ea604b8ca773 /src
parent6de0987c3df5879489e60f50f83727e6fd9e3fae (diff)
add direct sampling to rtl_sdr
Diffstat (limited to 'src')
-rw-r--r--src/rtl_sdr.c12
-rw-r--r--src/rtl_tcp.c3
2 files changed, 12 insertions, 3 deletions
diff --git a/src/rtl_sdr.c b/src/rtl_sdr.c
index 2c93b57..ccd6d76 100644
--- a/src/rtl_sdr.c
+++ b/src/rtl_sdr.c
@@ -55,6 +55,7 @@ void usage(void)
"\t[-b output_block_size (default: 16 * 16384)]\n"
"\t[-n number of samples to read (default: 0, infinite)]\n"
"\t[-S force sync output (default: async)]\n"
+ "\t[-D enable direct sampling (default: off)]\n"
"\tfilename (a '-' dumps samples to stdout)\n\n");
exit(1);
}
@@ -113,6 +114,7 @@ int main(int argc, char **argv)
int r, opt;
int gain = 0;
int ppm_error = 0;
+ int direct_sampling = 0;
int sync_mode = 0;
FILE *file;
uint8_t *buffer;
@@ -122,7 +124,7 @@ int main(int argc, char **argv)
uint32_t samp_rate = DEFAULT_SAMPLE_RATE;
uint32_t out_block_size = DEFAULT_BUF_LENGTH;
- while ((opt = getopt(argc, argv, "d:f:g:s:b:n:p:S")) != -1) {
+ while ((opt = getopt(argc, argv, "d:f:g:s:b:n:p:SD")) != -1) {
switch (opt) {
case 'd':
dev_index = verbose_device_search(optarg);
@@ -149,6 +151,9 @@ int main(int argc, char **argv)
case 'S':
sync_mode = 1;
break;
+ case 'D':
+ direct_sampling = 1;
+ break;
default:
usage();
break;
@@ -198,6 +203,11 @@ int main(int argc, char **argv)
#else
SetConsoleCtrlHandler( (PHANDLER_ROUTINE) sighandler, TRUE );
#endif
+
+ /* Set direct sampling */
+ if (direct_sampling)
+ verbose_direct_sampling(dev, 2);
+
/* Set the sample rate */
verbose_set_sample_rate(dev, samp_rate);
diff --git a/src/rtl_tcp.c b/src/rtl_tcp.c
index 4316cc4..78d625a 100644
--- a/src/rtl_tcp.c
+++ b/src/rtl_tcp.c
@@ -488,9 +488,8 @@ int main(int argc, char **argv)
#endif
/* Set direct sampling */
- if (direct_sampling) {
+ if (direct_sampling)
verbose_direct_sampling(dev, 2);
- }
/* Set the tuner error */
verbose_ppm_set(dev, ppm_error);