From d5c4dcc59750052a1a95b5185aca3548a5b951de Mon Sep 17 00:00:00 2001 From: Steve Markgraf Date: Wed, 23 May 2018 23:13:14 +0200 Subject: fl2k_file: support reading from stdin Thanks to Ted Yapo for reporting. Signed-off-by: Steve Markgraf --- src/fl2k_file.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'src/fl2k_file.c') diff --git a/src/fl2k_file.c b/src/fl2k_file.c index 1d3697d..05db28e 100644 --- a/src/fl2k_file.c +++ b/src/fl2k_file.c @@ -145,10 +145,17 @@ int main(int argc, char **argv) if (dev_index < 0) exit(1); - file = fopen(filename, "rb"); - if (!file) { - fprintf(stderr, "Failed to open %s\n", filename); - goto out; + if (strcmp(filename, "-") == 0) { /* Read samples from stdin */ + file = stdin; +#ifdef _WIN32 + _setmode(_fileno(stdin), _O_BINARY); +#endif + } else { + file = fopen(filename, "rb"); + if (!file) { + fprintf(stderr, "Failed to open %s\n", filename); + return -ENOENT; + } } txbuf = malloc(FL2K_BUF_LEN); -- cgit v1.2.3 From 7ae9754ede8806df16977be28a4811fcf5eacdd0 Mon Sep 17 00:00:00 2001 From: Steve Markgraf Date: Sun, 17 Jun 2018 02:38:15 +0200 Subject: fix sleep durations on Windows Signed-off-by: Steve Markgraf --- src/fl2k_file.c | 11 ++++------- src/fl2k_tcp.c | 18 ++++++------------ src/fl2k_test.c | 14 +++++--------- src/libosmo-fl2k.c | 20 +++++++++----------- 4 files changed, 24 insertions(+), 39 deletions(-) (limited to 'src/fl2k_file.c') diff --git a/src/fl2k_file.c b/src/fl2k_file.c index 05db28e..cff5178 100644 --- a/src/fl2k_file.c +++ b/src/fl2k_file.c @@ -28,11 +28,13 @@ #ifndef _WIN32 #include +#define sleep_ms(ms) usleep(ms*1000) #else #include #include #include #include "getopt/getopt.h" +#define sleep_ms(ms) Sleep(ms) #endif #include "osmo-fl2k.h" @@ -191,13 +193,8 @@ int main(int argc, char **argv) SetConsoleCtrlHandler( (PHANDLER_ROUTINE) sighandler, TRUE ); #endif - while (!do_exit) { -#ifndef _WIN32 - usleep(500000); -#else - Sleep(0.5); -#endif - } + while (!do_exit) + sleep_ms(500); fl2k_close(dev); diff --git a/src/fl2k_tcp.c b/src/fl2k_tcp.c index ad0aa18..bd01758 100644 --- a/src/fl2k_tcp.c +++ b/src/fl2k_tcp.c @@ -36,9 +36,12 @@ #include #include /* for TCP_NODELAY */ #include +#define sleep_ms(ms) usleep(ms*1000) #else +#include #include #include "getopt/getopt.h" +#define sleep_ms(ms) Sleep(ms) #endif #include "osmo-fl2k.h" @@ -217,11 +220,7 @@ int main(int argc, char **argv) fprintf(stderr, "Connecting to %s:%d...\n", addr, port); while (connect(sock, (struct sockaddr *)&remote, sizeof(remote)) != 0) { -#ifndef _WIN32 - usleep(500000); -#else - Sleep(0.5); -#endif + sleep_ms(500); if (do_exit) goto out; } @@ -230,13 +229,8 @@ int main(int argc, char **argv) fprintf(stderr, "Connected\n"); connected = 1; - while (!do_exit) { -#ifndef _WIN32 - usleep(500000); -#else - Sleep(0.5); -#endif - } + while (!do_exit) + sleep_ms(500); out: free(txbuf); diff --git a/src/fl2k_test.c b/src/fl2k_test.c index c9a6048..6d82922 100644 --- a/src/fl2k_test.c +++ b/src/fl2k_test.c @@ -41,9 +41,11 @@ #ifndef _WIN32 #include +#define sleep_ms(ms) usleep(ms*1000) #else #include #include "getopt/getopt.h" +#define sleep_ms(ms) Sleep(ms) #endif #include "osmo-fl2k.h" @@ -290,17 +292,11 @@ int main(int argc, char **argv) fprintf(stderr, "Reporting PPM error measurement every %u seconds...\n", ppm_duration); fprintf(stderr, "Press ^C after a few minutes.\n"); - while (!do_exit) { -#ifndef _WIN32 - usleep(500000); -#else - Sleep(0.5); -#endif - } + while (!do_exit) + sleep_ms(500); - if (do_exit) { + if (do_exit) fprintf(stderr, "\nUser cancel, exiting...\n"); - } exit: fl2k_close(dev); diff --git a/src/libosmo-fl2k.c b/src/libosmo-fl2k.c index 9116aff..34b854e 100644 --- a/src/libosmo-fl2k.c +++ b/src/libosmo-fl2k.c @@ -25,15 +25,18 @@ #include #include #include +#include +#include +#include #ifndef _WIN32 #include +#define sleep_ms(ms) usleep(ms*1000) +#else +#include +#define sleep_ms(ms) Sleep(ms) #endif -#include -#include -#include - /* * All libusb callback functions should be marked with the LIBUSB_CALL macro * to ensure that they are compiled with the same calling convention as libusb. @@ -476,13 +479,8 @@ int fl2k_close(fl2k_dev_t *dev) if(!dev->dev_lost) { /* block until all async operations have been completed (if any) */ - while (FL2K_INACTIVE != dev->async_status) { -#ifdef _WIN32 - Sleep(1); -#else - usleep(1000); -#endif - } + while (FL2K_INACTIVE != dev->async_status) + sleep_ms(100); fl2k_deinit_device(dev); } -- cgit v1.2.3