X-Git-Url: https://git.ao2.it/libam7xxx.git/blobdiff_plain/90247e36e90bebe6c8b80393d2a037b054808597..c8837a57134230c335a85da22322fd794b19ff44:/src/am7xxx.c diff --git a/src/am7xxx.c b/src/am7xxx.c index 5481075..47e04bb 100644 --- a/src/am7xxx.c +++ b/src/am7xxx.c @@ -91,6 +91,11 @@ static struct am7xxx_usb_device_descriptor supported_devices[] = { .vendor_id = 0x21e7, .product_id = 0x000e, }, + { + .name = "Philips/Sagemcom PicoPix 2055", + .vendor_id = 0x21e7, + .product_id = 0x0016, + }, }; /* The header size on the wire is known to be always 24 bytes, regardless of @@ -234,7 +239,10 @@ static void debug_dump_header(am7xxx_context *ctx, struct am7xxx_header *h) debug(ctx, "BEGIN\n"); debug(ctx, "packet_type: 0x%08x (%u)\n", h->packet_type, h->packet_type); - debug(ctx, "direction: 0x%02hhx (%hhu)\n", h->direction, h->direction); + debug(ctx, "direction: 0x%02hhx (%hhu) (%s)\n", h->direction, h->direction, + h->direction == AM7XXX_DIRECTION_IN ? "IN" : + h->direction == AM7XXX_DIRECTION_OUT ? "OUT" : + "UNKNOWN"); debug(ctx, "header_data_len: 0x%02hhx (%hhu)\n", h->header_data_len, h->header_data_len); debug(ctx, "unknown2: 0x%02hhx (%hhu)\n", h->unknown2, h->unknown2); debug(ctx, "unknown3: 0x%02hhx (%hhu)\n", h->unknown3, h->unknown3); @@ -445,8 +453,6 @@ static am7xxx_device *add_new_device(am7xxx_context *ctx) return NULL; } - devices_list = &(ctx->devices_list); - new_device = malloc(sizeof(*new_device)); if (new_device == NULL) { fatal("cannot allocate a new device (%s)\n", strerror(errno)); @@ -456,6 +462,8 @@ static am7xxx_device *add_new_device(am7xxx_context *ctx) new_device->ctx = ctx; + devices_list = &(ctx->devices_list); + if (*devices_list == NULL) { *devices_list = new_device; } else { @@ -846,7 +854,7 @@ AM7XXX_PUBLIC int am7xxx_send_image(am7xxx_device *dev, return send_data(dev, image, image_size); } -AM7XXX_PUBLIC int am7xxx_set_power_mode(am7xxx_device *dev, am7xxx_power_mode mode) +AM7XXX_PUBLIC int am7xxx_set_power_mode(am7xxx_device *dev, am7xxx_power_mode power) { int ret; struct am7xxx_header h = { @@ -857,7 +865,7 @@ AM7XXX_PUBLIC int am7xxx_set_power_mode(am7xxx_device *dev, am7xxx_power_mode mo .unknown3 = 0x10, }; - switch(mode) { + switch(power) { case AM7XXX_POWER_OFF: h.header_data.power.bit2 = 0; h.header_data.power.bit1 = 0; @@ -889,7 +897,7 @@ AM7XXX_PUBLIC int am7xxx_set_power_mode(am7xxx_device *dev, am7xxx_power_mode mo break; default: - error(dev->ctx, "Power mode not supported!\n"); + error(dev->ctx, "Unsupported power mode.\n"); return -EINVAL; };