]> sigrok.org Git - libsigrok.git/commitdiff
Add and init libusb_context * in struct sr_context when using libusb-1.0
authorPeter Stuge <redacted>
Sun, 21 Oct 2012 18:23:36 +0000 (20:23 +0200)
committerPeter Stuge <redacted>
Sun, 21 Oct 2012 18:23:36 +0000 (20:23 +0200)
This allows hardware drivers to use a common libusb_context.

backend.c
libsigrok-internal.h

index c94483f96be3d3e0ddfda4f17a28d3ae7d0a6e9b..dd38f66e287a4fb5c53332ac84aacb7a0f672922 100644 (file)
--- a/backend.c
+++ b/backend.c
@@ -40,6 +40,14 @@ SR_API int sr_init(struct sr_context **ctx)
                goto done;
        }
 
+#ifdef HAVE_LIBUSB_1_0
+       ret = libusb_init(&context->libusb_ctx);
+       if (LIBUSB_SUCCESS != ret) {
+               sr_err("libusb_init() returned %s\n", libusb_error_name(ret));
+               goto done;
+       }
+#endif
+
        *ctx = context;
        ret = SR_OK;
 
@@ -56,6 +64,10 @@ SR_API int sr_exit(struct sr_context *ctx)
 {
        sr_hw_cleanup_all();
 
+#ifdef HAVE_LIBUSB_1_0
+       libusb_exit(ctx->libusb_ctx);
+#endif
+
        g_free(ctx);
 
        return SR_OK;
index 640ab0bed0ce3df237a0c038bb0ee7f456732054..563605720c16b769bdce9abc11cb7c9b48ce9a41 100644 (file)
@@ -46,6 +46,9 @@
 #define DATASTORE_CHUNKSIZE (512 * 1024)
 
 struct sr_context {
+#ifdef HAVE_LIBUSB_1_0
+       libusb_context *libusb_ctx;
+#endif
 };
 
 #ifdef HAVE_LIBUSB_1_0