struct sr_input {
struct sr_input_format *format;
- char *param;
+ GHashTable *param;
struct sr_dev *vdev;
+ void *internal;
};
struct sr_input_format {
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 *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);
GSList *datafeed_callbacks;
GTimeVal starttime;
gboolean running;
+
+ unsigned int num_sources;
+
+ /* Both "sources" and "pollfds" are of the same size and contain pairs of
+ * descriptor and callback function. We can not embed the GPollFD into the
+ * source struct since we want to be able to pass the array of all poll
+ * descriptors to g_poll.
+ */
+ struct source *sources;
+ GPollFD *pollfds;
+ int source_timeout;
};
#include "proto.h"