-/* Driver scanning options. */
-static struct sr_hwcap_option sr_drvopts[] = {
- {SR_HWOPT_MODEL, SR_T_KEYVALUE, "Model", "model"},
- {SR_HWOPT_CONN, SR_T_CHAR, "Connection", "conn"},
- {SR_HWOPT_SERIALCOMM, SR_T_CHAR, "Serial communication", "serialcomm"},
- {0, 0, NULL, NULL},
-};
-
-/* Device instance options. */
-static struct sr_hwcap_option sr_devopts[] = {
- {SR_HWCAP_SAMPLERATE, SR_T_UINT64, "Sample rate", "samplerate"},
- {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"},
- {0, 0, NULL, NULL},
-};
-
-/** @cond PRIVATE */
-#ifdef HAVE_HW_COLEAD_SLM
-extern SR_PRIV struct sr_dev_driver colead_slm_driver_info;
-#endif
-#ifdef HAVE_LA_DEMO
-extern SR_PRIV struct sr_dev_driver demo_driver_info;
-#endif
-#ifdef HAVE_LA_OLS
-extern SR_PRIV struct sr_dev_driver ols_driver_info;
-#endif
-#ifdef HAVE_HW_TONDAJ_SL_814
-extern SR_PRIV struct sr_dev_driver tondaj_sl_814_driver_info;
-#endif
-#ifdef HAVE_HW_VICTOR_DMM
-extern SR_PRIV struct sr_dev_driver victor_dmm_driver_info;
-#endif
-#ifdef HAVE_LA_ZEROPLUS_LOGIC_CUBE
-extern SR_PRIV struct sr_dev_driver zeroplus_logic_cube_driver_info;
-#endif
-#ifdef HAVE_LA_ASIX_SIGMA
-extern SR_PRIV struct sr_dev_driver asix_sigma_driver_info;
-#endif
-#ifdef HAVE_LA_CHRONOVU_LA8
-extern SR_PRIV struct sr_dev_driver chronovu_la8_driver_info;
-#endif
-#ifdef HAVE_LA_LINK_MSO19
-extern SR_PRIV struct sr_dev_driver link_mso19_driver_info;
-#endif
-#ifdef HAVE_LA_ALSA
-extern SR_PRIV struct sr_dev_driver alsa_driver_info;
-#endif
-#ifdef HAVE_LA_FX2LAFW
-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_driver_info;
-#endif
-#ifdef HAVE_HW_AGILENT_DMM
-extern SR_PRIV struct sr_dev_driver agdmm_driver_info;
-#endif
-#ifdef HAVE_HW_FLUKE_DMM
-extern SR_PRIV struct sr_dev_driver flukedmm_driver_info;
-#endif
-#ifdef HAVE_HW_RADIOSHACK_DMM
-extern SR_PRIV struct sr_dev_driver radioshackdmm_driver_info;
-#endif
-#ifdef HAVE_HW_SERIAL_DMM
-extern SR_PRIV struct sr_dev_driver digitek_dt4000zc_driver_info;
-extern SR_PRIV struct sr_dev_driver tekpower_tp4000zc_driver_info;
-extern SR_PRIV struct sr_dev_driver metex_me31_driver_info;
-extern SR_PRIV struct sr_dev_driver peaktech_3410_driver_info;
-extern SR_PRIV struct sr_dev_driver mastech_mas345_driver_info;
-#endif
-#ifdef HAVE_HW_UNI_T_DMM
-extern SR_PRIV struct sr_dev_driver uni_t_ut61d_driver_info;
-extern SR_PRIV struct sr_dev_driver voltcraft_vc820_driver_info;
-#endif
-/** @endcond */
-
-static struct sr_dev_driver *drivers_list[] = {
-#ifdef HAVE_HW_COLEAD_SLM
- &colead_slm_driver_info,
-#endif
-#ifdef HAVE_LA_DEMO
- &demo_driver_info,
-#endif
-#ifdef HAVE_LA_OLS
- &ols_driver_info,
-#endif
-#ifdef HAVE_HW_TONDAJ_SL_814
- &tondaj_sl_814_driver_info,
-#endif
-#ifdef HAVE_HW_VICTOR_DMM
- &victor_dmm_driver_info,
-#endif
-#ifdef HAVE_LA_ZEROPLUS_LOGIC_CUBE
- &zeroplus_logic_cube_driver_info,
-#endif
-#ifdef HAVE_LA_ASIX_SIGMA
- &asix_sigma_driver_info,
-#endif
-#ifdef HAVE_LA_CHRONOVU_LA8
- &chronovu_la8_driver_info,
-#endif
-#ifdef HAVE_LA_LINK_MSO19
- &link_mso19_driver_info,
-#endif
-#ifdef HAVE_LA_ALSA
- &alsa_driver_info,
-#endif
-#ifdef HAVE_LA_FX2LAFW
- &fx2lafw_driver_info,
-#endif
-#ifdef HAVE_HW_HANTEK_DSO
- &hantek_dso_driver_info,
-#endif
-#ifdef HAVE_HW_AGILENT_DMM
- &agdmm_driver_info,
-#endif
-#ifdef HAVE_HW_FLUKE_DMM
- &flukedmm_driver_info,
-#endif
-#ifdef HAVE_HW_RADIOSHACK_DMM
- &radioshackdmm_driver_info,
-#endif
-#ifdef HAVE_HW_SERIAL_DMM
- &digitek_dt4000zc_driver_info,
- &tekpower_tp4000zc_driver_info,
- &metex_me31_driver_info,
- &peaktech_3410_driver_info,
- &mastech_mas345_driver_info,
-#endif
-#ifdef HAVE_HW_UNI_T_DMM
- &uni_t_ut61d_driver_info,
- &voltcraft_vc820_driver_info,
-#endif
- NULL,
+static struct sr_config_info sr_config_info_data[] = {
+ {SR_CONF_CONN, SR_T_STRING, "conn",
+ "Connection", NULL},
+ {SR_CONF_SERIALCOMM, SR_T_STRING, "serialcomm",
+ "Serial communication", NULL},
+ {SR_CONF_SAMPLERATE, SR_T_UINT64, "samplerate",
+ "Sample rate", NULL},
+ {SR_CONF_CAPTURE_RATIO, SR_T_UINT64, "captureratio",
+ "Pre-trigger capture ratio", NULL},
+ {SR_CONF_PATTERN_MODE, SR_T_STRING, "pattern",
+ "Pattern", NULL},
+ {SR_CONF_TRIGGER_MATCH, SR_T_INT32, "triggermatch",
+ "Trigger matches", NULL},
+ {SR_CONF_EXTERNAL_CLOCK, SR_T_BOOL, "external_clock",
+ "External clock mode", NULL},
+ {SR_CONF_SWAP, SR_T_BOOL, "swap",
+ "Swap channel order", NULL},
+ {SR_CONF_RLE, SR_T_BOOL, "rle",
+ "Run Length Encoding", NULL},
+ {SR_CONF_TRIGGER_SLOPE, SR_T_STRING, "triggerslope",
+ "Trigger slope", NULL},
+ {SR_CONF_TRIGGER_SOURCE, SR_T_STRING, "triggersource",
+ "Trigger source", NULL},
+ {SR_CONF_HORIZ_TRIGGERPOS, SR_T_FLOAT, "horiz_triggerpos",
+ "Horizontal trigger position", NULL},
+ {SR_CONF_BUFFERSIZE, SR_T_UINT64, "buffersize",
+ "Buffer size", NULL},
+ {SR_CONF_TIMEBASE, SR_T_RATIONAL_PERIOD, "timebase",
+ "Time base", NULL},
+ {SR_CONF_FILTER, SR_T_STRING, "filter",
+ "Filter targets", NULL},
+ {SR_CONF_VDIV, SR_T_RATIONAL_VOLT, "vdiv",
+ "Volts/div", NULL},
+ {SR_CONF_COUPLING, SR_T_STRING, "coupling",
+ "Coupling", NULL},
+ {SR_CONF_DATALOG, SR_T_BOOL, "datalog",
+ "Datalog", NULL},
+ {SR_CONF_SPL_WEIGHT_FREQ, SR_T_STRING, "spl_weight_freq",
+ "Sound pressure level frequency weighting", NULL},
+ {SR_CONF_SPL_WEIGHT_TIME, SR_T_STRING, "spl_weight_time",
+ "Sound pressure level time weighting", NULL},
+ {SR_CONF_HOLD_MAX, SR_T_BOOL, "hold_max",
+ "Hold max", NULL},
+ {SR_CONF_HOLD_MIN, SR_T_BOOL, "hold_min",
+ "Hold min", NULL},
+ {SR_CONF_SPL_MEASUREMENT_RANGE, SR_T_UINT64_RANGE, "spl_meas_range",
+ "Sound pressure level measurement range", NULL},
+ {SR_CONF_VOLTAGE_THRESHOLD, SR_T_DOUBLE_RANGE, "voltage_threshold",
+ "Voltage threshold", NULL },
+ {SR_CONF_POWER_OFF, SR_T_BOOL, "power_off",
+ "Power off", NULL},
+ {SR_CONF_DATA_SOURCE, SR_T_STRING, "data_source",
+ "Data source", NULL},
+ {SR_CONF_NUM_LOGIC_CHANNELS, SR_T_INT32, "logic_channels",
+ "Number of logic channels", NULL},
+ {SR_CONF_NUM_ANALOG_CHANNELS, SR_T_INT32, "analog_channels",
+ "Number of analog channels", NULL},
+ {SR_CONF_OUTPUT_VOLTAGE, SR_T_FLOAT, "output_voltage",
+ "Current output voltage", NULL},
+ {SR_CONF_OUTPUT_VOLTAGE_MAX, SR_T_FLOAT, "output_voltage_max",
+ "Maximum output voltage", NULL},
+ {SR_CONF_OUTPUT_CURRENT, SR_T_FLOAT, "output_current",
+ "Current output current", NULL},
+ {SR_CONF_OUTPUT_CURRENT_MAX, SR_T_FLOAT, "output_current_max",
+ "Maximum output current", NULL},
+ {SR_CONF_OUTPUT_ENABLED, SR_T_BOOL, "output_enabled",
+ "Output enabled", NULL},
+ {SR_CONF_OUTPUT_CHANNEL, SR_T_STRING, "output_channel",
+ "Output channel modes", NULL},
+ {SR_CONF_OVER_VOLTAGE_PROTECTION, SR_T_BOOL, "ovp",
+ "Over-voltage protection", NULL},
+ {SR_CONF_OVER_CURRENT_PROTECTION, SR_T_BOOL, "ocp",
+ "Over-current protection", NULL},
+ {SR_CONF_LIMIT_SAMPLES, SR_T_UINT64, "limit_samples",
+ "Sample limit", NULL},
+ {SR_CONF_CLOCK_EDGE, SR_T_STRING, "clock_edge",
+ "Clock edge", NULL},
+ {0, 0, NULL, NULL, NULL},