uint8_t sample_generator;
uint8_t thread_running;
uint64_t samples_counter;
- int dev_index;
void *session_dev_id;
GTimer *timer;
};
static GThread *my_thread;
static int thread_running;
-static int hw_dev_acquisition_stop(int dev_index, void *cb_data);
+static int hw_dev_acquisition_stop(const struct sr_dev_inst *sdi,
+ void *cb_data);
static int hw_init(void)
{
sr_err("demo: %s: sr_dev_inst_new failed", __func__);
return 0;
}
+ sdi->driver = ddi;
devices = g_slist_append(devices, sdi);
ddi->instances = g_slist_append(ddi->instances, sdi);
return devices;
}
-static int hw_dev_open(int dev_index)
+static int hw_dev_open(struct sr_dev_inst *sdi)
{
/* Avoid compiler warnings. */
- (void)dev_index;
+ (void)sdi;
/* Nothing needed so far. */
return SR_OK;
}
-static int hw_dev_close(int dev_index)
+static int hw_dev_close(struct sr_dev_inst *sdi)
{
/* Avoid compiler warnings. */
- (void)dev_index;
+ (void)sdi;
/* Nothing needed so far. */
case SR_DI_INST:
*data = sdi;
break;
+ case SR_DI_HWCAPS:
+ *data = hwcaps;
+ break;
case SR_DI_NUM_PROBES:
*data = GINT_TO_POINTER(NUM_PROBES);
break;
case SR_DI_PATTERNS:
*data = &pattern_strings;
break;
+ default:
+ return SR_ERR_ARG;
}
return SR_OK;
return SR_ST_ACTIVE;
}
-static const int *hw_hwcap_get_all(void)
-{
- return hwcaps;
-}
-
-static int hw_dev_config_set(int dev_index, int hwcap, const void *value)
+static int hw_dev_config_set(const struct sr_dev_inst *sdi, int hwcap,
+ const void *value)
{
int ret;
const char *stropt;
- /* Avoid compiler warnings. */
- (void)dev_index;
+ (void)sdi;
if (hwcap == SR_HWCAP_PROBECONFIG) {
/* Nothing to do, but must be supported */
return TRUE;
}
-static int hw_dev_acquisition_start(int dev_index, void *cb_data)
+static int hw_dev_acquisition_start(const struct sr_dev_inst *sdi,
+ void *cb_data)
{
struct sr_datafeed_packet *packet;
struct sr_datafeed_header *header;
struct sr_datafeed_meta_logic meta;
struct context *ctx;
+ (void)sdi;
+
/* TODO: 'ctx' is never g_free()'d? */
if (!(ctx = g_try_malloc(sizeof(struct context)))) {
sr_err("demo: %s: ctx malloc failed", __func__);
ctx->sample_generator = default_pattern;
ctx->session_dev_id = cb_data;
- ctx->dev_index = dev_index;
ctx->samples_counter = 0;
if (pipe(ctx->pipe_fds)) {
return SR_OK;
}
-/* TODO: This stops acquisition on ALL devices, ignoring dev_index. */
-static int hw_dev_acquisition_stop(int dev_index, void *cb_data)
+static int hw_dev_acquisition_stop(const struct sr_dev_inst *sdi,
+ void *cb_data)
{
/* Avoid compiler warnings. */
- (void)dev_index;
+ (void)sdi;
(void)cb_data;
/* Stop generate thread. */
.dev_close = hw_dev_close,
.info_get = hw_info_get,
.dev_status_get = hw_dev_status_get,
-// .hwcap_get_all = hw_hwcap_get_all,
.dev_config_set = hw_dev_config_set,
.dev_acquisition_start = hw_dev_acquisition_start,
.dev_acquisition_stop = hw_dev_acquisition_stop,