X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Flascar-el-usb%2Fprotocol.c;h=eac2b18a001218c2135493d73e351942a0efdd55;hb=145d794facd93b182e6c85d7613ce2e6d9a66d48;hp=ab5b6734426539b8eec698f3509b08c68aae5754;hpb=0af636bed97c174bea46e61e961eaa1b0b162e0f;p=libsigrok.git diff --git a/src/hardware/lascar-el-usb/protocol.c b/src/hardware/lascar-el-usb/protocol.c index ab5b6734..eac2b18a 100644 --- a/src/hardware/lascar-el-usb/protocol.c +++ b/src/hardware/lascar-el-usb/protocol.c @@ -27,7 +27,7 @@ #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 }, @@ -293,7 +293,6 @@ static struct sr_dev_inst *lascar_identify(unsigned char *config) struct dev_context *devc; const struct elusb_profile *profile; struct sr_dev_inst *sdi; - struct sr_channel *ch; int modelid, i; char firmware[5]; @@ -323,7 +322,7 @@ static struct sr_dev_inst *lascar_identify(unsigned char *config) 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); @@ -332,24 +331,15 @@ static struct sr_dev_inst *lascar_identify(unsigned char *config) 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; }