]> sigrok.org Git - libsigrok.git/blobdiff - hwplugin.c
change output_text.c to support analog
[libsigrok.git] / hwplugin.c
index aaf71b50ce94e840e8bddd5c0266ad58db5ba073..0a30aad0016263f5ecc0012ba6f0f7fb6c731ccd 100644 (file)
@@ -24,6 +24,7 @@
 #include <string.h>
 #include <glib.h>
 #include <sigrok.h>
+#include "config.h"
 
 source_callback_add source_cb_add = NULL;
 source_callback_remove source_cb_remove = NULL;
@@ -37,27 +38,53 @@ GSList *plugins;
  */
 struct hwcap_option hwcap_options[] = {
        {HWCAP_SAMPLERATE, T_UINT64, "Sample rate", "samplerate"},
+       {HWCAP_CAPTURE_RATIO, T_UINT64, "Pre-trigger capture ratio", "captureratio"},
+       {HWCAP_PATTERN_MODE, T_CHAR, "Pattern generator mode", "patternmode"},
        {0, 0, NULL, NULL},
 };
 
+#ifdef HAVE_LA_DEMO
+extern struct device_plugin demo_plugin_info;
+#endif
+#ifdef HAVE_LA_SALEAE_LOGIC
 extern struct device_plugin saleae_logic_plugin_info;
+#endif
+#ifdef HAVE_LA_OLS
 extern struct device_plugin ols_plugin_info;
+#endif
+#ifdef HAVE_LA_ZEROPLUS_LOGIC_CUBE
 extern struct device_plugin zeroplus_logic_cube_plugin_info;
+#endif
 #ifdef HAVE_LA_ASIX_SIGMA
 extern struct device_plugin asix_sigma_plugin_info;
 #endif
+#ifdef HAVE_LA_LINK_MSO19
+extern struct device_plugin link_mso19_plugin_info;
+#endif
 
 /* TODO: No linked list needed, this can be a simple array. */
 int load_hwplugins(void)
 {
+#ifdef HAVE_LA_DEMO
+       plugins = g_slist_append(plugins, (gpointer *)&demo_plugin_info);
+#endif
+#ifdef HAVE_LA_SALEAE_LOGIC
        plugins =
            g_slist_append(plugins, (gpointer *)&saleae_logic_plugin_info);
+#endif
+#ifdef HAVE_LA_OLS
        plugins = g_slist_append(plugins, (gpointer *)&ols_plugin_info);
+#endif
+#ifdef HAVE_LA_ZEROPLUS_LOGIC_CUBE
        plugins = g_slist_append(plugins,
                           (gpointer *)&zeroplus_logic_cube_plugin_info);
+#endif
 #ifdef HAVE_LA_ASIX_SIGMA
        plugins = g_slist_append(plugins, (gpointer *)&asix_sigma_plugin_info);
 #endif
+#ifdef HAVE_LA_LINK_MSO19
+       plugins = g_slist_append(plugins, (gpointer *)&link_mso19_plugin_info);
+#endif
 
        return SIGROK_OK;
 }
@@ -78,9 +105,10 @@ struct sigrok_device_instance *sigrok_device_instance_new(int index, int status,
        sdi->index = index;
        sdi->status = status;
        sdi->instance_type = -1;
-       sdi->vendor = strdup(vendor);
-       sdi->model = strdup(model);
-       sdi->version = strdup(version);
+       sdi->vendor = vendor ? strdup(vendor) : strdup("(unknown)");
+       sdi->model = model ? strdup(model) : NULL;
+       sdi->version = version ? strdup(version) : NULL;
+       sdi->priv = NULL;
        sdi->usb = NULL;
 
        return sdi;
@@ -139,7 +167,7 @@ struct usb_device_instance *usb_device_instance_new(uint8_t bus,
 
 void usb_device_instance_free(struct usb_device_instance *usb)
 {
-       /* QUICK HACK */
+       /* Avoid compiler warnings. */
        usb = usb;
 
        /* Nothing to do for this device instance type. */