"Track2",
};
-static struct lps_modelspec models[] = {
+static const struct lps_modelspec models[] = {
{ LPS_UNKNOWN, "Dummy", 0,
{
},
};
-static int init_lps301(struct sr_context *sr_ctx)
+static int init_lps301(struct sr_dev_driver *di, struct sr_context *sr_ctx)
{
- return std_init(sr_ctx, &motech_lps_301_driver_info, LOG_PREFIX);
+ return std_init(sr_ctx, di, LOG_PREFIX);
}
/** Send command to device with va_list.
goto exit_err;
}
-
g_strstrip(buf);
verstr = buf + 4;
}
/* Setup channels and channel groups. */
for (cnt = 0; cnt < models[modelid].num_channels; cnt++) {
snprintf(channel, sizeof(channel), "CH%d", cnt + 1);
- ch = sr_channel_new(cnt, SR_CHANNEL_ANALOG, TRUE, channel);
- sdi->channels = g_slist_append(sdi->channels, ch);
+ ch = sr_channel_new(sdi, cnt, SR_CHANNEL_ANALOG, TRUE, channel);
devc->channel_status[cnt].info = g_slist_append(NULL, ch);
}
/** Scan for LPS-301 device. */
-static GSList *scan_lps301(GSList *options)
-{
- return do_scan(LPS_301, &motech_lps_301_driver_info, options);
-}
-
-static GSList *doDevList(struct sr_dev_driver *drv)
+static GSList *scan_lps301(struct sr_dev_driver *di, GSList *options)
{
- return ((struct drv_context *)(drv->priv))->instances;
+ return do_scan(LPS_301, di, options);
}
-static GSList *dev_list_lps301(void)
+static GSList *dev_list_lps301(const struct sr_dev_driver *di)
{
- return doDevList(&motech_lps_301_driver_info);
+ return ((struct drv_context *)(di->priv))->instances;
}
static void dev_clear_private(struct dev_context* devc)
g_timer_destroy(devc->elapsed_msec);
}
-static int dev_clear_lps301(void)
+static int dev_clear_lps301(const struct sr_dev_driver *di)
{
- return std_dev_clear(&motech_lps_301_driver_info, (std_dev_clear_callback)dev_clear_private);
+ return std_dev_clear(di, (std_dev_clear_callback)dev_clear_private);
}
-static int cleanup(void)
+static int cleanup(const struct sr_dev_driver *di)
{
- return dev_clear_lps301();
+ return dev_clear_lps301(di);
}
static int config_get(uint32_t key, GVariant **data, const struct sr_dev_inst *sdi,
/* No channel group: global options. */
switch (key) {
case SR_CONF_LIMIT_MSEC:
- if (g_variant_get_uint64(data) == 0) {
- sr_err("LIMIT_MSEC can't be 0.");
- return SR_ERR;
- }
devc->limit_msec = g_variant_get_uint64(data);
- sr_dbg("Setting time limit to %" PRIu64 "ms.",
- devc->limit_msec);
break;
case SR_CONF_LIMIT_SAMPLES:
devc->limit_samples = g_variant_get_uint64(data);
- sr_dbg("Setting sample limit to %" PRIu64 ".",
- devc->limit_samples);
break;
case SR_CONF_OUTPUT_CHANNEL_CONFIG:
sval = g_variant_get_string(data, NULL);
found = FALSE;
- for (idx = 0; idx < (int)ARRAY_SIZE(channel_modes); idx++)
- {
+ for (idx = 0; idx < (int)ARRAY_SIZE(channel_modes); idx++) {
if (!strcmp(sval, channel_modes[idx])) {
found = TRUE;
if (devc->tracking_mode == idx)
if (devc->model->modelid <= LPS_303) /* Only first setting possible for smaller models. */
break;
}
- if (!found) {
+ if (!found)
return SR_ERR_ARG;
- }
break;
default:
return SR_ERR_NA;
GVariant *gvar;
GVariantBuilder gvb;
- (void)data;
-
/* Driver options, no device instance necessary. */
switch (key) {
case SR_CONF_SCAN_OPTIONS:
*data = g_variant_new_fixed_array(G_VARIANT_TYPE_UINT32,
- scanopts, ARRAY_SIZE(scanopts), sizeof(uint32_t));
+ scanopts, ARRAY_SIZE(scanopts), sizeof(uint32_t));
return SR_OK;
case SR_CONF_DEVICE_OPTIONS:
if (sdi != NULL)
break;
*data = g_variant_new_fixed_array(G_VARIANT_TYPE_UINT32,
- drvopts, ARRAY_SIZE(drvopts), sizeof(uint32_t));
+ drvopts, ARRAY_SIZE(drvopts), sizeof(uint32_t));
return SR_OK;
default:
- if (sdi == NULL)
+ if (!sdi)
return SR_ERR_ARG;
-
devc = sdi->priv;
+ break;
}
/* Device options, independent from channel groups. */
- if (cg == NULL) {
+ if (!cg) {
switch (key) {
case SR_CONF_DEVICE_OPTIONS:
*data = g_variant_new_fixed_array(G_VARIANT_TYPE_UINT32,
*data = g_variant_new_strv(channel_modes, ARRAY_SIZE(channel_modes));
}
return SR_OK;
- break;
default:
return SR_ERR_NA;
}