#include "protocol.h"
extern struct sr_dev_driver lascar_el_usb_driver_info;
-static struct sr_dev_driver *di = &lascar_el_usb_driver_info;
+struct sr_dev_driver *di = &lascar_el_usb_driver_info;
static const struct elusb_profile profiles[] = {
{ 1, "EL-USB-1", LOG_UNSUPPORTED },
struct dev_context *devc;
const struct elusb_profile *profile;
struct sr_dev_inst *sdi;
- struct sr_channel *ch;
int modelid, i;
char firmware[5];
return NULL;
}
- sdi = sr_dev_inst_new();
+ sdi = g_malloc0(sizeof(struct sr_dev_inst));
sdi->status = SR_ST_INACTIVE;
sdi->vendor = g_strdup(LASCAR_VENDOR);
sdi->model = g_strdup(profile->modelname);
if (profile->logformat == LOG_TEMP_RH) {
/* Model this as two channels: temperature and humidity. */
- if (!(ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "Temp")))
- return NULL;
- sdi->channels = g_slist_append(NULL, ch);
- if (!(ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "Hum")))
- return NULL;
- sdi->channels = g_slist_append(sdi->channels, ch);
+ 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) {
- if (!(ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "CO")))
- return NULL;
- sdi->channels = g_slist_append(NULL, ch);
+ sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "CO");
} else {
- if (!(ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "P1")))
- return NULL;
- sdi->channels = g_slist_append(NULL, ch);
+ sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "P1");
}
- if (!(devc = g_try_malloc0(sizeof(struct dev_context))))
- return NULL;
+ devc = g_malloc0(sizeof(struct dev_context));
sdi->priv = devc;
devc->profile = profile;
}