altosui: Don't export product defs from libaltos
[fw/altos] / altosui / libaltos / libaltos.c
index 13635a0da0f2d0b4311112c029926eddd6e91831..00a75de9b2ac976521f8e7c15b096ae7499a7f0a 100644 (file)
 #include <stdlib.h>
 #include <string.h>
 
+#define USB_VENDOR_FSF                 0xfffe
+#define USB_VENDOR_ALTUSMETRUM         USB_VENDOR_FSF
+#define USB_PRODUCT_ALTUSMETRUM                0x000a
+#define USB_PRODUCT_TELEMETRUM         0x000b
+#define USB_PRODUCT_TELEDONGLE         0x000c
+#define USB_PRODUCT_TELETERRA          0x000d
+#define USB_PRODUCT_TELEBT             0x000e
+#define USB_PRODUCT_ALTUSMETRUM_MIN    0x000a
+#define USB_PRODUCT_ALTUSMETRUM_MAX    0x0013
+
+#define USB_IS_ALTUSMETRUM(v,p)        ((v) == USB_VENDOR_ALTUSMETRUM && \
+               (USB_PRODUCT_ALTUSMETRUM_MIN <= (p) && \
+                (p) <= USB_PRODUCT_ALTUSMETRUM_MAX))
+
+#define BLUETOOTH_PRODUCT_TELEBT       "TeleBT"
+
 #define USE_POLL
 
 PUBLIC int
@@ -582,6 +598,7 @@ altos_list_finish(struct altos_list *usbdevs)
        free(usbdevs);
 }
 
+#if HAS_BLUETOOTH
 struct altos_bt_list {
        inquiry_info    *ii;
        int             sock;
@@ -591,10 +608,9 @@ struct altos_bt_list {
 };
 
 #define INQUIRY_MAX_RSP        255
-#define INQUIRY_LEN    8
 
 struct altos_bt_list *
-altos_bt_list_start(void)
+altos_bt_list_start(int inquiry_time)
 {
        struct altos_bt_list    *bt_list;
 
@@ -614,7 +630,7 @@ altos_bt_list_start(void)
                goto no_sock;
 
        bt_list->num_rsp = hci_inquiry(bt_list->dev_id,
-                                      INQUIRY_LEN,
+                                      inquiry_time,
                                       INQUIRY_MAX_RSP,
                                       NULL,
                                       &bt_list->ii,
@@ -665,6 +681,15 @@ altos_bt_list_finish(struct altos_bt_list *bt_list)
        free(bt_list);
 }
 
+void
+altos_bt_fill_in(char *name, char *addr, struct altos_bt_device *device)
+{
+       strncpy(device->name, name, sizeof (device->name));
+       device->name[sizeof(device->name)-1] = '\0';
+       strncpy(device->addr, addr, sizeof (device->addr));
+       device->addr[sizeof(device->addr)-1] = '\0';
+}
+
 struct altos_file *
 altos_bt_open(struct altos_bt_device *device)
 {
@@ -690,6 +715,7 @@ altos_bt_open(struct altos_bt_device *device)
                perror("connect");
                goto no_link;
        }
+       sleep(1);
 
 #ifdef USE_POLL
        pipe(file->pipe);
@@ -704,6 +730,7 @@ no_sock:
 no_file:
        return NULL;
 }
+#endif /* HAS_BLUETOOTH */
 
 #endif
 
@@ -768,7 +795,7 @@ get_number(io_object_t object, CFStringRef entry, int *result)
 }
 
 struct altos_list *
-altos_list_start(void)
+altos_list_start(int time)
 {
        struct altos_list *list = calloc (sizeof (struct altos_list), 1);
        CFMutableDictionaryRef matching_dictionary = IOServiceMatching("IOUSBDevice");