summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2010-08-21 17:09:41 -0700
committerKeith Packard <keithp@keithp.com>2010-08-21 17:09:41 -0700
commit09252ec22d58e946494e4ca2cf367bf3bbe1cc50 (patch)
tree2e1ea5c5039cf48915f1bbd5a0ef00fcd76870cf /src
parent22800dc094797e1e0ad99124198809d0360f7556 (diff)
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 <keithp@keithp.com>
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.proto2
-rw-r--r--src/ao-make-product.5c15
-rw-r--r--src/ao_product.c2
-rw-r--r--src/teledongle-v0.1/Makefile.defs1
-rw-r--r--src/teledongle-v0.2/Makefile.defs1
-rw-r--r--src/telemetrum-v0.1-sirf/Makefile.defs1
-rw-r--r--src/telemetrum-v0.1-sky/Makefile.defs1
-rw-r--r--src/telemetrum-v1.0/Makefile.defs1
-rw-r--r--src/tidongle/Makefile.defs1
9 files changed, 23 insertions, 2 deletions
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 = {
@@ -58,6 +66,12 @@ argdesc argd = {
.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',
.name = "serial",
@@ -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