From d3c9015d26e3d5bb310394fad7c41436f5268b01 Mon Sep 17 00:00:00 2001 From: Steve Markgraf Date: Sun, 4 Nov 2012 13:57:56 +0100 Subject: lib: add rtlsdr_get_index_by_serial() This allows to open a device by a name (serial number string) that has been programmed with rtl_eeprom -s. Signed-off-by: Steve Markgraf --- src/librtlsdr.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src/librtlsdr.c') diff --git a/src/librtlsdr.c b/src/librtlsdr.c index 1af9f87..2ac457f 100644 --- a/src/librtlsdr.c +++ b/src/librtlsdr.c @@ -1264,6 +1264,28 @@ int rtlsdr_get_device_usb_strings(uint32_t index, char *manufact, return r; } +int rtlsdr_get_index_by_serial(const char *serial) +{ + int i, cnt, r; + char str[256]; + + if (!serial) + return -1; + + cnt = rtlsdr_get_device_count(); + + if (!cnt) + return -2; + + for (i = 0; i < cnt; i++) { + r = rtlsdr_get_device_usb_strings(i, NULL, NULL, str); + if (!r && !strcmp(serial, str)) + return i; + } + + return -3; +} + int rtlsdr_open(rtlsdr_dev_t **out_dev, uint32_t index) { int r; -- cgit v1.2.3