};
enum {
- SR_PROBE_TYPE_LOGIC,
+ SR_PROBE_LOGIC,
};
struct sr_probe {
char *trigger;
};
-/* Hardware driver capabilities */
+struct sr_hwopt {
+ int hwopt;
+ const void *value;
+};
+
+/* Hardware driver options */
+enum {
+ /** Some drivers cannot detect the exact model they're talking to. */
+ SR_HWOPT_MODEL,
+
+ /** Specification on how to connect to a device */
+ SR_HWOPT_CONN,
+
+ /** Serial communication spec: <data bits><parity><stop bit> e.g. 8n1 */
+ SR_HWOPT_SERIALCOMM,
+};
+
+/* Hardware device capabilities */
enum {
SR_HWCAP_DUMMY = 0, /* Used to terminate lists. Must be 0! */
SR_HWCAP_DEMO_DEV,
- /*--- Device communication ------------------------------------------*/
- /** Some drivers cannot detect the exact model they're talking to. */
- SR_HWCAP_MODEL,
-
- /** Specification on how to connect to a device */
- SR_HWCAP_CONN,
-
- /** Serial communication spec: <data bits><parity><stop bit> e.g. 8n1 */
- SR_HWCAP_SERIALCOMM,
-
-
/*--- Device configuration ------------------------------------------*/
/** The device supports setting/changing its samplerate. */
/*--- Special stuff -------------------------------------------------*/
+ /** Session filename */
+ SR_HWCAP_SESSIONFILE,
+
/* TODO: Better description. */
/** The device supports specifying a capturefile to inject. */
SR_HWCAP_CAPTUREFILE,
char *vendor;
char *model;
char *version;
+ GSList *probes;
void *priv;
};
char *name;
char *longname;
int api_version;
- int (*init) (const char *devinfo);
+ int (*init) (void);
int (*cleanup) (void);
+ GSList *(*scan) (GSList *options);
/* Device-specific */
int (*dev_open) (int dev_index);
int (*dev_config_set) (int dev_index, int hwcap, const void *value);
int (*dev_acquisition_start) (int dev_index, void *session_dev_id);
int (*dev_acquisition_stop) (int dev_index, void *session_dev_id);
+
+ /* Dynamic */
+ GSList *instances;
};
struct sr_session {