X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fchronovu-la%2Fapi.c;h=14f1066eaa8809a565f2744d7aa9780bcf31d88a;hb=16aca7661b7ab34a399c323bb9214721e2b1be0c;hp=d65dabb6661b731efa703c4047ea8f7452eddb41;hpb=65c8d48f1418700dae72c8b6e39eb0d77b1ea17d;p=libsigrok.git diff --git a/src/hardware/chronovu-la/api.c b/src/hardware/chronovu-la/api.c index d65dabb6..14f1066e 100644 --- a/src/hardware/chronovu-la/api.c +++ b/src/hardware/chronovu-la/api.c @@ -80,14 +80,13 @@ static int add_device(int idx, int model, GSList **devices) struct sr_dev_inst *sdi; struct drv_context *drvc; struct dev_context *devc; - struct sr_channel *ch; ret = SR_OK; drvc = di->priv; /* Allocate memory for our private device context. */ - devc = g_try_malloc(sizeof(struct dev_context)); + devc = g_malloc0(sizeof(struct dev_context)); /* Set some sane defaults. */ devc->prof = &cv_profiles[model]; @@ -120,24 +119,16 @@ static int add_device(int idx, int model, GSList **devices) devc->cur_samplerate = devc->prof->max_samplerate; /* Register the device with libsigrok. */ - sdi = sr_dev_inst_new(SR_ST_INITIALIZING, - "ChronoVu", devc->prof->modelname, NULL); - if (!sdi) { - sr_err("Failed to create device instance."); - ret = SR_ERR; - goto err_free_final_buf; - } + sdi = g_malloc0(sizeof(struct sr_dev_inst)); + sdi->status = SR_ST_INITIALIZING; + sdi->vendor = g_strdup("ChronoVu"); + sdi->model = g_strdup(devc->prof->modelname); sdi->driver = di; sdi->priv = devc; - for (i = 0; i < devc->prof->num_channels; i++) { - if (!(ch = sr_channel_new(i, SR_CHANNEL_LOGIC, TRUE, - cv_channel_names[i]))) { - ret = SR_ERR; - goto err_free_dev_inst; - } - sdi->channels = g_slist_append(sdi->channels, ch); - } + for (i = 0; i < devc->prof->num_channels; i++) + sr_channel_new(sdi, i, SR_CHANNEL_LOGIC, TRUE, + cv_channel_names[i]); *devices = g_slist_append(*devices, sdi); drvc->instances = g_slist_append(drvc->instances, sdi); @@ -145,10 +136,6 @@ static int add_device(int idx, int model, GSList **devices) if (ret == SR_OK) return SR_OK; -err_free_dev_inst: - sr_dev_inst_free(sdi); -err_free_final_buf: - g_free(devc->final_buf); err_free_devc: g_free(devc);