Pārlūkot izejas kodu

do not use NULL usb contexts to make libusb-pbatard work on windows

Dimitri Stolnikov 13 gadi atpakaļ
vecāks
revīzija
df4991bc19
1 mainītis faili ar 8 papildinājumiem un 6 dzēšanām
  1. 8 6
      src/rtl-sdr.c

+ 8 - 6
src/rtl-sdr.c

@@ -559,14 +559,15 @@ rtlsdr_device_t *find_known_device(uint16_t vid, uint16_t pid)
 uint32_t rtlsdr_get_device_count(void)
 {
 	int i;
+	libusb_context *ctx;
 	libusb_device **list;
 	uint32_t device_count = 0;
 	struct libusb_device_descriptor dd;
 	ssize_t cnt;
 
-	libusb_init(NULL);
+	libusb_init(&ctx);
 
-	cnt = libusb_get_device_list(NULL, &list);
+	cnt = libusb_get_device_list(ctx, &list);
 
 	for (i = 0; i < cnt; i++) {
 		libusb_get_device_descriptor(list[i], &dd);
@@ -577,7 +578,7 @@ uint32_t rtlsdr_get_device_count(void)
 
 	libusb_free_device_list(list, 0);
 
-	libusb_exit(NULL);
+	libusb_exit(ctx);
 
 	return device_count;
 }
@@ -585,15 +586,16 @@ uint32_t rtlsdr_get_device_count(void)
 const char *rtlsdr_get_device_name(uint32_t index)
 {
 	int i;
+	libusb_context *ctx;
 	libusb_device **list;
 	struct libusb_device_descriptor dd;
 	rtlsdr_device_t *device = NULL;
 	uint32_t device_count = 0;
 	ssize_t cnt;
 
-	libusb_init(NULL);
+	libusb_init(&ctx);
 
-	cnt = libusb_get_device_list(NULL, &list);
+	cnt = libusb_get_device_list(ctx, &list);
 
 	for (i = 0; i < cnt; i++) {
 		libusb_get_device_descriptor(list[i], &dd);
@@ -610,7 +612,7 @@ const char *rtlsdr_get_device_name(uint32_t index)
 
 	libusb_free_device_list(list, 0);
 
-	libusb_exit(NULL);
+	libusb_exit(ctx);
 
 	if (device)
 		return device->name;