+ sdi = g_malloc0(sizeof(struct sr_dev_inst));
+ sdi->status = SR_ST_INACTIVE;
+ sdi->vendor = g_strdup("Lascar");
+ sdi->model = g_strdup(profile->modelname);
+ sdi->version = g_strdup(firmware);
+
+ if (profile->logformat == LOG_TEMP_RH) {
+ /* Model this as two channels: temperature and humidity. */
+ sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "Temp");
+ sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "Hum");
+ } else if (profile->logformat == LOG_CO) {
+ sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "CO");
+ } else {
+ sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "P1");
+ }
+
+ devc = g_malloc0(sizeof(struct dev_context));
+ sdi->priv = devc;
+ devc->profile = profile;
+