X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=hwdriver.c;h=7a9e7e668f7a1c0086818cd56e1ff262f7df6ec0;hb=7356a55db8e1f0aa27abb8f3cd05bca848c4c2a0;hp=41e99dedcc44f532021d7819e19c6576b68fb70b;hpb=3b533202c8b32fbe785906e9930959aae077aeff;p=libsigrok.git diff --git a/hwdriver.c b/hwdriver.c index 41e99ded..7a9e7e66 100644 --- a/hwdriver.c +++ b/hwdriver.c @@ -23,8 +23,8 @@ #include #include #include -#include "sigrok.h" -#include "sigrok-internal.h" +#include "libsigrok.h" +#include "libsigrok-internal.h" /* * This enumerates which driver capabilities correspond to user-settable @@ -36,6 +36,18 @@ SR_API struct sr_hwcap_option sr_hwcap_options[] = { {SR_HWCAP_CAPTURE_RATIO, SR_T_UINT64, "Pre-trigger capture ratio", "captureratio"}, {SR_HWCAP_PATTERN_MODE, SR_T_CHAR, "Pattern generator mode", "pattern"}, {SR_HWCAP_RLE, SR_T_BOOL, "Run Length Encoding", "rle"}, + {SR_HWCAP_TRIGGER_SLOPE, SR_T_UINT64, "Trigger slope", "triggerslope"}, + {SR_HWCAP_TRIGGER_SOURCE, SR_T_CHAR, "Trigger source", "triggersource"}, + {SR_HWCAP_HORIZ_TRIGGERPOS, SR_T_FLOAT, "Horizontal trigger position", + "horiz_triggerpos"}, + {SR_HWCAP_BUFFERSIZE, SR_T_UINT64, "Buffer size", "buffersize"}, + {SR_HWCAP_TIMEBASE, SR_T_RATIONAL_PERIOD, "Time base", "timebase"}, + {SR_HWCAP_FILTER, SR_T_CHAR, "Filter targets", "filter"}, + {SR_HWCAP_VDIV, SR_T_RATIONAL_VOLT, "Volts/div", "vdiv"}, + {SR_HWCAP_COUPLING, SR_T_CHAR, "Coupling", "coupling"}, + {SR_HWCAP_MODEL, SR_T_KEYVALUE, "Model", "model"}, + {SR_HWCAP_CONN, SR_T_CHAR, "Connection", "connect"}, + {SR_HWCAP_SERIALCOMM, SR_T_CHAR, "Serial communication", "serialcomm"}, {0, 0, NULL, NULL}, }; @@ -64,7 +76,10 @@ extern SR_PRIV struct sr_dev_driver alsa_driver_info; extern SR_PRIV struct sr_dev_driver fx2lafw_driver_info; #endif #ifdef HAVE_HW_HANTEK_DSO -extern SR_PRIV struct sr_dev_driver hantek_dso_plugin_info; +extern SR_PRIV struct sr_dev_driver hantek_dso_driver_info; +#endif +#ifdef HAVE_HW_GENERICDMM +extern SR_PRIV struct sr_dev_driver genericdmm_driver_info; #endif static struct sr_dev_driver *drivers_list[] = { @@ -93,7 +108,10 @@ static struct sr_dev_driver *drivers_list[] = { &fx2lafw_driver_info, #endif #ifdef HAVE_HW_HANTEK_DSO - &hantek_dso_plugin_info, + &hantek_dso_driver_info, +#endif +#ifdef HAVE_HW_GENERICDMM + &genericdmm_driver_info, #endif NULL, }; @@ -126,7 +144,7 @@ SR_API int sr_driver_init(struct sr_dev_driver *driver) char **probe_names; sr_dbg("initializing %s driver", driver->name); - num_devs = driver->init(NULL); + num_devs = driver->init(); for (i = 0; i < num_devs; i++) { num_probes = GPOINTER_TO_INT( driver->dev_info_get(i, SR_DI_NUM_PROBES)); @@ -219,7 +237,7 @@ SR_PRIV struct sr_usb_dev_inst *sr_usb_dev_inst_new(uint8_t bus, udi->bus = bus; udi->address = address; - udi->devhdl = hdl; /* TODO: Check if this is NULL? */ + udi->devhdl = hdl; return udi; } @@ -267,7 +285,8 @@ SR_PRIV void sr_serial_dev_inst_free(struct sr_serial_dev_inst *serial) */ SR_API gboolean sr_driver_hwcap_exists(struct sr_dev_driver *driver, int hwcap) { - int *hwcaps, i; + const int *hwcaps; + int i; if (!driver) { sr_err("hwdriver: %s: driver was NULL", __func__); @@ -295,7 +314,7 @@ SR_API gboolean sr_driver_hwcap_exists(struct sr_dev_driver *driver, int hwcap) * @return A pointer to a struct with information about the parameter, or NULL * if the capability was not found. */ -SR_API struct sr_hwcap_option *sr_hw_hwcap_get(int hwcap) +SR_API const struct sr_hwcap_option *sr_hw_hwcap_get(int hwcap) { int i;