pid = curdev->product_id;
desc = g_string_sized_new(128);
g_string_append_printf(desc, "HID");
- if (manuf)
+ if (manuf && wcslen(manuf) != 0)
g_string_append_printf(desc, " %ls", manuf);
- if (prod)
+ if (prod && wcslen(prod) != 0)
g_string_append_printf(desc, " %ls", prod);
- if (serno)
+ if (serno && wcslen(serno) != 0)
g_string_append_printf(desc, " %ls", serno);
if (vid && pid)
- g_string_append_printf(desc, " %04hx:%04hx", vid, pid);
+ g_string_append_printf(desc, " [%04hx.%04hx]", vid, pid);
list = append(list, name, desc->str);
g_string_free(desc, TRUE);
g_free(name);
static struct ser_hid_chip_functions **chips[SER_HID_CHIP_LAST] = {
[SER_HID_CHIP_UNKNOWN] = NULL,
+ [SER_HID_CHIP_BTC_BU86X] = &ser_hid_chip_funcs_bu86x,
+ [SER_HID_CHIP_SIL_CP2110] = &ser_hid_chip_funcs_cp2110,
+ [SER_HID_CHIP_VICTOR_DMM] = &ser_hid_chip_funcs_victor,
[SER_HID_CHIP_WCH_CH9325] = &ser_hid_chip_funcs_ch9325,
};
* returns the chip index and advances the spec pointer upon match,
* returns SER_HID_CHIP_UNKNOWN upon mismatch.
*/
-static enum ser_hid_chip_t ser_hid_chip_find_enum(char **spec_p)
+static enum ser_hid_chip_t ser_hid_chip_find_enum(const char **spec_p)
{
- gchar *spec;
+ const gchar *spec;
enum ser_hid_chip_t idx;
struct ser_hid_chip_functions *desc;
if (!vid_pids)
continue;
while (vid_pids->vid) {
- if (vid_pids->vid == vid && vid_pids->pid == pid) {
+ if (vid_pids->vid == vid && vid_pids->pid == pid)
return desc->chipname;
- }
vid_pids++;
}
}
serno = g_strdup(p);
p += strlen(p);
} else if (!chip) {
- char *copy, *endptr;
+ char *copy;
+ const char *endptr;
const char *name;
copy = g_strdup(p);
endptr = copy;
sr_dbg("DBG: %s(), name %s", __func__, name);
if (!name || !*name)
return SR_ERR_NA;
- chip = ser_hid_chip_find_enum((char **)&name);
+ chip = ser_hid_chip_find_enum(&name);
sr_dbg("DBG: %s(), chip %d", __func__, chip);
if (chip == SER_HID_CHIP_UNKNOWN)
return SR_ERR_NA;
sr_dbg("DBG: %s(), name %s", __func__, name);
if (!name || !*name)
return SR_ERR_NA;
- chip = ser_hid_chip_find_enum((char **)&name);
+ chip = ser_hid_chip_find_enum(&name);
sr_dbg("DBG: %s(), chip %d", __func__, chip);
if (chip == SER_HID_CHIP_UNKNOWN)
return SR_ERR_NA;
* Immediately satisfy the caller's request from the RX buffer
* if the requested amount of data is available already.
*/
- if (sr_ser_has_queued_data(serial) >= count) {
- rc = sr_ser_unqueue_rx_data(serial, buf, count);
- return rc;
- }
+ if (sr_ser_has_queued_data(serial) >= count)
+ return sr_ser_unqueue_rx_data(serial, buf, count);
/*
* When a timeout was specified, then determine the deadline
if (got > count)
got = count;
sr_dbg("DBG: %s() passing %d bytes.", __func__, got);
- rc = sr_ser_unqueue_rx_data(serial, buf, count);
- return rc;
+ return sr_ser_unqueue_rx_data(serial, buf, count);
}
static struct ser_lib_functions serlib_hid = {