]> sigrok.org Git - libsigrok.git/blobdiff - hwplugin.c
output_text: Allocate enough memory for output
[libsigrok.git] / hwplugin.c
index c5a0b2e9852aa2cedb08b3981c3ed182e97cc62f..0a30aad0016263f5ecc0012ba6f0f7fb6c731ccd 100644 (file)
@@ -39,10 +39,13 @@ 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
@@ -59,11 +62,12 @@ extern struct device_plugin asix_sigma_plugin_info;
 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);
@@ -101,9 +105,9 @@ 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;
 
@@ -163,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. */