diff options
author | Steve Markgraf <steve@steve-m.de> | 2012-11-04 13:57:56 +0100 |
---|---|---|
committer | Steve Markgraf <steve@steve-m.de> | 2012-11-04 13:57:56 +0100 |
commit | d3c9015d26e3d5bb310394fad7c41436f5268b01 (patch) | |
tree | 5e9b014eccbd0cc9fd544dbf37c9197fd67adcb0 /src/librtlsdr.c | |
parent | cc35aa64be129f8e89a6584938f589434969ff9b (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.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; |