X-Git-Url: https://sigrok.org/gitweb/?p=libsigrok.git;a=blobdiff_plain;f=src%2Fbackend.c;h=471800315a1016a72768b73e7bf6a05cdd82fdf2;hp=a88459ac50f7eaaf123210ddb2fe8303b65ad394;hb=22fdb67fa0714c11cc0a58ee1423f55d18a4f080;hpb=928560e6f52f1287155ae8deb9e97e5607ec98db
diff --git a/src/backend.c b/src/backend.c
index a88459ac..47180031 100644
--- a/src/backend.c
+++ b/src/backend.c
@@ -63,8 +63,8 @@
* @section sec_irc IRC
*
* You can find the sigrok developers in the
- * \#sigrok
- * IRC channel on Freenode.
+ * \#sigrok
+ * IRC channel on Libera.Chat.
*
* @section sec_website Website
*
@@ -153,9 +153,25 @@ SR_API GSList *sr_buildinfo_libs_get(void)
m = g_slist_append(m, g_strdup_printf("%s", CONF_LIBUSB_1_0_VERSION));
#else
lv = libusb_get_version();
- m = g_slist_append(m, g_strdup_printf("%d.%d.%d.%d%s",
- lv->major, lv->minor, lv->micro, lv->nano, lv->rc));
+ m = g_slist_append(m, g_strdup_printf("%d.%d.%d.%d%s API 0x%08x",
+ lv->major, lv->minor, lv->micro, lv->nano, lv->rc,
+#if defined(LIBUSB_API_VERSION)
+ LIBUSB_API_VERSION
+#elif defined(LIBUSBX_API_VERSION)
+ LIBUSBX_API_VERSION
#endif
+ ));
+#endif
+ l = g_slist_append(l, m);
+#endif
+#ifdef HAVE_LIBHIDAPI
+ m = g_slist_append(NULL, g_strdup("hidapi"));
+ m = g_slist_append(m, g_strdup_printf("%s", CONF_LIBHIDAPI_VERSION));
+ l = g_slist_append(l, m);
+#endif
+#ifdef HAVE_LIBBLUEZ
+ m = g_slist_append(NULL, g_strdup("bluez"));
+ m = g_slist_append(m, g_strdup_printf("%s", CONF_LIBBLUEZ_VERSION));
l = g_slist_append(l, m);
#endif
#ifdef HAVE_LIBFTDI
@@ -199,7 +215,7 @@ SR_API char *sr_buildinfo_scpi_backends_get(void)
#if HAVE_RPC
g_string_append_printf(s, "RPC, ");
#endif
-#ifdef HAVE_LIBSERIALPORT
+#ifdef HAVE_SERIAL_COMM
g_string_append_printf(s, "serial, ");
#endif
#ifdef HAVE_LIBREVISA
@@ -226,8 +242,7 @@ static void print_versions(void)
char *str;
const char *lib, *version;
- sr_dbg("libsigrok %s/%s (rt: %s/%s).",
- SR_PACKAGE_VERSION_STRING, SR_LIB_VERSION_STRING,
+ sr_dbg("libsigrok %s/%s.",
sr_package_version_string_get(), sr_lib_version_string_get());
s = g_string_sized_new(200);
@@ -255,6 +270,17 @@ static void print_versions(void)
g_free(str);
}
+static void print_resourcepaths(void)
+{
+ GSList *l, *l_orig;
+
+ sr_dbg("Firmware search paths:");
+ l_orig = sr_resourcepaths_get(SR_RESOURCE_FIRMWARE);
+ for (l = l_orig; l; l = l->next)
+ sr_dbg(" - %s", (const char *)l->data);
+ g_slist_free_full(l_orig, g_free);
+}
+
/**
* Sanity-check all libsigrok drivers.
*
@@ -529,6 +555,8 @@ SR_API int sr_init(struct sr_context **ctx)
print_versions();
+ print_resourcepaths();
+
if (!ctx) {
sr_err("%s(): libsigrok context was NULL.", __func__);
return SR_ERR;
@@ -573,6 +601,20 @@ SR_API int sr_init(struct sr_context **ctx)
ret = SR_ERR;
goto done;
}
+#endif
+#ifdef HAVE_LIBHIDAPI
+ /*
+ * According to , the hid_init() routine just returns
+ * zero or non-zero, and hid_error() appears to relate to calls
+ * for a specific device after hid_open(). Which means that there
+ * is no more detailled information available beyond success/fail
+ * at this point in time.
+ */
+ if (hid_init() != 0) {
+ sr_err("HIDAPI hid_init() failed.");
+ ret = SR_ERR;
+ goto done;
+ }
#endif
sr_resource_set_hooks(context, NULL, NULL, NULL, NULL);
@@ -608,6 +650,9 @@ SR_API int sr_exit(struct sr_context *ctx)
WSACleanup();
#endif
+#ifdef HAVE_LIBHIDAPI
+ hid_exit();
+#endif
#ifdef HAVE_LIBUSB_1_0
libusb_exit(ctx->libusb_ctx);
#endif