X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Flibsigrok-internal.h;h=debd27719a69a45da99b198a43639d9c64b7c25e;hb=c7bc82ffa1b09a228a8395049e2b691cd7bd85f8;hp=c94e42932ea1ba5cd7dfad12b8b2f1b641efc8f1;hpb=1de3ccede95a7b3535b67c6ade510715fe85d4d3;p=libsigrok.git diff --git a/src/libsigrok-internal.h b/src/libsigrok-internal.h index c94e4293..debd2771 100644 --- a/src/libsigrok-internal.h +++ b/src/libsigrok-internal.h @@ -159,6 +159,7 @@ /* Portability fixes for FreeBSD. */ #ifdef __FreeBSD__ #define LIBUSB_CLASS_APPLICATION 0xfe +#define libusb_has_capability(x) 0 #define libusb_handle_events_timeout_completed(ctx, tv, c) \ libusb_handle_events_timeout(ctx, tv) #endif @@ -237,6 +238,13 @@ struct sr_input_module { */ const char *desc; + /** + * A NULL terminated array of strings containing a list of file name + * extensions typical for the input file format, or NULL if there is + * no typical extension for this file format. + */ + const char *const *exts; + /** * Zero-terminated list of metadata items the module needs to be able * to identify an input stream. Can be all-zero, if the module cannot @@ -490,9 +498,37 @@ enum { SR_PRIV struct sr_channel *sr_channel_new(int index, int type, gboolean enabled, const char *name); +/** Device instance data */ +struct sr_dev_inst { + /** Device driver. */ + struct sr_dev_driver *driver; + /** Device instance status. SR_ST_NOT_FOUND, etc. */ + int status; + /** Device instance type. SR_INST_USB, etc. */ + int inst_type; + /** Device vendor. */ + char *vendor; + /** Device model. */ + char *model; + /** Device version. */ + char *version; + /** Serial number. */ + char *serial_num; + /** Connection string to uniquely identify devices. */ + char *connection_id; + /** List of channels. */ + GSList *channels; + /** List of sr_channel_group structs */ + GSList *channel_groups; + /** Device instance connection data (used?) */ + void *conn; + /** Device instance private data (used?) */ + void *priv; + /** Session to which this device is currently assigned. */ + struct sr_session *session; +}; + /* Generic device instances */ -SR_PRIV struct sr_dev_inst *sr_dev_inst_new(int status, - const char *vendor, const char *model, const char *version); SR_PRIV void sr_dev_inst_free(struct sr_dev_inst *sdi); #ifdef HAVE_LIBUSB_1_0 @@ -574,6 +610,14 @@ SR_PRIV int sr_packet_copy(const struct sr_datafeed_packet *packet, struct sr_datafeed_packet **copy); SR_PRIV void sr_packet_free(struct sr_datafeed_packet *packet); +/*--- analog.c --------------------------------------------------------------*/ + +SR_PRIV int sr_analog_init(struct sr_datafeed_analog2 *analog, + struct sr_analog_encoding *encoding, + struct sr_analog_meaning *meaning, + struct sr_analog_spec *spec, + int digits); + /*--- std.c -----------------------------------------------------------------*/ typedef int (*dev_close_callback)(struct sr_dev_inst *sdi); @@ -610,13 +654,18 @@ struct soft_trigger_logic { int unitsize; int cur_stage; uint8_t *prev_sample; + uint8_t *pre_trigger_buffer; + uint8_t *pre_trigger_head; + int pre_trigger_size; + int pre_trigger_fill; }; SR_PRIV struct soft_trigger_logic *soft_trigger_logic_new( - const struct sr_dev_inst *sdi, struct sr_trigger *trigger); + const struct sr_dev_inst *sdi, struct sr_trigger *trigger, + int pre_trigger_samples); SR_PRIV void soft_trigger_logic_free(struct soft_trigger_logic *st); SR_PRIV int soft_trigger_logic_check(struct soft_trigger_logic *st, uint8_t *buf, - int len); + int len, int *pre_trigger_samples); /*--- hardware/serial.c -----------------------------------------------------*/ @@ -631,6 +680,7 @@ typedef gboolean (*packet_valid_callback)(const uint8_t *buf); SR_PRIV int serial_open(struct sr_serial_dev_inst *serial, int flags); SR_PRIV int serial_close(struct sr_serial_dev_inst *serial); SR_PRIV int serial_flush(struct sr_serial_dev_inst *serial); +SR_PRIV int serial_drain(struct sr_serial_dev_inst *serial); SR_PRIV int serial_write_blocking(struct sr_serial_dev_inst *serial, const void *buf, size_t count, unsigned int timeout_ms); SR_PRIV int serial_write_nonblocking(struct sr_serial_dev_inst *serial, @@ -912,6 +962,21 @@ SR_PRIV gboolean sr_brymen_bm25x_packet_valid(const uint8_t *buf); SR_PRIV int sr_brymen_bm25x_parse(const uint8_t *buf, float *floatval, struct sr_datafeed_analog *analog, void *info); +/*--- hardware/dmm/ut71x.c --------------------------------------------------*/ + +#define UT71X_PACKET_SIZE 11 + +struct ut71x_info { + gboolean is_voltage, is_resistance, is_capacitance, is_temperature; + gboolean is_celsius, is_fahrenheit, is_current, is_continuity; + gboolean is_diode, is_frequency, is_duty_cycle, is_dc, is_ac; + gboolean is_auto, is_manual, is_sign, is_power, is_loop_current; +}; + +SR_PRIV gboolean sr_ut71x_packet_valid(const uint8_t *buf); +SR_PRIV int sr_ut71x_parse(const uint8_t *buf, float *floatval, + struct sr_datafeed_analog *analog, void *info); + /*--- hardware/lcr/es51919.c ------------------------------------------------*/ SR_PRIV void es51919_serial_clean(void *priv);