From: Keith Packard Date: Sun, 22 Aug 2010 00:09:41 +0000 (-0700) Subject: altos: Define USB product ID in per-product Makefile.defs file X-Git-Tag: debian/0.6+373+gcf65c6b~41 X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=commitdiff_plain;h=09252ec22d58e946494e4ca2cf367bf3bbe1cc50 altos: Define USB product ID in per-product Makefile.defs file 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 --- diff --git a/src/Makefile.proto b/src/Makefile.proto index 106333a6..eedb878a 100644 --- a/src/Makefile.proto +++ b/src/Makefile.proto @@ -214,7 +214,7 @@ all: ../$(PROG) 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$@ $< diff --git a/src/ao-make-product.5c b/src/ao-make-product.5c index 933032dd..5f2eb8e8 100644 --- a/src/ao-make-product.5c +++ b/src/ao-make-product.5c @@ -37,11 +37,19 @@ write_int(int a, string description) 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; +int id_product = 0x000a; argdesc argd = { .args = { @@ -57,6 +65,12 @@ argdesc argd = { .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', @@ -82,6 +96,7 @@ main() write_ucs2(product, "iProduct"); write_ucs2(sprintf("%06d", serial), "iSerial"); write_int(serial, "iSerial"); + write_hex(id_product, "idProduct"); write_string(version, "iVersion"); } diff --git a/src/ao_product.c b/src/ao_product.c index b42e62c0..2bd0b59c 100644 --- a/src/ao_product.c +++ b/src/ao_product.c @@ -40,7 +40,7 @@ const uint8_t ao_usb_descriptors [] = 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 */ diff --git a/src/teledongle-v0.1/Makefile.defs b/src/teledongle-v0.1/Makefile.defs index 06559b28..be7741d8 100644 --- a/src/teledongle-v0.1/Makefile.defs +++ b/src/teledongle-v0.1/Makefile.defs @@ -6,3 +6,4 @@ SRC = \ PRODUCT=TeleDongle-v0.1 PRODUCT_DEF=-DTELEDONGLE_V_0_1 +IDPRODUCT=0x000c diff --git a/src/teledongle-v0.2/Makefile.defs b/src/teledongle-v0.2/Makefile.defs index 23694fda..cbec7805 100644 --- a/src/teledongle-v0.2/Makefile.defs +++ b/src/teledongle-v0.2/Makefile.defs @@ -6,3 +6,4 @@ SRC = \ PRODUCT=TeleDongle-v0.2 PRODUCT_DEF=-DTELEDONGLE_V_0_2 +IDPRODUCT=0x000c diff --git a/src/telemetrum-v0.1-sirf/Makefile.defs b/src/telemetrum-v0.1-sirf/Makefile.defs index 7306683e..2ce6e6ed 100644 --- a/src/telemetrum-v0.1-sirf/Makefile.defs +++ b/src/telemetrum-v0.1-sirf/Makefile.defs @@ -8,3 +8,4 @@ SRC = \ PRODUCT=TeleMetrum-v0.1-SiRF PRODUCT_DEF=-DTELEMETRUM_V_0_1 +IDPRODUCT=0x000b diff --git a/src/telemetrum-v0.1-sky/Makefile.defs b/src/telemetrum-v0.1-sky/Makefile.defs index df475baa..098ac547 100644 --- a/src/telemetrum-v0.1-sky/Makefile.defs +++ b/src/telemetrum-v0.1-sky/Makefile.defs @@ -8,3 +8,4 @@ SRC = \ PRODUCT=TeleMetrum-v0.1 PRODUCT_DEF=-DTELEMETRUM_V_0_1 +IDPRODUCT=0x000b diff --git a/src/telemetrum-v1.0/Makefile.defs b/src/telemetrum-v1.0/Makefile.defs index e3cc5eb2..624ce6e8 100644 --- a/src/telemetrum-v1.0/Makefile.defs +++ b/src/telemetrum-v1.0/Makefile.defs @@ -8,3 +8,4 @@ SRC = \ PRODUCT=TeleMetrum-v1.0 PRODUCT_DEF=-DTELEMETRUM_V_1_0 +IDPRODUCT=0x000b diff --git a/src/tidongle/Makefile.defs b/src/tidongle/Makefile.defs index 5b910b9b..fdd51732 100644 --- a/src/tidongle/Makefile.defs +++ b/src/tidongle/Makefile.defs @@ -6,3 +6,4 @@ SRC = \ PRODUCT=TIDongle PRODUCT_DEF=-DTIDONGLE +IDPRODUCT=0x000a