float *data;
};
+/** Generic option struct used by various subsystems. */
+struct sr_option {
+ /* Short name suitable for commandline usage, [a-z0-9-]. */
+ char *id;
+ /* Short name suitable for GUI usage, can contain UTF-8. */
+ char *name;
+ /* Description of the option, in a sentence. */
+ char *desc;
+ /* Default value for this option. */
+ GVariant *def;
+ /* List of possible values, if this is an option with few values. */
+ GSList *values;
+};
+
/** Input (file) format struct. */
struct sr_input {
/**
int (*loadfile) (struct sr_input *in, const char *filename);
};
-/** Output (file) format struct. */
-struct sr_output {
- /** A pointer to this output's format. */
- struct sr_output_format *format;
-
- /**
- * The device for which this output module is creating output. This
- * can be used by the module to find out channel names and numbers.
- */
- const struct sr_dev_inst *sdi;
-
- /**
- * An optional parameter which the frontend can pass in to the
- * output module. How the string is interpreted is entirely up to
- * the module.
- */
- GHashTable *params;
-
- /**
- * A generic pointer which can be used by the module to keep internal
- * state between calls into its callback functions.
- *
- * For example, the module might store a pointer to a chunk of output
- * there, and only flush it when it reaches a certain size.
- */
- void *internal;
-};
-
-/** Output (file) format driver. */
-struct sr_output_format {
- /**
- * A unique ID for this output format. Must not be NULL.
- *
- * It can be used by frontends to select this output format for use.
- *
- * For example, calling sigrok-cli with <code>-O hex</code> will
- * select the hexadecimal text output format.
- */
- char *id;
-
- /**
- * A short description of the output format. Must not be NULL.
- *
- * This can be displayed by frontends, e.g. when selecting the output
- * format for saving a file.
- */
- char *description;
-
- /**
- * This function is called once, at the beginning of an output stream.
- *
- * The device struct will be available in the output struct passed in,
- * as well as the param field -- which may be NULL or an empty string,
- * if no parameter was passed.
- *
- * The module can use this to initialize itself, create a struct for
- * keeping state and storing it in the <code>internal</code> field.
- *
- * @param o Pointer to the respective 'struct sr_output'.
- *
- * @retval SR_OK Success
- * @retval other Negative error code.
- */
- int (*init) (struct sr_output *o);
-
- /**
- * This function is passed a copy of every packed in the data feed.
- * Any output generated by the output module in response to the
- * packet should be returned in a newly allocated GString
- * <code>out</code>, which will be freed by the caller.
- *
- * Packets not of interest to the output module can just be ignored,
- * and the <code>out</code> parameter set to NULL.
- *
- * @param o Pointer to the respective 'struct sr_output'.
- * @param sdi The device instance that generated the packet.
- * @param packet The complete packet.
- * @param out A pointer where a GString * should be stored if
- * the module generates output, or NULL if not.
- *
- * @retval SR_OK Success
- * @retval other Negative error code.
- */
- int (*receive) (struct sr_output *o,
- const struct sr_datafeed_packet *packet, GString **out);
-
- /**
- * This function is called after the caller is finished using
- * the output module, and can be used to free any internal
- * resources the module may keep.
- *
- * @retval SR_OK Success
- * @retval other Negative error code.
- */
- int (*cleanup) (struct sr_output *o);
-};
+struct sr_output;
+struct sr_output_module;
/** Constants for channel type. */
enum sr_channeltype {
/** Choice of clock edge for external clock ("r" or "f"). */
SR_CONF_CLOCK_EDGE,
+ /** Amplitude of a source without strictly-defined MQ. */
+ SR_CONF_AMPLITUDE,
+
/*--- Special stuff -------------------------------------------------*/
/** Scan options supported by the driver. */