X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Flibsigrok-internal.h;h=06432b2db3de4fdf65cf4edb22e117c0618a0ae0;hb=2bd5d17c70dc7bab6dbf9aed0919fbc1049f79ba;hp=fa4432fb8946b3e7957a4de26fc39b778563b295;hpb=4ba4d52a8f9c66f6b941a545e17c684e65356aff;p=libsigrok.git diff --git a/src/libsigrok-internal.h b/src/libsigrok-internal.h index fa4432fb..06432b2d 100644 --- a/src/libsigrok-internal.h +++ b/src/libsigrok-internal.h @@ -834,6 +834,8 @@ SR_PRIV int sr_variant_type_check(uint32_t key, GVariant *data); SR_PRIV void sr_hw_cleanup_all(const struct sr_context *ctx); SR_PRIV struct sr_config *sr_config_new(uint32_t key, GVariant *data); SR_PRIV void sr_config_free(struct sr_config *src); +SR_PRIV int sr_dev_acquisition_start(struct sr_dev_inst *sdi); +SR_PRIV int sr_dev_acquisition_stop(struct sr_dev_inst *sdi); /*--- session.c -------------------------------------------------------------*/ @@ -928,18 +930,65 @@ typedef void (*std_dev_clear_callback)(void *priv); SR_PRIV int std_init(struct sr_dev_driver *di, struct sr_context *sr_ctx); SR_PRIV int std_cleanup(const struct sr_dev_driver *di); +SR_PRIV int std_dummy_dev_open(struct sr_dev_inst *sdi); +SR_PRIV int std_dummy_dev_close(struct sr_dev_inst *sdi); +SR_PRIV int std_dummy_dev_acquisition_start(const struct sr_dev_inst *sdi); +SR_PRIV int std_dummy_dev_acquisition_stop(struct sr_dev_inst *sdi); #ifdef HAVE_LIBSERIALPORT SR_PRIV int std_serial_dev_open(struct sr_dev_inst *sdi); SR_PRIV int std_serial_dev_acquisition_stop(struct sr_dev_inst *sdi); #endif SR_PRIV int std_session_send_df_header(const struct sr_dev_inst *sdi); SR_PRIV int std_session_send_df_end(const struct sr_dev_inst *sdi); -SR_PRIV int std_dev_clear(const struct sr_dev_driver *driver, +SR_PRIV int std_session_send_frame_begin(const struct sr_dev_inst *sdi); +SR_PRIV int std_session_send_frame_end(const struct sr_dev_inst *sdi); +SR_PRIV int std_dev_clear_with_callback(const struct sr_dev_driver *driver, std_dev_clear_callback clear_private); +SR_PRIV int std_dev_clear(const struct sr_dev_driver *driver); SR_PRIV GSList *std_dev_list(const struct sr_dev_driver *di); SR_PRIV int std_serial_dev_close(struct sr_dev_inst *sdi); SR_PRIV GSList *std_scan_complete(struct sr_dev_driver *di, GSList *devices); +SR_PRIV int std_opts_config_list(uint32_t key, GVariant **data, + const struct sr_dev_inst *sdi, const struct sr_channel_group *cg, + const uint32_t scanopts[], size_t scansize, const uint32_t drvopts[], + size_t drvsize, const uint32_t devopts[], size_t devsize); + +#define STD_CONFIG_LIST(key, data, sdi, cg, scanopts, drvopts, devopts) \ + std_opts_config_list(key, data, sdi, cg, ARRAY_AND_SIZE(scanopts), \ + ARRAY_AND_SIZE(drvopts), ARRAY_AND_SIZE(devopts)) + +SR_PRIV GVariant *std_gvar_tuple_array(const uint64_t a[][2], unsigned int n); +SR_PRIV GVariant *std_gvar_tuple_rational(const struct sr_rational *r, unsigned int n); +SR_PRIV GVariant *std_gvar_samplerates(const uint64_t samplerates[], unsigned int n); +SR_PRIV GVariant *std_gvar_samplerates_steps(const uint64_t samplerates[], unsigned int n); +SR_PRIV GVariant *std_gvar_min_max_step(double min, double max, double step); +SR_PRIV GVariant *std_gvar_min_max_step_array(const double a[3]); +SR_PRIV GVariant *std_gvar_min_max_step_thresholds(const double dmin, const double dmax, const double dstep); + +SR_PRIV GVariant *std_gvar_tuple_u64(uint64_t low, uint64_t high); +SR_PRIV GVariant *std_gvar_tuple_double(double low, double high); + +SR_PRIV GVariant *std_gvar_array_i32(const int32_t *a, unsigned int n); +SR_PRIV GVariant *std_gvar_array_u32(const uint32_t *a, unsigned int n); +SR_PRIV GVariant *std_gvar_array_u64(const uint64_t *a, unsigned int n); +SR_PRIV GVariant *std_gvar_array_str(const char *a[], unsigned int n); + +SR_PRIV GVariant *std_gvar_thresholds(const double a[][2], unsigned int n); + +SR_PRIV int std_str_idx(GVariant *data, const char *a[], unsigned int n); +SR_PRIV int std_u64_idx(GVariant *data, const uint64_t a[], unsigned int n); +SR_PRIV int std_u8_idx(GVariant *data, const uint8_t a[], unsigned int n); + +SR_PRIV int std_str_idx_s(const char *s, const char *a[], unsigned int n); +SR_PRIV int std_u8_idx_s(uint8_t b, const uint8_t a[], unsigned int n); + +SR_PRIV int std_u64_tuple_idx(GVariant *data, const uint64_t a[][2], unsigned int n); +SR_PRIV int std_double_tuple_idx(GVariant *data, const double a[][2], unsigned int n); +SR_PRIV int std_double_tuple_idx_d0(const double d, const double a[][2], unsigned int n); + +SR_PRIV int std_cg_idx(const struct sr_channel_group *cg, struct sr_channel_group *a[], unsigned int n); + /*--- resource.c ------------------------------------------------------------*/ SR_PRIV int64_t sr_file_get_size(FILE *file); @@ -962,6 +1011,7 @@ SR_PRIV int sr_atol(const char *str, long *ret); SR_PRIV int sr_atoi(const char *str, int *ret); SR_PRIV int sr_atod(const char *str, double *ret); SR_PRIV int sr_atof(const char *str, float *ret); +SR_PRIV int sr_atod_ascii(const char *str, double *ret); SR_PRIV int sr_atof_ascii(const char *str, float *ret); /*--- soft-trigger.c --------------------------------------------------------*/ @@ -1050,6 +1100,8 @@ SR_PRIV int usb_source_add(struct sr_session *session, struct sr_context *ctx, int timeout, sr_receive_data_callback cb, void *cb_data); SR_PRIV int usb_source_remove(struct sr_session *session, struct sr_context *ctx); SR_PRIV int usb_get_port_path(libusb_device *dev, char *path, int path_len); +SR_PRIV gboolean usb_match_manuf_prod(libusb_device *dev, + const char *manufacturer, const char *product); #endif @@ -1210,6 +1262,9 @@ SR_PRIV int sr_dtm0660_parse(const uint8_t *buf, float *floatval, #define BBCGM_M2110_PACKET_SIZE 9 +/* Dummy info struct. The parser does not use it. */ +struct m2110_info { int dummy; }; + SR_PRIV gboolean sr_m2110_packet_valid(const uint8_t *buf); SR_PRIV int sr_m2110_parse(const uint8_t *buf, float *floatval, struct sr_datafeed_analog *analog, void *info); @@ -1219,11 +1274,13 @@ SR_PRIV int sr_m2110_parse(const uint8_t *buf, float *floatval, #define METEX14_PACKET_SIZE 14 struct metex14_info { + size_t ch_idx; gboolean is_ac, is_dc, is_resistance, is_capacity, is_temperature; gboolean is_diode, is_frequency, is_ampere, is_volt, is_farad; - gboolean is_hertz, is_ohm, is_celsius, is_pico, is_nano, is_micro; - gboolean is_milli, is_kilo, is_mega, is_gain, is_decibel, is_hfe; - gboolean is_unitless, is_logic; + gboolean is_hertz, is_ohm, is_celsius, is_fahrenheit, is_watt; + gboolean is_pico, is_nano, is_micro, is_milli, is_kilo, is_mega; + gboolean is_gain, is_decibel, is_power, is_decibel_mw, is_power_factor; + gboolean is_hfe, is_unitless, is_logic, is_min, is_max, is_avg; }; #ifdef HAVE_LIBSERIALPORT @@ -1232,6 +1289,9 @@ SR_PRIV int sr_metex14_packet_request(struct sr_serial_dev_inst *serial); SR_PRIV gboolean sr_metex14_packet_valid(const uint8_t *buf); SR_PRIV int sr_metex14_parse(const uint8_t *buf, float *floatval, struct sr_datafeed_analog *analog, void *info); +SR_PRIV gboolean sr_metex14_4packets_valid(const uint8_t *buf); +SR_PRIV int sr_metex14_4packets_parse(const uint8_t *buf, float *floatval, + struct sr_datafeed_analog *analog, void *info); /*--- hardware/dmm/rs9lcd.c -------------------------------------------------*/