From c8f6b1784566c8291e1257ef660cff33042aa706 Mon Sep 17 00:00:00 2001
From: Axel CHEMIN <axel.chemin@polytech-lille.net>
Date: Thu, 12 Nov 2020 14:57:25 +0100
Subject: [PATCH] Affichage valeur de la configuration active

---
 src/GetUsbInfos.c | 23 +++++++++++++++++++----
 1 file changed, 19 insertions(+), 4 deletions(-)

diff --git a/src/GetUsbInfos.c b/src/GetUsbInfos.c
index 47da89c..2abccc1 100644
--- a/src/GetUsbInfos.c
+++ b/src/GetUsbInfos.c
@@ -45,18 +45,18 @@ int main() {
       perror("libusb_open");
       exit(-1);
     }
-    /*
+
         // Si le méchant noyau est passé avant vous :
-        int interface = 0; // TEST : FONCTIONNE MAIS CORRESPOND A QUOI?
+        /*int interface = 0; // TEST : FONCTIONNE MAIS CORRESPOND A QUOI?
         if (libusb_kernel_driver_active(handle, interface)) {
           int statusKDriver = libusb_detach_kernel_driver(handle, interface);
           if (statusKDriver != 0) {
             perror("libusb_detach_kernel_driver");
             exit(-1);
           }
-        }
+        }*/
 
-        // lectures des configs?
+        /*// lectures des configs?
         int configuration = 0; // valueof("bConfigurationValue");
         int statusConfig = libusb_set_configuration(handle, configuration);
         if (statusConfig != 0) {
@@ -76,6 +76,21 @@ int main() {
         break;
       printf("Descriptor string : %s ; %i\n", data, statusAscii);
     }
+
+
+    //4.2 configuration du périph usb
+    struct libusb_config_descriptor * config;
+    int statusFetchConfig = libusb_get_active_config_descriptor(device, &config);
+    if (statusFetchConfig != 0) {
+      perror("libusb_get_active_config_descriptor");
+      //exit(-1);
+    }
+    printf("Config.bConfigurationValue : %d\n", config->bConfigurationValue);
+    printf("Config/ bLength:%d;bDescriptorType:%d;bNumInterfaces:%d\n",
+        config->bLength, config->bDescriptorType, config->bNumInterfaces);
+
+
+
     /* ... some ... code */
     libusb_close(handle);
   }
--
libgit2 0.21.2