This allows Win7 to tell which kind of device is connected purely by
USB id as it doesn't expose the USB product ID string to user space.
Signed-off-by: Keith Packard <keithp@keithp.com>
nickle $< > $@
ao_product.h: ao-make-product.5c
nickle $< > $@
ao_product.h: ao-make-product.5c
- $(call quiet,NICKLE,$<) $< -m altusmetrum.org -p $(PRODUCT) -v $(VERSION) > $@
+ $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
ao_product.rel: ao_product.c ao_product.h
$(call quiet,CC) -c $(CFLAGS) -D PRODUCT_DEFS='\"ao_product.h\"' -o$@ $<
ao_product.rel: ao_product.c ao_product.h
$(call quiet,CC) -c $(CFLAGS) -D PRODUCT_DEFS='\"ao_product.h\"' -o$@ $<
printf ("#define AO_%s_NUMBER %d\n\n", description, a);
}
printf ("#define AO_%s_NUMBER %d\n\n", description, a);
}
+void
+write_hex(int a, string description)
+{
+ printf ("/* %s */\n", description);
+ printf ("#define AO_%s_NUMBER 0x%04x\n\n", description, a);
+}
+
string manufacturer = "altusmetrum.org";
string product = "TeleMetrum";
string version = "0.0";
int serial = 1;
int user_argind = 0;
string manufacturer = "altusmetrum.org";
string product = "TeleMetrum";
string version = "0.0";
int serial = 1;
int user_argind = 0;
+int id_product = 0x000a;
argdesc argd = {
.args = {
argdesc argd = {
.args = {
.name = "product",
.expr_name = "prod",
.desc = "Product name." },
.name = "product",
.expr_name = "prod",
.desc = "Product name." },
+ {
+ .var = { .arg_int = &id_product },
+ .abbr = 'i',
+ .name = "id_product",
+ .expr_name = "id_p",
+ .desc = "Product ID." },
{
.var = { .arg_int = &serial },
.abbr = 's',
{
.var = { .arg_int = &serial },
.abbr = 's',
write_ucs2(product, "iProduct");
write_ucs2(sprintf("%06d", serial), "iSerial");
write_int(serial, "iSerial");
write_ucs2(product, "iProduct");
write_ucs2(sprintf("%06d", serial), "iSerial");
write_int(serial, "iSerial");
+ write_hex(id_product, "idProduct");
write_string(version, "iVersion");
}
write_string(version, "iVersion");
}
0x00, /* bDeviceProtocol */
AO_USB_CONTROL_SIZE, /* bMaxPacketSize */
LE_WORD(0xFFFE), /* idVendor */
0x00, /* bDeviceProtocol */
AO_USB_CONTROL_SIZE, /* bMaxPacketSize */
LE_WORD(0xFFFE), /* idVendor */
- LE_WORD(0x000A), /* idProduct */
+ LE_WORD(AO_idProduct_NUMBER), /* idProduct */
LE_WORD(0x0100), /* bcdDevice */
0x01, /* iManufacturer */
0x02, /* iProduct */
LE_WORD(0x0100), /* bcdDevice */
0x01, /* iManufacturer */
0x02, /* iProduct */
PRODUCT=TeleDongle-v0.1
PRODUCT_DEF=-DTELEDONGLE_V_0_1
PRODUCT=TeleDongle-v0.1
PRODUCT_DEF=-DTELEDONGLE_V_0_1
PRODUCT=TeleDongle-v0.2
PRODUCT_DEF=-DTELEDONGLE_V_0_2
PRODUCT=TeleDongle-v0.2
PRODUCT_DEF=-DTELEDONGLE_V_0_2
PRODUCT=TeleMetrum-v0.1-SiRF
PRODUCT_DEF=-DTELEMETRUM_V_0_1
PRODUCT=TeleMetrum-v0.1-SiRF
PRODUCT_DEF=-DTELEMETRUM_V_0_1
PRODUCT=TeleMetrum-v0.1
PRODUCT_DEF=-DTELEMETRUM_V_0_1
PRODUCT=TeleMetrum-v0.1
PRODUCT_DEF=-DTELEMETRUM_V_0_1
PRODUCT=TeleMetrum-v1.0
PRODUCT_DEF=-DTELEMETRUM_V_1_0
PRODUCT=TeleMetrum-v1.0
PRODUCT_DEF=-DTELEMETRUM_V_1_0
PRODUCT=TIDongle
PRODUCT_DEF=-DTIDONGLE
PRODUCT=TIDongle
PRODUCT_DEF=-DTIDONGLE