diff options
Diffstat (limited to 'src/librtlsdr.c')
-rw-r--r-- | src/librtlsdr.c | 22 |
1 files changed, 22 insertions, 0 deletions
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; |