aboutsummaryrefslogtreecommitdiffstats
path: root/src/librtlsdr.c
diff options
context:
space:
mode:
authorSteve Markgraf <steve@steve-m.de>2012-11-04 13:57:56 +0100
committerSteve Markgraf <steve@steve-m.de>2012-11-04 13:57:56 +0100
commitd3c9015d26e3d5bb310394fad7c41436f5268b01 (patch)
tree5e9b014eccbd0cc9fd544dbf37c9197fd67adcb0 /src/librtlsdr.c
parentcc35aa64be129f8e89a6584938f589434969ff9b (diff)
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 <steve@steve-m.de>
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;