mirror of
https://github.com/rtlsdrblog/rtl-sdr-blog.git
synced 2025-02-05 06:45:01 +01:00
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>
This commit is contained in:
parent
cc35aa64be
commit
d3c9015d26
@ -49,6 +49,17 @@ RTLSDR_API int rtlsdr_get_device_usb_strings(uint32_t index,
|
|||||||
char *product,
|
char *product,
|
||||||
char *serial);
|
char *serial);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Get device index by USB serial string descriptor.
|
||||||
|
*
|
||||||
|
* \param serial serial string of the device
|
||||||
|
* \return device index of first device where the name matched
|
||||||
|
* \return -1 if name is NULL
|
||||||
|
* \return -2 if no devices were found at all
|
||||||
|
* \return -3 if devices were found, but none with matching name
|
||||||
|
*/
|
||||||
|
RTLSDR_API int rtlsdr_get_index_by_serial(const char *serial);
|
||||||
|
|
||||||
RTLSDR_API int rtlsdr_open(rtlsdr_dev_t **dev, uint32_t index);
|
RTLSDR_API int rtlsdr_open(rtlsdr_dev_t **dev, uint32_t index);
|
||||||
|
|
||||||
RTLSDR_API int rtlsdr_close(rtlsdr_dev_t *dev);
|
RTLSDR_API int rtlsdr_close(rtlsdr_dev_t *dev);
|
||||||
|
@ -1264,6 +1264,28 @@ int rtlsdr_get_device_usb_strings(uint32_t index, char *manufact,
|
|||||||
return r;
|
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 rtlsdr_open(rtlsdr_dev_t **out_dev, uint32_t index)
|
||||||
{
|
{
|
||||||
int r;
|
int r;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user