]> sigrok.org Git - libsigrok.git/blobdiff - src/libsigrok-internal.h
input: Added preferred file extension field
[libsigrok.git] / src / libsigrok-internal.h
index 432a4c2107080a9ad8de7ecceb774e8784ee3922..debd27719a69a45da99b198a43639d9c64b7c25e 100644 (file)
 /* 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 -----------------------------------------------------*/