aboutsummaryrefslogtreecommitdiffstats
path: root/src/librtlsdr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/librtlsdr.c')
-rw-r--r--src/librtlsdr.c22
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;